windows+PHP+shell_exec()無法執(zhí)行的原因

今天使用shell_exec()命令執(zhí)行wkhtmltopdf.exe 生成pdf文件時,總是無法生成PDF文件,使用var_dump()打印返回值,結(jié)果是null??墒菣z查代碼并沒有什么問題啊?執(zhí)行程序的目錄是

D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe

好吧,接下來找找原因。

1、通過dos執(zhí)行wkhtmltopdf程序

首先測試通過dos命令行執(zhí)行wkhtmltopdf程序:

執(zhí)行成功,沒有問題。

查看pdf文件是否成功生成:

文件同樣成功生成。

這說明程序執(zhí)行沒有問題。

2、PHP安全模式

網(wǎng)上說PHP安全模式會影響到shell_php()函數(shù)的執(zhí)行。我查了一下,發(fā)現(xiàn)php.ini中安全模式只有

[SQL]

; http://php.net/sql.safe-mode

sql.safe_mode = Off

沒有其他的安全模式。而且安全模式還會影響exec()函數(shù)的使用,我之前曾經(jīng)使用過exec()函數(shù),所以不是安全模式的問題。

3、php.ini中disable_functions參數(shù)

百度時,有人說是php.ini配置文件中disable_funcitons=shell_exec()。禁用了shell_exec()函數(shù)。好吧,php.ini默認(rèn)disable_funcitons= (null)。看來不是這里的原因呢。

4、程序執(zhí)行目錄問題

之后,我有檢查了一下shell_exec()的執(zhí)行代碼,發(fā)現(xiàn)執(zhí)行目錄

D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe有問題。

在第二個目錄Program Files中有空格存在,之前考慮到不能含有中文的問題,所以安裝wkhtmltopdf時,走的是D盤下的默認(rèn)目錄(本來是C盤,我改為D盤了)。既然不能走中文目錄,是不是含有空格的目錄也是不行的呢?于是我就把D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe改為D:\wkhtmltopdf\bin\wkhtmltopdf.exe。然后修改了shell_exec()執(zhí)行代碼的執(zhí)行目錄。

最后執(zhí)行成功,生成了pdf文件。

5、環(huán)境變量問題

此外把文件添加到環(huán)境變量中,可以不用帶目錄執(zhí)行wkhtmltopdf程序。只不過,因為是測試wkhtmltopdf是否能執(zhí)行含有html+css代碼的文件生成帶有css格式PDF文件,所以沒有添加到環(huán)境變量中,希望有小伙伴使用wkhtmltopdf時,可以安裝wkhtmltopdf到D:\Program Files下,然后添加到環(huán)境變量內(nèi),用php的shell_exec()使用一下,看看能否成功。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MSSQL 跨庫查詢(臭要飯的!黑夜) 榨干MS SQL最后一滴血 SQL語句參考及記錄集對象詳解 關(guān)于SQL S...
    碧海生曲閱讀 5,894評論 0 1
  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,488評論 3 53
  • 個人學(xué)習(xí)批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,981評論 0 11
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,709評論 0 5
  • 姓名:周文蓉 公司:海南蔚藍(lán)時代實業(yè)有限公司 組別:365期學(xué)員 謙虛一組塾生 【日精進(jìn)打卡第199天】 【知~學(xué)...
    周文蓉閱讀 87評論 0 0

友情鏈接更多精彩內(nèi)容