[英]Can't run bash script in PHP
我正在嘗試在PHP中運行bash腳本,但無法運行它。 的PHP -V
PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
Ubuntu 12.04 LTS 64位。
我的PHP代碼:
$cmd='/www/var/pl/bash.sh';
$retval =-1;
exec( $cmd, $output ); //executing the exec function.
foreach( $output as $tmp )
{
echo "$tmp <br>";
};
bash.sh:
#!/bin/bash
swipl --quiet -s /var/www/pl/ples.pl -g "f(R, gel), writeln(R),open('/var/www/pl/in.txt',write, Stream),
write(Stream, (R)),
nl(Stream),
close(Stream)" -t halt.
我究竟做錯了什么?
我可以在Linux終端中運行bash.sh。
在終端中運行腳本時,您將以登錄帳戶執行該腳本。 您有帶有搜索路徑等的shell設置。
當php執行腳本時,它沒有外殼程序設置,並以Web服務器用戶帳戶運行。 執行時:
swipl
是不夠的,它應該是/path/to/swipl
最有可能是路徑問題或權限問題。 例如,Web應用程序的運行用戶不知道swipl
程序在哪里。
在exec
之前將2>&1添加到命令行,以便告訴您問題所在。 或者,您也可以在Web服務器錯誤日志(或PHP錯誤日志;在php.ini中檢查其路徑和設置)中找到stderr輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.