题
希望您能帮助我...在过去的两天中,我一直在这个工作,不得不承认我很困惑。
我使用的操作系统是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.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);
注意 */../*static.map。 dirname(__FILE__)
将返回您放置该代码的PHP文件目录的名称。
不隶属于 StackOverflow