希望你帮助我......过去两天我一直在这里,不得不承认我很难过。
我所使用的操作系统是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,以确保它不是权限问题
非常感谢任何帮助!!
由于
克里斯
答案 0 :(得分:0)
正如梅加尔所说,问题可能出在这一行:
$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文件的目录名称。