PHPのSafeModeについて
PHPにてexec()関数を使用したかったため、あれこれ試してみたのだが、どうもうまく動作してくれない現象に悩まされた。
試しているPHPのソースは以下の通り。
しかし単純にSafeModeをOffにするのもどうかと思うし、う〜〜〜ん、悩みどころ。
いま少し、じっくりと調べてみたい所ではある。
追記
SafeModeはOnにしたままで、php.iniのsafe_mode_exec_dirに実行するコマンドが置かれているパスを設定する事により、実行できるようになった。
試しているPHPのソースは以下の通り。
<?php
$ret = exec("/bin/date");
echo("$ret<BR>");
?>
上記内容をtest.phpとしてファイルに保存し、ブラウザにて参照した所、何も表示されずApacheのエラーログに以下のようなメッセージが表示される。$ret = exec("/bin/date");
echo("$ret<BR>");
?>
/date: not found
環境変数PATHの設定やパス指定の間違い、suExecの設定等、色々と調べてみたが一向に解決できなかったが、ふとした思い付きで、PHPのSafeModeをOFFにしてApacheを再起動して見た所、正常に動作するようになった。しかし単純にSafeModeをOffにするのもどうかと思うし、う〜〜〜ん、悩みどころ。
いま少し、じっくりと調べてみたい所ではある。
追記
SafeModeはOnにしたままで、php.iniのsafe_mode_exec_dirに実行するコマンドが置かれているパスを設定する事により、実行できるようになった。
TrackBack
Comments
No comments yet









