2011-08-03 32 views
0

我用我的服務器上的wkhtmtoimage庫,我已經成功地得到輸出下面的命令,當我在膩子正在運行:這個shell命令爲什麼不提供所需的結果?

wkhtmltoimage www.google.com test.jpg 

但是,當我用下面的shell命令我沒有得到輸出,我不知道爲什麼。

$filnename = "test.jpg"; 
$url = "http://www.google.com";  
shell_exec("wkhtmltoimage $url $filename"); 

即使我試圖與這種變化相反,但仍然沒有得到想要的結果:

shell_exec("/usr/local/bin/wkhtmltoimage $url $filename"); 

我在做什麼錯?

編輯:

我下載的Linux二進制文件,並把它放入文件夾,然後我跑it.Whether我需要重新啓動受影響的更改服務器?

了shell_exec命令允許的,因爲我們把它用於ffmpeg的(已安裝)

+2

您是否收到任何錯誤? – Dogbert

+1

嘗試在命令末尾添加'2>&1'來捕獲錯誤消息 – wonk0

+0

小問題,PHP腳本中的域與SSH中的域不同(請注意PHP腳本中的http://) – ChrisH

回答

0

我不能給出一個確切的解決方案,但如果你可以嘗試一下我寫的東西,我可能會有所幫助。如果我提供的解決方案無效,我會列出更多解決方案。

解決方案1:
各地URL和文件名

shell_exec("wkhtmltoimage \"$url\" \"$filename\""); 

解決方案2使用引號:
嘗試重定向流文件,並鍵入內容。

shell_exec("wkhtmltoimage \"$url\" \"$filename\" > output.txt 2> error.txt"); 
+0

我需要檢查error.txt文件。現在我也沒有得到任何圖像。 – svk

+0

只是從shell中讀取內容,或者使用echo file_get_contents(「error.txt」);輸出也一樣。只要檢查他們是否有任何有用的信息。 –

+0

echo file_get_contents(「error.txt」);它顯示我一個空白屏幕 – svk

0

可能是PHP(或Apache)運行時沒有權限運行此工具的用戶。嘗試打印此命令的輸出或僅使用passthru()來直接打印命令的輸出。 另一個解決方案是將輸出傳遞給@Cem_Kalyoncu寫的文件。

+0

沒有顯示任何東西在頁面上。任何想法?掙扎一天我不能找到錯誤。 – svk

+0

可能wkhtmltoimage沒有權限創建文件或寫入PHP腳本所在目錄中的文件? – Timur

+0

但是,如果我使用膩子,它可以寫入文件。所以使用膩子和腳本之間有任何區別。我希望它不是那樣。如果我使用膩子,我得到根文件夾中的文件。 – svk

相關問題