2012-03-12 52 views
0

我跑這是在另一個用戶(不阿帕奇)並運行一個cron當我嘗試訪問阿帕奇的文件,它顯示了類似的錯誤:PHP CHOWN()與Apache用戶問題

fopen(): SAFE MODE Restriction in effect. 
The script whose uid is 10017 is not allowed to access .... 

這是因爲safe_mode打開,它不讓我使用apache的文件(在這種情況下通過網站上傳文件)。我該如何克服這一點?在php.net中它說我必須是超級用戶才能夠更改對我來說看起來不太安全的所有權...

+0

它取決於你試圖訪問什麼'apache文件' – user973254 2012-03-12 18:08:59

回答

2

您通過'php'解釋器(從cron作業)運行PHP腳本,而不是通過Apache的mod_php。這意味着您可以隨心所欲地啓用和禁用PHP的安全模式。

你應該可以做點像php -d safe_mode=0 myscript.php

+0

嗨伊利亞這可能實際上是我正在尋找的解決方案,我要去試試這個。順便說說你是保加利亞人嗎?伊利亞? ...或俄羅斯也許:) – 2012-03-12 19:08:04

+0

烏克蘭,但我是俄羅斯揚聲器,是的:) – Ilya 2012-03-13 00:39:10

1

或者通過http請求調用你的cron。

wget -O - -q -t 1 http://yourdomain/myscript.php 

因爲它通過interwebs完成,所以Apache將成爲用戶。

+0

這不是一個很好的解決方案,因爲我只用於內部業務的cron,並且僅限於cli使用像if(php_sapi_name()!='cli')exit這樣的檢查。它增加了額外的安全層。 – 2012-03-12 18:50:23