【问题标题】:shell_exec not running for a particular code in phpshell_exec 未针对 php 中的特定代码运行
【发布时间】:2013-09-02 09:48:40
【问题描述】:

当我尝试将 *shell_exec(cmd)* 或 system(cmd) 用于 ping google.com 之类的命令时,它可以正常工作。

代码 1:将在 PHP 中工作

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

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

代码 2:在 PHP 中不起作用

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

两个命令

1.ping google.com

2.ec2-describe-addresses --region us-west-2

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

有人可以指导我如何在 PHP 中运行第二个命令吗?

PS:ec2-describe-addresses --region us-west-2 是一个 AWS EC2 命令,用于描述账户的弹性 IP 地址 http://aws.amazon.com/articles/Amazon-EC2/1346

【问题讨论】:

  • 如果您使用的是 PHP,则可以利用 PHP SDK。这里的问题是您可能在不同的用户帐户下运行 php,而该用户帐户没有必要的环境变量来使命令工作。

标签: php amazon-web-services amazon-ec2 cmd shell-exec


【解决方案1】:

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

第一步:打开httpd.conf

第 2 步:搜索用户/组

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

用户(您的默认用户名)

组(您的默认组名)

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

用户根

组根

第 4 步:重启 Apache

PS:不建议将 PHP 切换为 root 用户用于生产服务器。请仅在您确定这一点时更改此设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 2020-08-14
    • 1970-01-01
    • 2020-09-04
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多