2010-12-10 216 views
1

我有一個涉及exec()的PHP腳本,它可以在命令行中正常運行,但不能在web上下文中運行。該腳本很簡單:exec()通過命令行運行,但不通過網絡運行

<?php exec('echo "wee" > /home/jason/wee.txt'); 

如果我把這個腳本wee.php和運行php wee.php,它工作正常,並wee.txt被寫入。

如果我去http://mysite.com/wee.php,腳本假裝運行正常,但wee.txt實際上沒有寫入。

任何想法爲什麼會發生這種情況?

回答

3

Web服務器以不同的用戶身份運行,並且該用戶沒有寫入主目錄的權限。

+0

有什麼辦法可以使這項工作?像臨時授權 – Thejas 2016-07-25 11:12:34

0

您的Web服務器可能(正確)沒有適當的權限寫入主目錄。

0

注意到您正在寫給/ home/jason。請注意,apache將是運行此命令的人(如果使用Ubunut或Debian,則爲www-data用戶)。該過程是否具有寫入該文件夾的權限?

相關問題