代码之家  ›  专栏  ›  技术社区  ›  HackerNews

shell_exec没有为php中的特定代码运行

  •  2
  • HackerNews  · 技术社区  · 11 年前

    当我尝试使用*shell_exec(cmd)*或 系统(cmd) 对于像这样的命令 ping谷歌 那么它就能正常工作。

    代码1:将在PHP中工作

    <?php
    echo shell_exec(ping google.com)
    ?>
    

    但当我尝试执行以下代码时,它会返回一个空白页。

    代码2:在PHP中不起作用

    <?php
    echo shell_exec(ec2-describe-addresses --region us-west-2)
    ?>
    

    两个命令

    1.ping谷歌

    2.ec2-描述地址-美国西部地区-2

    在windows命令提示符下正常工作。

    有人能指导我如何用PHP运行第二个命令吗?

    附言: ec2描述地址--区域us-west-2 是AWS EC2命令 描述帐户的弹性IP地址 http://aws.amazon.com/articles/Amazon-EC2/1346

    1 回复  |  直到 11 年前
        1
  •  2
  •   HackerNews    11 年前

    问题是PHP不是以root用户的身份运行的,将用户更改为root用户实际上解决了这个问题。 对于那些想知道如何将PHP用户切换到ROOT的人。 只需按照以下步骤操作即可。

    步骤1: 打开httpd.conf

    第2步: 搜索用户/组

    步骤3: 在它下面你会发现

    用户(您的默认用户名)

    组(默认组名)

    将其更改为root,使您的文件如下所示:-

    用户root

    组根

    步骤4: 重新启动Apache

    附言:对于生产服务器,不建议将PHP切换为root用户。只有在您确信这一点的情况下,请更改此项。