0

良い一日。
PHP 内にロードされた PHP モジュール (.so) があります。MINIT ステージでは、ファイルを読み取ろうとします。
ファイルは /tmp/aaa.txt です。ディレクトリ /tmp は root に属し、そのパーミッションは 777 に設定されてい
ます。ファイル /tmp/aaa.txt は apache ユーザーに属し、777 パーミッションに設定されています。

モジュールは、VCWD_FOPEN() でファイルを開きます。これは
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)、最終的には fopen() であると定義されています。

VCWD_FOPENエラー 13 (許可が拒否されました) で失敗します。
奇妙なことに、モジュールを手動で呼び出すと、 ( #php -r 'echo "hi";' )動作します。しかし、apache から実行すると、そうではありません。
誰も理由を知っていますか?

ありがとうございました

4

1 に答える 1

0

問題が見つかりました。ユーザー権限ポリシーは、SELinux によって適用されました。それを無効にするには、私は入力しました #setenforce 0
#service httpd restart

今すぐ動作

于 2012-05-02T19:52:55.687 に答える