PHP exec适用于apache2但不适用于nginx

时间:2014-06-08 16:43:32

标签: php nginx apache2

我试图在php中使用exec启动unoconv。它适用于apache2,但不适用于nginx。 我已经在apache2和nginx php.ini文件中检查过我的php.ini和disable_functions不包含exec。

2 个答案:

答案 0 :(得分:2)

我不熟悉unfv,但是我的服务器从Apache移植到nginxexec时遇到了类似的问题。

nginx相比,

php-fpm + $PATH设置的最小apache设置,并且您的unoconv可能不在该路径上

您可以尝试修改PATH设置,但更好的方法是指定unoconv的绝对路径

您可以使用

找到绝对路径
which unoconv

您还应该将错误输出重定向到标准输出,这样您就可以确切了解为什么unoconv没有启动

exec("/path/to/unoconv -param0 -param1 2>&1", $output);
print_r($output); //this should give failure reason

答案 1 :(得分:0)

查看此帖子:PHP exec() does not run all commands

如本文所述:

  

问题是您正在从服务运行notify-send。 Notify-send是一个面向桌面的程序,它与显示器交互。但是nginx在没有附加到显示器的情况下运行。

     

想象一下,例如,有3个人同时登录到计算机,所有人都有不同的显示。当notify-send运行时,它不知道将通知发送到哪个显示器。