良い一日。
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 から実行すると、そうではありません。
誰も理由を知っていますか?
ありがとうございました