Conseguir una errno 2 cuando se ejecuta un script PHP
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
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.