我已經寫了這個簡單的shell腳本:調用shell命令具有不同的行爲比外殼
#!/bin/sh
STORAGE_PATH=/tmp/;
export STORAGE_PATH;
cd STORAGE_PATH;
perl /{SOME_PATH}/perl-script.pl;
當我把它從外殼,它完美的作品如預期。但是從PHP中無限地掛起來,在調試時,我發現它在Perl執行過程中掛起,這並沒有任何意義,因爲如果它在shell中調用,它會繼續。
我與shebang #!/bin/sh
有任何的錯誤嗎?我也嘗試了#!/bin/bash
。
我試圖在PHP中的所有變化:exec
,system
,shell_exec
,callthru
但沒有什麼工作..
我錯過了什麼?
apache是否有權限執行perl腳本? – 2013-03-20 18:02:32
除了檢查權限之外,還可以嘗試使用perl二進制文件的絕對路徑,以及您可能在perl腳本中調用的其他任何其他路徑。 '$ PATH'環境變量在登錄賬戶和服務賬戶之間經常不同。 – Sammitch 2013-03-20 18:08:34
您可以通過將* -x *添加到#中來查看腳本正在執行的操作。 line **#!/ bin/sh -x ** – 2013-03-28 01:42:02