2013-03-20 39 views
0

我有一個bash腳本(myscript.sh),它在用戶「www-data」的ssh控制檯上工作,但是當我在php中用「exec」運行這個腳本時腳本然後腳本不起作用。Bash腳本在ssh上工作,但不在php中

最新問題? 「www-data」有shell「/ bin/bash」,當我設置爲「/ bin/sh」時,腳本也不起作用。

+1

您必須引用登錄用戶的環境。另外,確保腳本中使用的所有路徑都是絕對路徑。沒有看到腳本,就很難猜出可能出錯的地方。 – 2013-03-20 19:56:30

+0

你在哪裏bash腳本相對於你的php文件? – 2013-03-21 05:10:40

回答

0

照顧可執行模式

chmod +x myscript.sh 

,如果腳本路徑。當調用myscript.sh時,請使用完整路徑

+0

我有檢查這個,但它不會改變任何東西。 – 2013-03-20 21:47:21

0

我知道這樣做有一種'不安全'的方式,我曾經有類似的問題,您也可以更改文件的所有權限 - 在命令行中輸入:

首先讓你的原始文件的副本 - 以防萬一,所以我們不要搞砸了進一步:

cp myscript.sh myscript2.sh 

    chmod 755 myscript2.sh 

,並在命令行中輸入:

chown www-data:www-data myscript2.sh 

請嘗試在PHP腳本文件中使用myscript2。 (我記得也識別類似這樣的問題有一些關係到運行Web服務器(我假設你使用Apache)爲根。)

順便說OP,你看你的錯誤日誌?對於什麼是不允許的,可能有一個有用的建議。

+0

爲什麼要將權限設置爲'777'? 755有什麼問題? – 2013-03-20 23:26:53

+0

我剛剛輸入了,沒想到,也許我應該改變,我想你的意思是,OP只有真正需要給「用戶」訪問「RWX」和G-RX,鄰RX,許可,通過對此有何評論? – OmarK 2013-03-20 23:37:02

+0

沒錯。有沒有點(並根據該系統,相當大的危險上)在給任何人,但所有者的寫權限。 (我本來是有關清晰。) – 2013-03-21 00:10:16

相關問題