好的,我具有權限的噩夢..運行php shell_exec沒有返回結果給瀏覽器?
我有/var/www/src/myshell.sh這是可執行
#!/bin/bash
echo "It's working" > /var/www/html/myshell.txt
也能正常工作從CLI, txt文件被創建爲包含「It's working」文本。
但是,當我嘗試從運行/var/www/html/test.php
<?php
$message=shell_exec("/var/www/src/myshell.sh 2>&1");
print_r($message);
?>
它返回在瀏覽器中執行以下操作:
/var/www/src/myshell.sh: line 3: /var/www/html/myshell.txt: Permission denied
而且myshell.txt是不是在/ var/www/html中創建的
我花了整個昨晚嘗試一切可能的方式,我可以找到這裏SO和其他地方設置正確的權限沒有一個所以我放棄了試圖找出它,並想知道是否有可能運行這個shell腳本,而不是它試圖返回任何東西到瀏覽器,因爲這似乎是導致權限錯誤。
所以基本上test.php啓動.sh腳本,然後忘記它。無論如何,我打算在這裏使用的流程不需要被髮送回瀏覽器。
難道這可以通過不使用shell_exec並通過使用另一個PHP命令,而不是?
非常感謝
你的先生是一個絕對的傳奇人物。如果我昨晚知道這個簡單的事實,它會救了我4小時拉我的頭髮!非常感謝! – Grant 2015-02-11 15:41:06
好吧,現在正在工作,但它仍然顯示在Web瀏覽器中sh輸出的結果。我能壓制結果嗎?我根本不需要看到他們。 – Grant 2015-02-11 15:47:18
請刪除print_r($ message); print_r是一個「輸出」函數,它在內部做類似echo $ var; – 2015-02-11 15:50:08