2014-04-01 163 views
0

我試圖通過PHP的EXEC像運行將 'sample_(2).PDF [1]' 'sample.jpg' 下面exec命令不能在PHP工作,但在終端/膩子工作

> exec(" convert 'sample_(2).pdf[1]' 'sample.jpg' "); 

但它不是在PHP工作,但在終端工程很好。我嘗試了下面的代碼也檢查wethee exec正在使用php。

echo exec('whoami'); //這是工作,給我造成

EXEC( 「CP 'sample_(2).PDF' sample2.pdf」);

//這是行不通的。

但是所有的命令都在終端中運行。任何想法都會幫助我。過去兩天我一直在撓頭。

編輯

我得到它的工作。我的文件路徑存在錯誤。

+0

修正你的報價在cp樣本不工作,'''''''等等等所有可怕的。其次exec可能會被運行apache的用戶禁用。 – Dave

+0

我正在使用那些「」「等來逃避特殊字符。從終端一切正常。用戶在putty和連接憑證中都是一樣的 – jack

+0

是啊........不管理exec命令外部的特殊字符exec(「cp $ source $ destination」);'正確轉義後使用\作爲命令行。並從終端運行腳本運行它與登錄用戶的權限,運行它通過Web服務器運行它與您的Apache用戶(萬維網deb/httpd上的萬維網數據)運行它通過FTP運行它作爲您的FTP用戶。 Ftp用戶通常無法執行腳本 – Dave

回答

0

我猜Web服務器沒有權限寫入你想寫的文件夾。檢查您的網絡服務器的文件夾權限(可能是「www-data」)。

+0

我嘗試了777權限文件和文件夾 – jack

+0

嘗試passthru(「convert'sample_(2).pdf [1]''sample.jpg'」);並查看它顯示的錯誤。因爲exec不顯示其他參數的結果。 – Marbel

+0

passthru(「convert'sample_(2).pdf [1]''sample.jpg'2> &1");是正確的方法。因爲passthru只顯示標準輸出。 – Marbel

相關問題