我試圖從PHP
腳本執行簡單的Bash Script
。我收集來自HTML5
前端頁面數據,通過ajax
PHP腳本,把變量,然後,通過這些給.sh
劇本,但我已經得到了消息,如:無法從PHP執行Bash腳本
./test_bash.sh: line 13: ./test.txt: Permission denied
我試圖改變權限chmod 777 test_bash.sh
,試圖修改sudoers.d
文件,試過這個:shell_exec("echo password_for_the_user | sudo -S command_to_execute");
...但是Bash script
不能寫test.txt
文件。
這裏是我的基本代碼,首先PHP code
:
<?php
$var1 = json_decode($_POST['var1']); //from front-end html5
$var2 = json_decode($_POST['var2']);
$var3 = json_decode($_POST['var3']);
$response = shell_exec("./test_bash.sh $var1 $var2 $var3 2>&1");
echo "$response";
?>
其次,Bash
代碼:
#!/bin/bash
var1=$1;
var2=$2;
var3=$3;
echo "$var1";
echo "$var2";
echo "$var3";
echo $var1 $var2 $var3 > ./test.txt
如果你說'echo $ var1 $ var2 $ var3>/tmp/test.txt',它能工作嗎?看起來你不能在'test.txt'所在的目錄中寫入。 – fedorqui
是的,現在它工作。謝謝! – Sergi