• Linux+Nginx/Apache下的PHP exec函数执行Linux命令


    1、php.ini配置文件

    打开PHP的配置文件,里面有一行 disable_function 的值,此处记录了禁止运行的函数,在里面将exec和shell_exec、system等函数删除。

    2、权限问题

    修改以后PHP可以运行部分命令了,但是部分外部程序和命令仍然不能运行。使用sudo返回失败。

    运行:whoami 查看,Linux环境下php-fpm的运行角色是www。

    修改sudoers文件

    vi /etc/sudoers 

    将www添加到文件中

    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    

    下面:

    www ALL=(ALL) NOPASSWD:ALL

    然后找到 Default requiretty 这一行,将其注释掉

    # Default requiretty

    ps:意思是 sudo 默认需要tty终端,注释掉就可以在后台执行了。

    重启php-fpm、Nginx/Apache,这样PHP就可以在需要执行外部命令的时候使用sudo利用root的身份执行命令,而不会报错或者执行失败了。

  • 相关阅读:
    git操作
    致橡树
    python 3.8 下安装 tensorflow 1.14
    TensorFlow
    内容充实丰富,情节引人入胜夺人眼球,后面的转折更是点睛之笔
    注册,监听,回调....
    技术,制度,文化
    协议 标准, 框架 ,规范
    ES数据同步方案
    成立思维课
  • 原文地址:https://www.cnblogs.com/xi-jie/p/12968965.html
Copyright © 2020-2023  润新知