おはよう。
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。
なぜ誰も知っていますか?
ありがとうございました
Apacheのユーザーで同じPHPのコマンドを実行し、何が起こるか見てみ
#setenforce 0
#service httpd restart
作品を入力 – ilanco
私にはアクセス許可の問題のように見えますが、変更することでそれを試すことができ、それを無効にするには あなたのApacheユーザーのグループをrootのものと同じものにする –
'getuid()'と 'getgid()'を印刷すると、それらは両方とも0(私がrootであることを意味します)です。それでもアクセスは拒否されています。私が/ etcにファイルを置くと、それは動作します。しかし、/ tmpではありません。奇妙な:( – Vasisualiy