我试图Bash Script
从PHP
脚本执行一个简单的。我从HTML5
前端页面收集数据,传递ajax
给PHP脚本,获取变量,然后将它们传递给.sh
脚本,但是我得到如下消息:
./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
我相信您也必须更改txt文件的权限,以便apache(实际上正在执行脚本的用户)能够对其进行写入。
请注意,尽管在使用shell_exec()
和更改权限时很容易传递不需要的变量...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句