2017-08-01 199 views
0

我試圖獲得下面的linux命令來使用PHP。我閱讀了PHP中的shell_exec命令,該命令可用於執行shell命令。運行一個linux命令,通過PHP輸出到文本文件

我想輸出一些簡單的文本到一個文本文件。我試過以下內容:

<?php 
    $cmd = 'echo "hi" > Desktop/test/output.txt'; 
    shell_exec($cmd); 
?> 

請注意,我在Ubuntu 16.04上運行這個。我還將www-data作爲Desktop/test文件夾的所有者,以便它可以寫入它。以下是我用於該命令:

sudo chown -R www-data:www-data Desktop/test 

當我執行上述命令,直接在殼體1可以看到與串輸出創建的output.txt的文件。

但是,當我通過apache web服務器執行php腳本時,我看不到正在創建的output.txt文件。

很高興,如果你能指出我朝着正確的方向。

謝謝

+0

當你使用絕對路徑時它工作嗎? – betaros

+0

嘗試獲取命令的輸出以查看是否有任何錯誤 – Jerodev

+1

嘗試使用絕對路徑:'/ home/yourUserName/Desktop/test/output.txt' –

回答

0

正如我在評論中所說:你應該使用絕對路徑。

<?php 
    $cmd = 'echo "hi" > /home/username/Desktop/test/output.txt'; 
    shell_exec($cmd); 
?> 
+0

謝謝!這有點奇怪,該命令如何在沒有絕對路徑的情況下直接在shell上運行,而不是通過PHP運行。 – terry96

相關問題