美文网首页
windows+PHP+shell_exec()无法执行的原因

windows+PHP+shell_exec()无法执行的原因

作者: 戬谷stone | 来源:发表于2019-10-14 10:45 被阅读0次

今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,使用var_dump()打印返回值,结果是null。可是检查代码并没有什么问题啊?执行程序的目录是

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

好吧,接下来找找原因。

1、通过dos执行wkhtmltopdf程序

首先测试通过dos命令行执行wkhtmltopdf程序:

执行成功,没有问题。

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

文件同样成功生成。

这说明程序执行没有问题。

2、PHP安全模式

网上说PHP安全模式会影响到shell_php()函数的执行。我查了一下,发现php.ini中安全模式只有

[SQL]

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

sql.safe_mode = Off

没有其他的安全模式。而且安全模式还会影响exec()函数的使用,我之前曾经使用过exec()函数,所以不是安全模式的问题。

3、php.ini中disable_functions参数

百度时,有人说是php.ini配置文件中disable_funcitons=shell_exec()。禁用了shell_exec()函数。好吧,php.ini默认disable_funcitons= (null)。看来不是这里的原因呢。

4、程序执行目录问题

之后,我有检查了一下shell_exec()的执行代码,发现执行目录

D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe有问题。

在第二个目录Program Files中有空格存在,之前考虑到不能含有中文的问题,所以安装wkhtmltopdf时,走的是D盘下的默认目录(本来是C盘,我改为D盘了)。既然不能走中文目录,是不是含有空格的目录也是不行的呢?于是我就把D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe改为D:\wkhtmltopdf\bin\wkhtmltopdf.exe。然后修改了shell_exec()执行代码的执行目录。

最后执行成功,生成了pdf文件。

5、环境变量问题

此外把文件添加到环境变量中,可以不用带目录执行wkhtmltopdf程序。只不过,因为是测试wkhtmltopdf是否能执行含有html+css代码的文件生成带有css格式PDF文件,所以没有添加到环境变量中,希望有小伙伴使用wkhtmltopdf时,可以安装wkhtmltopdf到D:\Program Files下,然后添加到环境变量内,用php的shell_exec()使用一下,看看能否成功。

相关文章

  • windows+PHP+shell_exec()无法执行的原因

    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,...

  • flutter run 正常,flutter build apk

    现象:执行命令flutter run正常运行,但是执行flutter build apk 后程序无法正常运行。原因...

  • iOS 10.X无法使用openssh的解决方案

    iOS 10.X无法使用openssh的解决方案 原因检查:安装mterminal,用于在ios上执行命令1.执行...

  • MySQL数据库问题之——Got error 28 from s

    问题:Got error 28 from storage engine 原因:存储引擎不够,无法执行此SQL语句。...

  • minikube tunnel

    在启动服务之前,需要先执行 minikube tunnel :,不然外部无法访问详情和原因请看:https://...

  • Linux下回车^M去除方法

    在windows上编写的shell、python等脚本在Linux上无法正常的执行,会有 ^M 相关提示,原因 :...

  • windows编写的shell无法在linux上执行

    问题描述 windows编写的shell无法在linux上执行。 问题原因 因为windows的换行格式和Linu...

  • mq

    一、mq的特性: 异步。上游无法直到下游的执行结果。这是mq无法取代直接调用最根本的原因。所以,很多人说mq削峰,...

  • 无法拒绝的原因

    打开蜗牛睡眠,吃下两片PM,伴随着选定的提琴曲和柴木燃烧的声音,我的呼吸越来越浅,陡然下坠的失重感,挑起我的反射弧...

  • 无法专注的原因

    记忆力减退、专注力下降、对新鲜事物兴致缺缺,这就是今年的我的常态。很难说从什么时候开始我对周围事物的认知开始慢慢变...

网友评论

      本文标题:windows+PHP+shell_exec()无法执行的原因

      本文链接:https://www.haomeiwen.com/subject/nmnlmctx.html