[英]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.