Cara men-debug "msProcessProjection (): Kesalahan pustaka proyeksi. tidak ada daftar sistem, errno: 2 "kesalahan dalam mapserver?


8

Saya pikir saya memiliki kesalahan konfigurasi pada mapserver saya yang mencegahnya menampilkan citra.

Dalam file peta saya, saya memiliki bagian ini:

  PROJECTION
    "init=epsg:4326"
  END

Jika saya meninggalkan bagian itu, saya mendapatkan kesalahan ini saat menelepon GetMapatau bahkan GetCapabilities:

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

Jika saya menghapus bagian itu (tidak diinginkan), GetCapabilitiesberfungsi, tetapi GetMapmemberikan kesalahan ini:

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

Yang diharapkan karena saya baru saja menghapus bagian.

Jadi, pertanyaan saya adalah bagaimana saya debug kesalahan: msProcessProjection(): Projection library error. no system list, errno: 2?

Mencari secara online, saya melihat komentar yang terkait dengan izin, tetapi apache (pengguna yang menjalankan httpd) dapat mengakses direktori berikut yang ditentukan di httpd.conf saya:

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

Di /some/place/share/proj, ada file epsgyang seperti yang saya harapkan.

Saya tidak mendapatkan kesalahan dari apache.

Jawaban:


3

Anda dapat menjalankan mapservprogram langsung dari baris perintah (gunakan suuntuk beralih ke pengguna apache terlebih dahulu) - menjalankannya straceharus membantu menentukan bagaimana perpustakaan sedang dimuat dan fungsi dipanggil.

Anda harus mengatur variabel lingkungan spesifik Anda secara manual sebelum memohon mapserv untuk mencerminkan konfigurasi Apache Anda dengan benar.

Selain itu, Anda dapat mengatur variabel lingkungan lainnya untuk mensimulasikan menjalankan sebagai skrip CGI:

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

QUERY_STRING akan bermanfaat.


6

Beberapa pemikiran. Agak sulit untuk mendiagnosis ini tanpa melihat mapfile Anda, tetapi begini:

  1. Anda harus mencoba mengatur variabel PROJ_LIB ke /some/place/share/proj/nad/Di situlah letak file epsg.

  2. Aktifkan debugging. Atur ke level 5. Anda juga perlu mengatur file log kesalahan. Lihat info lebih lanjut di MapServer docs http://mapserver.org/mapfile/map.html

Saya menduga bahwa jalur ke basis data epsg salah atau pengguna Anda tidak memiliki hak untuk membacanya.

Saya ini bukan masalahnya, saya akan melihat apakah Anda telah mengatur semua layer dan metadata level peta di MapFile Anda yang diperlukan untuk berfungsi sebagai server WMS. Info lebih lanjut di sini: http://mapserver.org/ogc/wms_server.html Pastikan Anda telah menetapkan SRS / CRS yang valid dalam metadata WMS Anda.


4

Saya baru saja mengalami masalah ini dan menemukan bahwa masalahnya adalah karena saya belum menginstal paket 'proj-epsg'.

yum install proj-epsg

1

Untuk membaca Lebih Lanjut tentang Kesalahan WMS dan kesalahan umum lainnya ikuti tautan di bawah ini;

http://mapserver.org/errors.html#msprocessprojection-no-such-file-or-directory (Omong-omong, mengikuti metode ini bekerja untuk saya)

dan

http://mapserver.org/errors.html


Selamat datang di GIS SE! Dalam hal ini, saya pikir pesan kesalahan tertentu sedang ditanyakan, tetapi Anda telah memberikan saran umum sebagai bagian dari jawaban tautan saja. Oleh karena itu, saya sarankan Anda mengedit jawaban Anda untuk menjelaskan cara mengatasi kesalahan spesifik yang ditanyakan.
PolyGeo

Saya memiliki masalah yang sama sebelumnya, dan dengan menggunakan metode di tautan pertama yang saya berikan, untuk menentukan lokasi perpustakaan proyek dalam file peta dan dengan Menetapkan variabel lingkungan melalui server web saya di file httpd.conf dari instalasi Apache saya , Saya bisa menyelesaikan masalah. Jadi itu sebabnya saya memberikan tautan ke solusi dan di mana saya menemukannya.
user28864

Tidak apa-apa untuk melakukan asalkan Anda juga memberikan konteks / penjelasan daripada hanya tautan. Saya sarankan Anda mengedit jawaban Anda untuk menyalin / menempelkan komentar Anda ke dalam jawaban Anda, dengan cepat merapikannya. Idenya adalah bahwa pengunjung berikutnya dengan masalah yang sama akan memiliki gagasan yang adil tentang bagaimana menyelesaikannya hanya dengan membaca jawaban Anda, bahkan jika tautan tersebut akhirnya putus pada beberapa titik di masa depan. Terima kasih telah meluangkan waktu untuk menjawab.
PolyGeo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.