2016-04-09 200 views
0

我有一個bash腳本,它既可以在shell和PHP命令行中按預期方式工作,也不會在Apache(Raspbian)的PHP頁面中調用時運行。也就是說,這個工程(PHP命令行):bash腳本從php命令行運行,但不是從頁面

>php exec('/var/www/html/scripts/myBashScript.sh'); 

但這並不(的index.php):

<?php 
exec('/var/www/html/scripts/myBashScript.sh'); 
?> 

沒有顯示錯誤消息,我無法看到任何有關Apache服務器日誌。正如其他答覆指出,我也試着:

  • EXEC( 'SH /var/www/html/scripts/myBashScript.sh')
  • EXEC( './腳本/ myBashScript.sh' )
  • EXEC( 'SH ./scripts/myBashScript.sh')

兩個腳本文件,並且其包含的文件夾具有用於Apache用戶(WWW的數據)rwx權限。腳本設置爲可執行。內置的bash命令按照預期的方式從php文件中工作,即:這可以工作:

<?php 
echo exec('whoami'); 
?> 

我在想什麼?

+1

你怎麼知道它沒有運行?使用['$ output'和'$ return_var'參數](https://secure.php.net/manual/en/function.exec.php)和'var_dump'它們包含的內容。另外,如果它是一個bash腳本,試圖用'sh'而不是'bash'來運行它似乎很愚蠢。 –

+0

@FuzzyTree:-rwxrwxrwx 1 www-data www-data 396 Apr 9 11:02 scripts/myBashScript.sh – LambethWalk

+0

@Alexander,該腳本啓動了一個Web瀏覽器,因此我知道這不會發生。它不會產生其他輸出。 – LambethWalk

回答

0

問題原來與腳本中的非Bash命令有關,而與腳本本身有關。見上面的評論。謝謝@ AlexanderO'Mara。