[PHP-users 19617]Re: systemについて

GT perl @ getpresent.com
2003年 12月 29日 (月) 00:04:27 JST


GTと申します。

いつもお世話になっております。

ありがとうございます。

>> いま気付いたのですがtelnetで「php test1.php」とすると
>> 下記のメッセージが出ますがこれはどういう意味でしょうか?
>> 「cannot create  /dev/null : directory nonexistent」
> 
> まずは逐語翻訳くらいしてみましょうよ...
> 「/dev/null を作成できません: ディレクトリが存在していません」
> という意味です.
> つまり /dev に null というファイルを作ろうとして失敗しています.

こちらは一応適当な空のファイルを作ったりしても試してみました
が、ダメでした。

> OS は何ですか?
> UNIX 系の OS なら通常は /dev/null が存在しているので
> 上記のエラーにはならないかと思いますが……

環境は下記の通りです。
FreeBSD 4.7-RELEASE
Apache 1.3.28 (suEXEC enabled)

> それと,test2.php が [PHP-users 19610] にあるとおりならば,
> system 関数では実行できません.
>> system( "/usr/local/bin/php -q xxxxx/test2.php" );
> といった風に php のインタプリタで明示的に起動しましょう.
> apache の実行ユーザがどのような path を持っているかわからないので,
> php も /usr/local/bin/php という風にフルパスにすべきです.
> 
> 
> 上記の /dev/null の問題等もありますから,
> まずは混乱する要素である「> /dev/null」と「&」を取り除いて,
> とにかく単なるファイルの実行が可能かどうかを確認し,
> その上で各要素を順に追加して問題の切り分けをしてみてください.
> 
> こちらの環境で,上記の /usr/local/bin/php の修正を施した
> test[12].php を実行してみましたが(暇だな自分も),期待通りに動作します.
> プログラムより環境に問題がありそうです.

system("php /home/www/xxxxx/public_html/test2.php > /dev/null &");

で telnet からだと思い通りに動作しました。(ファイルも生成されました)
ですがブラウザからだとダメでした。

system("/usr/local/bin/php /home/www/xxxxx/public_html/test2.php > /dev/null
&");

system("/usr/local/bin/php -q /home/www/xxxxx/public_html/test2.php >
/dev/null &");

も同様にブラウザからだとダメでした

レンタルサーバなのですが何らかの設定によりこの方法での
ファイル生成はできないようにしていると言うことはあり得ますでしょうか?





PHP-users メーリングリストの案内