2016-12-10 228 views
0

我試圖在PHP執行以下命令的python腳本:權限即可運行使用PHP的exec()

<?php exec("xdg-open file") ?> 
<?php exec("python file.py") ?> 

所有文件都/var/www/html

雖然其他更簡單的命令似乎工作。例如:

<?php exec("touch file.txt") ?> 
<?php echo exec("ls") ?> 
<?php echo exec("whoami") ?> 

我只是想能夠使用PHP(不需要sudo的)運行任何Python/shell命令。這是一個許可問題嗎?如果是這樣,我該怎麼辦?

回答

0

要執行一個文件,請確保該文件具有可執行權限。

chmod +x file.py 

在服務器環境中,如果被其他進程運行,用於通過Apache/Nginx的實例PHP,這些權限必須被關聯到運行服務器進程的用戶。

例如,假設你的文件名是file.py

fily.py的權限必須進行設置,以便所有者是相同的Web服務器和所有者具有可執行權限。

chown我們可以改變所有者,可以說,我們的Web服務器作爲HTTP用戶和http組運行:

chown http:http file.py 

chmod o+x file.py 

如果這個過程是不是車主,但在同一組:

chmod g+x file.py 

或者兩者都不是:

chmod o+x file.py 
+0

我剛剛試過你說的話,它仍然沒有工作;也許我做錯了什麼。服務器使用的用戶是www-data,它也是所有者。我嘗試使用python腳本播放歌曲,但沒有任何反應。 – C10H15N

+0

你能提供顯示的輸出嗎? – Exodus

+0

可能有很多事情需要考慮,PHP運行安全模式?例如。 – Exodus