1

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

我使用的操作系统是 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脚本:

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

任何帮助将不胜感激!!

谢谢

克里斯

4

1 回答 1

0

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

于 2010-09-26T16:35:30.650 回答