0
執行我在PHP中有這樣的代碼:寫在bash文件,通過PHP
<?php
echo "<pre>doing..\n</pre>";
$output = shell_exec('./new.sh arg1 arg2');
echo "<pre>$output</pre>";
echo "<pre>done</pre>";
?>
即執行接收一些參數一個bash文件。 bash的文件是這樣的:
#!/bin/sh
echo "Hello World!" >> $1.txt
echo "File created!"
它不應該附加上稱爲「arg1.txt」的文件,因爲$1
是argument_1
新線。
當我執行shell通常它完美的作品,但是當我嘗試用PHP執行我得到這個HTML輸出:
doing..
File created!
done
這應該是正確的,但沒有文件已創建......爲什麼?
UPDATE_1
如果我在命令行中執行index.php
文件,它完美的作品,因此PHP沒有權限問題。可能它是Apache2的一個問題。但我不知道如何解決。
你在正確的地方看? ''output = shell_exec('pwd; ./new.sh arg1 arg2');'還應該顯示你創建的_where_。否則,它可能是一個權限問題。很難用這麼少的信息來分辨。 –
@gniourf_gniourf如預期的那樣說/ var/www/html,但沒有創建文件。 – Northumber
運行'php'的進程是否有權在其中寫入文件? –