So debuggen Sie „msProcessProjection (): Projektionsbibliotheksfehler. Keine Systemliste, errno: 2 ”Fehler im Mapserver?

8

Ich glaube, ich habe eine Fehlkonfiguration in meinem Kartenserver, die verhindert, dass Bilder bereitgestellt werden.

In meiner Kartendatei habe ich diesen Abschnitt:

  PROJECTION
    "init=epsg:4326"
  END

Wenn ich diesen Abschnitt in lasse, erhalte ich diesen Fehler beim Aufrufen GetMapoder sogar GetCapabilities:

msProcessProjection(): Projection library error. no system list, errno: 2

Wenn ich diesen Abschnitt entferne (nicht wünschenswert), GetCapabilitiesfunktioniert, GetMapgibt aber diesen Fehler:

<ServiceExceptionReport version="1.1.1">
    <ServiceException code="InvalidSRS">msWMSLoadGetMapParams(): WMS server error. Cannot set new SRS on a map that doesn&#39;t have any projection set. Please make sure your mapfile has a projection defined at the top level.</ServiceException>
</ServiceExceptionReport>

Was erwartet wird, weil ich gerade den Abschnitt entfernt habe.

Meine Frage ist also, wie ich den Fehler debugge : msProcessProjection(): Projection library error. no system list, errno: 2?

Bei der Online-Suche werden Kommentare zu Berechtigungen angezeigt, aber Apache (Benutzer, der httpd ausführt) kann auf die folgenden in meiner httpd.conf definierten Verzeichnisse zugreifen:

SetEnv LD_LIBRARY_PATH /some/place/lib/
SetEnv PROJ_LIB /some/place/share/proj/
SetEnv GDAL_DATA /some/place/share/gdal/
SetEnv LC_NUMBERIC C
SetEnv GEOTIFF_CSV /some/place/share/gdal/
SetEnv LANG=C

Im /some/place/share/proj gibt es eine Datei epsg, die wie erwartet ist.

Ich bekomme keine Fehler von Apache.

Alex B.
quelle

Antworten:

3

Sie können das mapservProgramm direkt über die Befehlszeile ausführen (verwenden Sie su, um zuerst zum Apache-Benutzer zu wechseln) - und es ausführenstrace , können Sie feststellen, wie Bibliotheken geladen und Funktionen aufgerufen werden.

Sie sollten Ihre spezifischen Umgebungsvariablen manuell festlegen, bevor Sie mapserv aufrufen, um Ihre Apache-Konfiguration korrekt wiederzugeben.

Sie können auch andere Umgebungsvariablen festlegen, um die Ausführung als CGI-Skript zu simulieren:

http://www.cgi101.com/book/ch3/text.html

QUERY_STRING wird nützlich sein.

Walker
quelle
6

Ein paar Gedanken. Es ist etwas schwierig, dies zu diagnostizieren, ohne auf Ihre Kartendatei zu schauen, aber hier ist:

  1. Sie sollten versuchen, Ihre PROJ_LIB-Variable auf zu setzen. /some/place/share/proj/nad/Dort sollte sich die epsg-Datei befinden.

  2. Aktivieren Sie das Debuggen. Stellen Sie es auf Stufe 5 ein. Sie müssen auch eine Fehlerprotokolldatei einrichten. Weitere Informationen finden Sie in den MapServer-Dokumenten unter http://mapserver.org/mapfile/map.html

Ich vermute, dass entweder der Pfad zur epsg-Datenbank falsch ist oder Ihr Benutzer keine Rechte zum Lesen hat.

Wenn dies nicht das Problem ist, würde ich prüfen, ob Sie alle Metadaten auf Layer- und Kartenebene in Ihrer MapFile festgelegt haben, die als WMS-Server erforderlich sind. Weitere Informationen finden Sie hier: http://mapserver.org/ogc/wms_server.html Stellen Sie sicher, dass Sie in Ihren WMS-Metadaten einen gültigen SRS / CRS festgelegt haben.

DavidF
quelle
4

Ich bin gerade auf dieses Problem gestoßen und habe festgestellt, dass das Problem darin besteht, dass ich das Paket 'proj-epsg' nicht installiert habe.

yum install proj-epsg
chris
quelle
1

Weitere Informationen zu WMS-Fehlern und anderen häufigen Fehlern finden Sie unter dem folgenden Link.

http://mapserver.org/errors.html#msprocessprojection-no-such-file-or-directory (Übrigens hat das Befolgen dieser Methode bei mir funktioniert)

und

http://mapserver.org/errors.html

user28864
quelle
Willkommen bei der GIS SE! In diesem Fall wird meiner Meinung nach eine bestimmte Fehlermeldung abgefragt, aber Sie haben im Rahmen einer mehr oder weniger reinen Linkantwort allgemeine Ratschläge gegeben. Aus diesem Grund empfehle ich Ihnen, Ihre Antwort zu bearbeiten, um zu erläutern, wie Sie den spezifischen Fehler beheben können, nach dem gefragt wird.
PolyGeo
Ich hatte zuvor das gleiche Problem und benutzte die Methode im ersten Link, den ich angegeben hatte, um den Speicherort für die Projektbibliothek in der Zuordnungsdatei anzugeben und indem ich die Umgebungsvariable über meinen Webserver in der Datei httpd.conf meiner Apache-Installation festlegte Ich konnte das Problem umgehen. Deshalb habe ich den Link zur Lösung bereitgestellt und wo ich ihn gefunden habe.
user28864
Dies ist in Ordnung, solange Sie nicht nur die Links, sondern auch diesen Kontext / diese Erklärung angeben. Ich empfehle Ihnen, Ihre Antwort zu bearbeiten, um sie aus Ihrem Kommentar in Ihre Antwort zu kopieren / einzufügen, und sie schnell aufzuräumen. Die Idee ist, dass nachfolgende Besucher mit demselben Problem eine gute Vorstellung davon haben, wie sie es lösen können, indem sie einfach Ihre Antwort lesen, selbst wenn die Links irgendwann in der Zukunft unterbrochen werden. Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten.
PolyGeo