アプリ版:「スタンプのみでお礼する」機能のリリースについて

OSはLinux Fedora10で、ウェブサーバは Apache/2.2.10 (Unix)、PHPは5.2.9 (cli)を使用しています。

以下のディレクトリをウェブサーバのディレクトリとして作成し、その中にPHPファイルをそれぞれ設置しています。

/var/www/aaa
/var/www/bbb
/var/www/ccc

ここで、ディレクトリ「/var/www/aaa」内のPHPファイルにおいては、system()やその他のプログラム実行関数を許可したいのですが、その他の「/var/www/bbb」や「/var/www/ccc」内のPHPファイルにおいては許可したくありません。

上記のことを実現すべく、プログラム実行関数の使用を制限するために、「php.ini」のファイルを以下のように変更しました。(その後、HTTPDを再起動して、変更を反響させました。)

safe_mode = Off
 ↓
safe_mode = On

safe_mode_exec_dir =
 ↓
safe_mode_exec_dir = /var/www/aaa

 すると、ディレクトリ「/var/www/bbb」や「/var/www/ccc」内のPHPファイルだけではなく、除外したはずの「/var/www/aaa」内のPHPファイルでも、system()やその他のプログラム実行関数の使用ができなくなりました。そして、以下のようなエラーメッセージを受け取ります。

Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /var/www/aaa/example.php on line 10

 PHPのセーフモードをディレクトリ毎にうまく設定するにはどうすればよいのでしょうか?

よろしくお願い致します。

A 回答 (1件)

ちょっと触ってみましたが、確かに無視される感じですね。

(5.3.1)
権限をお持ちのようですから Apacheの httpd.confもいじれると思いますので、以下でどうでしょう。

<Directory "/var/www/aaa">
php_admin_flag safe_mode Off
</Directory>
    • good
    • 0
この回答へのお礼

ご回答、本当にありがとうございました。

中々回答が得られなかったので、半ばあきらめていました。
そういうわけで、このコメントを今まで見ていませんでした。
大変失礼致しました。

JaneDueさんのアドバイス通りやってみたところ、
目的の結果が得られ、とても感謝しているところです。

2011/06/20 23:51

お礼日時:2011/06/20 23:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!