簡體   English   中英

php exec()在Linux服務器上無法正常工作

[英]php exec() does not work correctly on the Linux server

我嘗試運行函數exec()來執行另一個腳本php。 它可以在Windows上運行,但不能在Linux Server上運行。

視窗

$str = exec("start /B php test_file.php",$output);

Linux的

$str = exec("php test_file.php > /dev/null &",$output);

test_file.php

echo "Test work";

這兩個腳本都在同一文件夾中,當在Windows上運行時,我得到一個字符串為“ Test work”的數組,但是當我在Linux Server上運行Linux comand時,卻沒有

編輯

我嘗試更改命令,如@Robert sugest:

$str = exec("php test_file.php",$output);
echo $str;
var_dump($output);

但這返回了這個:

array(1147) { [0]=> string(24) "X-Powered-By: PHP/7.0.16" ...

確保您使用正確的路徑到您的php二進制文件和要執行的文件。

例:

exec('/path/to/php -f /path/to/file.php', $output);

此外,如果要向其傳遞參數,則可以將其添加到php文件之后,並從$argv數組中讀取它們。 PHP手冊$ argv

在您的情況下,您可以執行以下操作:

exec('/path/to/php -f /path/to/file.php param1 param2 param3', $output);

在您正在執行的php文件中,您可以執行

vardump($argv);

在我的示例中包含4個項目, $argv[0]是您正在執行的文件的名稱, $argv[1]具有param1的值,依此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM