PHP shell_exec在CLI和FPM中的运行方式不同

时间:2017-09-22 17:22:30

标签: php nginx fpm

我对此感到疯狂......

我试图执行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中

0 个答案:

没有答案