Получение errno 2 при запуске скрипта PHP - PullRequest
1 голос
/ 26 сентября 2010

Надеюсь, вы мне поможете ... Я занимался этим последние 2 дня и должен признать, что я в замешательстве.

Операционная система, на которой я работаю, - это Ubuntu 9.10 Karmic.*

Я успешно установил и протестировал Mapserver.Для моего проекта класса у меня есть php-скрипт, который я использую для создания слоя, см. Ниже ....

Ошибка, возникающая при запуске сценария в командной строке cmd:

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

PHP SCRIPT:

<?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();

?>

Я сделал каталог и файлы по всему миру rwx просто чтобы убедиться, что это не проблема с разрешениями

Любая помощь будет принята с благодарностью !!*

Спасибо

Крис

1 Ответ

0 голосов
/ 26 сентября 2010

Как сказал meagar, проблема, вероятно, в том, что эта строка:

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

не может найти "static.map".Текущий рабочий каталог PHP очень часто отличается от ожидаемого.Попробуйте сделать путь относительно текущего сценария.Если static.map находится в том же каталоге, что и static.map, попробуйте этот код:

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

, если static.map, скажем, /var/www/mapserverdocs/ms4w/apps/world/mapfiles/static.map, то попробуйте:

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

Обратите внимание на статическую карту * / .. / *.dirname(__FILE__) вернет имя каталога PHP-файла, в который вы поместили этот код.

...