希望您能帮助我...在过去的两天中,我一直在这个工作,不得不承认我很困惑。

我使用的操作系统是Ubuntu 9.10业力。

我成功安装并测试了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脚本:

<?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,只是为了确保这不是权限问题

任何帮助将不胜感激!!

谢谢

克里斯

有帮助吗?

解决方案

正如Meagar所说,问题可能是这条线:

$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文件目录的名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top