2013-03-20 92 views
0

這個工作,所以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

回答

1

嘗試

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

-2

嘗試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