2012-04-26 18 views
0

おはよう。
PHPモジュール(.so)がPHP内にロードされています。 MINIT段階では、ファイルを読み込もうとします。
ファイルは/tmp/aaa.txt ディレクトリ/ tmpはrootに属し、権限は777に設定されています。
ファイル/tmp/aaa.txtはapacheユーザーに属し、権限も777に設定されています。PHPモジュールからのファイルの読み込みに失敗しました。errno 13

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

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

ありがとうございました

+0

Apacheのユーザーで同じPHPのコマンドを実行し、何が起こるか見てみ #setenforce 0
#service httpd restart

作品を入力 – ilanco

+0

私にはアクセス許可の問題のように見えますが、変更することでそれを試すことができ、それを無効にするには あなたのApacheユーザーのグループをrootのものと同じものにする –

+0

'getuid()'と 'getgid()'を印刷すると、それらは両方とも0(私がrootであることを意味します)です。それでもアクセスは拒否されています。私が/ etcにファイルを置くと、それは動作します。しかし、/ tmpではありません。奇妙な:( – Vasisualiy

答えて

0

問題が見つかりました。 ユーザ権限ポリシーはSELinuxによって強制されました。私は、今

+0

それが動作する可能性がありますが、それは修正されていません –

+0

これは、エラーの理由です。 – Vasisualiy

関連する問題