![](/img/trans.png)
[英]PHP exec,system,shell_exec not working with wget on ubuntu machine
[英]PHP - exec,shell_exec,system not working
我讀了很多類似的問題,但對我沒有任何幫助
我使用wamp 2.2,Apache 2.0,PHP V5.3.8
safe_mode = off-我試圖從php.ini中刪除了disabled_functions
exec("chrome.exe google.com");
什么也沒有發生,當我嘗試
exec("calc");
盡管我將apache服務的用戶更改為管理員,並且我使用
exec("whoami");
問題出在哪兒?
CMD和php shell的環境路徑可能不同。 您要么必須提供文件的完整路徑,要么首先在php中export
chrome.exe
的路徑。
另外,我相信chrome.exe
打開頁面需要XServer,php無法在shell中打開圖形界面。 這些命令不會作為父項傳遞給實際的shell,因此php文件無法為您“啟動”應用程序。
請閱讀exec函數的詳細信息: PHP exec
Reference
也可以嘗試添加2> errors.txt
以查看程序執行中存在的錯誤(如果有)。
-
該程序需要知道要連接到哪個X服務器,並且需要具有連接到該服務器的權限。 您可以使用DISPLAY環境變量指定X服務器。 如果從X的終端或GNOME面板或類似的程序運行PHP程序,通常將自動設置該參數; 但是,如果您以其他方式運行PHP腳本,則可能不知道要連接到哪個X服務器。
X有多種指定連接到服務器的權限的方法,但是最常見的一種方法是在用戶主目錄中使用一個名為“ .Xauthority”的文件。 因為只有在X服務器上登錄的用戶才能讀取此文件,所以他們是唯一可以運行GUI程序的用戶。 因此,如果您以與在X服務器上登錄的用戶相同的身份啟動PHP用戶,則權限不會有任何問題。 但是,如果PHP程序以其他用戶身份運行,則必須授予該用戶訪問X服務器的權限。
參考: http : //bytes.com/topic/php/answers/838364-cant-launch-graphical-apps-php-exec-ubuntu-8-04-system (我知道該鏈接適用於Linux,並且不會與Windows完全相同的解決方案,但是exec()
仍然需要知道要引用哪個X接口)
停止Apache作為服務運行。
Windows運行服務時,它不是直接以啟動服務器或進行管理的用戶身份運行,因此很可能是在服務環境中啟動chrome,因此您不會看到它加載在桌面上,有兩種解決方法
停止apache服務瀏覽到您的apache目錄並手動運行httpd.exe,然后嘗試運行腳本,或者如果不需要通過Web請求運行該腳本,則它不使用瀏覽器中的任何內容,則可以允許它與c:\\wamp\\php\\php.exe yourfile.php
(您的php路徑應替換為c:\\wamp\\php
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.