1

あなたが私を助けてくれることを願っています...私は過去2日間これにいて、私が困惑していることを認めなければなりません。

私が使用しているOSはUbuntu9.10Karmicです。

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 に答える