美好的一天。
在PHP中加載了一個PHP模塊(.so)。在MINIT階段,它嘗試讀取文件。
該文件是/tmp/aaa.txt 目錄/ tmp屬於root,其權限設置爲777.
文件/tmp/aaa.txt屬於apache用戶,並且也設置爲777權限。從php模塊讀取文件失敗errno 13
模塊用VCWD_FOPEN()打開文件,該文件定義爲
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)
最終是fopen()。
VCWD_FOPEN
失敗,錯誤13(權限被拒絕)。
奇怪的是,如果我手動調用模塊 (#php -r 'echo "hi";')
- 它的工作原理。 但是,當它從Apache運行 - 它沒有。
有人知道爲什麼嗎?
謝謝
嘗試apache用戶下運行相同的PHP命令,並看看會發生什麼,看起來像一個權限問題給我 – ilanco 2012-04-26 19:55:18
可以通過更改試試吧你的Apache用戶組與root的一樣? – 2012-04-26 19:55:24
如果我打印'getuid()'和'getgid()',它們都是0(表示我是root)。仍然拒絕訪問。如果我把文件放在/ etc中 - 它可以工作。但不在/ tmp中。奇怪:( – Vasisualiy 2012-04-26 21:17:07