Cómo depurar "msProcessProjection (): error de la biblioteca de proyección. sin lista de sistema, errno: error de 2 "en el servidor de mapas?

8

Creo que tengo una configuración incorrecta en mi servidor de mapas que impide que muestre imágenes.

En mi archivo de mapa, tengo esta sección:

  PROJECTION
    "init=epsg:4326"
  END

Si dejo esa sección, aparece este error cuando llamo GetMapo incluso GetCapabilities:

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

Si elimino esa sección (no deseable), GetCapabilitiesfunciona, pero GetMapda este error:

<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>

Lo cual se espera porque acabo de eliminar la sección.

Entonces, mi pregunta es ¿cómo depuro el error msProcessProjection(): Projection library error. no system list, errno: 2?

Al buscar en línea, veo comentarios relacionados con los permisos, pero apache (usuario que ejecuta httpd) puede acceder a los siguientes directorios definidos en mi httpd.conf:

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

En /some/place/share/proj, hay un archivo epsgque es como espero.

No recibo errores de apache.

Alex B
fuente

Respuestas:

3

Puede ejecutar el mapservprograma directamente desde la línea de comandos (use supara cambiar al usuario de apache primero); ejecutarlo stracedebería ayudar a determinar cómo se cargan las bibliotecas y cómo se llaman las funciones.

Debe configurar sus variables de entorno específicas manualmente antes de invocar Mapserv para reflejar adecuadamente su configuración de Apache.

Además, puede configurar otras variables de entorno para simular la ejecución como un script CGI:

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

QUERY_STRING va a ser útil.

mwalker
fuente
6

Un par de pensamientos Es algo difícil diagnosticar esto sin mirar su archivo de mapa, pero aquí va:

  1. Debe intentar establecer su variable PROJ_LIB en /some/place/share/proj/nad/Ahí es donde debe ubicarse el archivo epsg.

  2. Habilitar depuración. Configúrelo en el nivel 5. También necesitará configurar un archivo de registro de errores. Ver más información sobre ella en los documentos de MapServer http://mapserver.org/mapfile/map.html

Supongo que la ruta a la base de datos epsg es incorrecta o su usuario no tiene derechos para leerla.

Si este no es el problema, miraría si ha configurado todos los metadatos de nivel de capa y mapa en su MapFile que es necesario para servir como servidor WMS. Más información aquí: http://mapserver.org/ogc/wms_server.html Asegúrese de haber configurado un SRS / CRS válido en sus metadatos WMS.

DavidF
fuente
4

Acabo de encontrarme con este problema y descubrí que el problema se debía a que no había instalado el paquete 'proj-epsg'.

yum install proj-epsg
Chris
fuente
1

Para leer más sobre los errores de WMS y otros errores comunes, siga el siguiente enlace;

http://mapserver.org/errors.html#msprocessprojection-no-such-file-or-directory (Por cierto, seguir este método funcionó para mí)

y

http://mapserver.org/errors.html

usuario28864
fuente
Bienvenido a GIS SE! En este caso, creo que se está solicitando un mensaje de error específico, pero usted ha proporcionado consejos genéricos como parte de una respuesta más o menos de solo enlace. En consecuencia, le recomiendo que edite su respuesta para explicar cómo abordar el error específico que se le pregunta.
PolyGeo
Tuve el mismo problema anteriormente, y al usar el método en el primer enlace que proporcioné, para especificar la ubicación de la biblioteca del proyecto en el archivo de mapa y al configurar la variable de entorno a través de mi servidor web en el archivo httpd.conf de mi instalación de Apache , Pude solucionar el problema. Por eso proporcioné el enlace a la solución y dónde la encontré.
usuario28864
Eso está bien siempre y cuando también proporcione ese contexto / explicación en lugar de solo los enlaces. Le recomiendo que edite su respuesta para copiar / pegar desde su comentario en su respuesta, con una rápida ordenación. La idea es que los visitantes posteriores con el mismo problema tengan una idea justa de cómo resolverlo simplemente leyendo su respuesta, incluso si los enlaces terminan rompiéndose en algún momento en el futuro. Gracias por tomarte el tiempo de responder.
PolyGeo