作者bottle7839 (Ping)
看板PHP
標題[請益] php在windows系統伺服器執行exec()
時間Tue Oct 22 21:49:52 2013
大家好,雖然在板上對於php執行exec()有很多的討論,
相關的解決方法我都一一試過 ex: 檢查safe mode, disable function,
改cmd權限(完全控制), 改資料夾的權限(直接把使用者在wamp權限改到最高
,存取的資料夾也是), 也改過服務裡面的wampapache的"允許服務與桌面互動"..
都沒有辦法,全面崩潰中....
我的環境:
OS:Windows 7
Server:Apache/2.4.4(Win 32)
PHP version:5.4.16
程式目的:
讓使用者上傳圖片(預設到A資料夾),用exec()跑程式之後,程式會自動產生一張圖片
再放到A資料夾裡面。
問題程式碼如下:
$commandline = "XXXXX.exe";
exec($commandline,$output,$ret);//execute the program
echo "return".$ret."<br/>";
結果:
return0 <-- 這應該代表執行成功
但是A資料夾下沒有任何我程式產生的圖片,只有使用者上傳的圖片Orz...
PS:
1.我看過A資料夾,權限故意開到最大,可是還是沒有辦法。
2.之前版本有跑過絕對路徑,也是出現error的情形。
以上,懇請板上高手解惑Q_Q
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.214.166
1F:→ CaptainH:只有我覺得很奇怪嗎 10/22 21:52
2F:→ CaptainH:用windows又能設777; 沒給錯誤訊息又說「也是有error」 10/22 21:53
抱歉,我一開始是用Linux跑程式,所以有用chmod("資料夾名稱", 0777);
//chagne chmod = 777
因為exe檔,在linux下不能執行 才換伺服器
只是要強調都把權限都打開了而已Q_Q
我的error指的是沒有出現預期的結果(產生圖片在A資料夾)
沒有出現error message,return 值都是0
※ 編輯: bottle7839 來自: 140.113.214.166 (10/22 21:59)
※ 編輯: bottle7839 來自: 140.113.214.166 (10/22 21:59)
3F:推 LaPass:chmod("資料夾名稱", 0777); <= ??? 10/22 22:05
4F:→ LaPass:其實.... 你可以打開cmd直接下指令看看 10/22 22:06
5F:→ bottle7839:痾 那是之前在linux環境的時候寫的orz... 10/22 22:06
6F:→ LaPass:那些php用exec之類的指令,最後也是這樣跑 10/22 22:07
奇妙的是我打cmd指令,可以成功產生圖片在資料夾...
可是只要用網站的方式執行就沒有反應@@"
※ 編輯: bottle7839 來自: 140.113.214.166 (10/22 22:09)
7F:推 LaPass:那應該要往php的執行權限下手看看,你改成fopen把輸出的字 10/22 22:10
8F:→ LaPass:串先印出來 10/22 22:10