运行PHP脚本时获取errno 2

时间:2010-09-26 00:50:51

标签: php gis mapserver

希望你帮助我......过去两天我一直在这里,不得不承认我很难过。

我所使用的操作系统是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 :(得分:0)

正如梅加尔所说,问题可能出在这一行:

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

无法找到“static.map”。 PHP的当前工作目录通常不是您所期望的。尝试使路径相对于当前脚本。如果static.mapstatic.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);

请注意* /../ * static.map。 dirname(__FILE__)将返回放置该代码的PHP文件的目录名称。