我对此感到疯狂......
我试图执行electron-pdf从PHP应用程序(使用Laravel)和PHP 7.0.23生成一些PDF。
当使用" php artisan serve"(使用php-cli)运行应用程序时,运行以下工作正常并生成我的PDF:
shell_exec("electron-pdf $inputURL $outputFile");
通过nginx(使用php-fpm)提供应用程序时,此命令不执行任何操作。
所以我去调试这个问题......
我试图运行shell_exec("node -v")
但是在php-fpm下它没有运行,所以我注意到php-fpm使用的PATH不是用户定义的PATH池,所以我已经定义了env[PATH]
变量,现在php-fpm看到了正确的路径,与php-cli使用的路径相同。
现在,如果我致电shell_exec("node -v")
,我会在cli和fpm中看到v8.4.0
。所以我觉得一切都很好!
然后我尝试了shell_exec("electron-pdf --version")
并且...它在cli上打印得很好但在fpm上什么也没做......
我该如何调试?发生了什么?怎么能以相同的路径运行同一个用户的php-cli和php-fpm有不同的行为?
非常感谢,如果您需要进一步的信息,我会相应地编辑问题,因为我没有足够的声誉来发表评论。
PS:chroot被禁用,安全模式关闭,shell_exec不在disable_functions中