Pregunta

La esperanza me ayudas ... He estado en esto durante los últimos 2 días y tengo que admitir que estoy confundido.

El sistema operativo es que estoy en Ubuntu 9.10 Karmic.

He instalado con éxito y probado Mapserver. Para mi proyecto de clase, tengo un script php que estoy usando para crear una capa ver más abajo ....

El error que consigo cuando se ejecuta la secuencia de comandos en una línea de cmd pronta:

Warning: [MapServer Error]: msProcessProjection(): no system list, errno: 2

 in /var/www/mapserverdocs/ms4w/apps/world/mapscripts/staticwms.php on line 16

Warning: Failed to open map file static.map in /var/www/mapserverdocs/ms4w/apps/world/mapscripts/staticwms.php on line 16

Fatal error: Call to a member function owsdispatch() on a non-object in /var/www/mapserverdocs/ms4w/apps/world/mapscripts/staticwms.php on line 18

Script PHP:

<?php

if (!extension_loaded("MapScript")) dl("php_mapscript");

$request = ms_newowsrequestobj();

foreach ($_GET as $k=>$v) {
  $request->setParameter($k, $v);
}

$request->setParameter("VeRsIoN","1.0.0");

ms_ioinstallstdouttobuffer();

$oMap = ms_newMapobj("static.map");
$oMap->owsdispatch($request);

$contenttype = ms_iostripstdoutbuffercontenttype();

if ($contenttype == 'image/png') {    
  header('Content-type: image/png');
  ms_iogetStdoutBufferBytes();
} else {
  $buffer = ms_iogetstdoutbufferstring();
  echo $buffer;
}

ms_ioresethandlers();

?>

Me hizo el mundo directorio y los archivos de ancho rwx sólo para asegurarse de que no era un problema de permisos

Cualquier ayuda sería muy apreciada !!

Gracias

Chris

¿Fue útil?

Solución

Como dijo meagar, el problema es probablemente que esta línea:

$oMap = ms_newMapobj("static.map");

es incapaz de encontrar "static.map". El directorio de trabajo actual de PHP no es muy a menudo lo que se espera que sea. Trate de hacer la ruta de ser relativa al script actual. Si static.map está en el mismo directorio que static.map, prueba este código:

$mapPath = dirname(__FILE__).'/static.map';
$oMap = ms_newMapobj($mapPath);
$oMap->owsdispatch($request);

Si static.map está en, digamos, /var/www/mapserverdocs/ms4w/apps/world/mapfiles/static.map, a continuación, tratar:

$mapPath = dirname(__FILE__).'/../static.map';
$oMap = ms_newMapobj($mapPath);
$oMap->owsdispatch($request);

Aviso el * /../ static.map *. dirname(__FILE__) devolverá el nombre del directorio del archivo PHP de colocar ese código en.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top