2014-01-24 141 views
0

script.shbash腳本具有從PHP了shell_exec

cd ~/scripts 
acname=$(cat acname.txt) 
days=$(cat days.txt) 
nbmessages=`ls -l message_*.txt | wc -l` 
today=`date +%Y%m%d` 
# 
echo $acname >> ./log.txt 
echo $days >> ./log.txt 
echo $nbmessages >> ./log.txt 
echo $today >> ./log.txt 

推出的時候,如果我在shell提示符下運行script.sh不同的行爲,log.txt中顯示:

alex8 
4 
5 
20140124 

這是正確的

如果我運行在PHP中使用了shell_exec功能script.sh,log.txt中顯示:

log.txt: 


0 
20140124 

因此,獲取文件的內容不起作用,也不計算具有特定模式的文件(當它應該是5時得到0),而date命令仍然有效。 有什麼想法? 非常感謝提前!

+1

'〜/ scripts'轉到您的主目錄的腳本子目錄。這可能與運行php的Web服務器進程的主目錄不同。 –

+0

我會嘗試回顯密碼,看看我在哪裏,在每種情況下 – Alex

+0

,你是正確的,pwd給出了不同的迪爾在這種情況下 – Alex

回答

0

~/scripts轉到您的主目錄的腳本子目錄。這可能與運行php的Web服務器進程的主目錄不同。

通常使用完整路徑可以幫助緩解這樣的問題,但您仍然必須與確保Web服務器進程對所涉及文件具有權限相抵觸。