无法从PHP执行Bash脚本
发布时间:2020-12-13 17:53:01 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试从 PHP脚本执行一个简单的Bash脚本.我从HTML5前端页面收集数据,通过ajax传递给PHP脚本,获取变量然后将这些变量传递给.sh脚本,但我有以下消息: ./test_bash.sh: line 13: ./test.txt: Permission denied 我试图更改权限chmod 777 test_bash.sh,试
我正在尝试从
PHP脚本执行一个简单的Bash脚本.我从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脚本无法编写test.txt文件. 这是我的基本代码,首先是PHP代码: <?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()并更改权限时要小心,很容易传递不需要的变量…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |