无法从PHP执行Bash脚本

前端之家收集整理的这篇文章主要介绍了无法从PHP执行Bash脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从 PHP脚本执行一个简单的Bash脚本.我从HTML5前端页面收集数据,通过ajax传递给PHP脚本,获取变量然后将这些变量传递给.sh脚本,但我有以下消息:
  1. ./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代码

  1. <?PHP
  2. $var1 = json_decode($_POST['var1']); //from front-end html5
  3. $var2 = json_decode($_POST['var2']);
  4. $var3 = json_decode($_POST['var3']);
  5.  
  6. $response = shell_exec("./test_bash.sh $var1 $var2 $var3 2>&1");
  7.  
  8. echo "$response";
  9. ?>

其次,Bash代码

  1. #!/bin/bash
  2.  
  3. var1=$1;
  4. var2=$2;
  5. var3=$3;
  6.  
  7. echo "$var1";
  8. echo "$var2";
  9. echo "$var3";
  10.  
  11. echo $var1 $var2 $var3 > ./test.txt
我相信您还必须更改txt文件的权限,以便apache(实际执行脚本的用户)能够写入它.

但是在使用shell_exec()并更改权限时要小心,很容易传递不需要的变量……

猜你在找的PHP相关文章