Nginx/PHP-FPM exec另一个php脚本

问题描述:

这个工作,所以exec函数没有被禁用。Nginx/PHP-FPM exec另一个php脚本

exec('ls'); 

即使认为script.php具有777 chmod,这也行不通。

exec('php script.php'); 

这也行不通。

exec('php -v'); 

我试图chmod和chown/var/www /文件夹,但它没有帮助。 我想这是由于www数据用户权限,看起来像它不能访问多个bin文件。

我该如何解决这个问题?

+1

是在路径PHP?也许你需要做一些类似'/ usr/bin/php'或者它所在的位置 – 2013-03-20 18:48:11

+0

你为什么要用exec来执行php文件中的php脚本?为什么不使用'include'? – 2013-03-20 18:52:34

+0

是的,PHP位于路径:/ opt/php5/bin/php – 2013-03-20 18:53:42

尝试

which php 

,然后获取路径,并把它在执行exec()一样

exec("/opt/local/bin/php -v"); 
+0

它的工作原理!谢谢:)但是我不明白为什么它会这样工作? – 2013-03-20 18:57:25

+0

接受并upvote答案然后:) – Meabed 2013-03-20 18:57:59

+0

它没有工作,因为PHP可执行文件它没有添加到用户的路径,php-fpm运行或nginx :)这就是为什么你需要使用绝对路径 – Meabed 2013-03-20 18:58:48

尝试php -f script.php

我不是100%肯定这是正确的,但在传递文件时,我总是发送-f标志。

+0

-f 解析并执行。这已经是自我解释了! – Meabed 2013-03-20 19:01:33

+0

对不起,我没有阅读关于php -v不工作的部分。我只是回答'php script.php'部分。 – Applehat 2013-03-21 21:26:32