包含phpshellexecsudo的词条
- 建站教程
- 2024-09-26 04:58:02
本文目录一览:
- 1、解析php中如何直接执行SHELL
- 2、我想用php执行shell语句:sudo curl --request POST --data-
- 3、LINUX+NGINX下的PHP shell_exec()函数执行linux命令 2024-08-08
解析php中如何直接执行SHELL
本篇文章是对php中直接执行SHELL的方法进行了详细的分析介绍,需要的朋友参考下 $message=shell_exec("sudo /usr/local/webserver/nginx/sbin/nginx -t 21"); echo "运行结果:".$message.""; 上面的语句可以直接在PHP中执行SHELL语句 如果有返回值 那么其中的 21 是必须的 他会重定向输出strerr 转到strout 输出!否则返回结果会为空!
我想用php执行shell语句:sudo curl --request POST --data-
PHP中有这种函数可以执行shell的函数,如system(), exec(), shell_exec()等等,给你个链接,你可以自己去看
至于curl ,
LINUX+NGINX下的PHP shell_exec()函数执行linux命令 2024-08-08
LINUX+NGINX下的PHP shell_exec()函数执行linux命令
环境说明
手头有一台linux的测试服务器,最近因为业务需要,需要通过php访问另一台服务器去执行某些命令。
由于另一台服务器已经对这台服务器开了私钥,所以在终端上是可以直接执行命令而不需要输入密码的。
问题
PHP无法使用exec命令,没有任何返回值。
解决途径
1.php.ini的配置有问题。
由于php是7.0以上的版本,取消了安全模式,所以考虑PHP.ini文件配置。
打开php配置文件,里面有一行disabel_function的值,此处记录了禁止运行的函数,在里面讲exec和shell_exec,system等函数删除。
2.权限问题
修改以后PHP可以运行部分命令了,但是部分外部程序和命令仍然不能运行。使用sudo返回失败。
于是运行“whoami”查看,环境下php-frm的运行角色是www。
于是修改sudoers文件。
vi /etc/sudoers
将www添加到
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
下面:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=(ALL) NOPASSWD:ALL
然后找到Default requiretty这一行,把他注释掉
# Default requiretty
ps:意思就是sudo默认需要tty终端,注释掉就可以在后台执行了.
重启nginx和php-fpm
service nginx restart
service php-fpm restart
这样,PHP就可以在需要执行外部命令的时候使用sudo利用root身份执行命令,而不会报错或者执行失败了!
包含phpshellexecsudo的词条由讯客互联建站教程栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“包含phpshellexecsudo的词条”