【问题标题】:PHP exec() function to PING is not working for CpanelPING的PHP exec()函数不适用于Cpanel
【发布时间】:2023-04-09 10:51:01
【问题描述】:

我创建了一个应用程序来监控Network IPServer Status。它适用于 Windows xampp server,并且还在 linux centos 6.0 上进行了测试。两者都工作得很好。但是当我将脚本上传到安装了 cpanel 的网站并且我的脚本在那里不起作用时。那是一个linux托管服务器

我的 Windows Ping 命令:

$exec = exec( "ping www.google.com -n 3 ". $output, $status );

我的 Centos ping 命令:

$exec = exec( "ping www.google.com -c 3 ". $output, $status );

$output$status 变量都返回了准确的值。但在 cpanel 中,$output 为空白,$status 变量返回 2 而不是 0 或 1

需要帮助 谢谢,

【问题讨论】:

  • 将句点更改为逗号(在您的命令和$output 之间)。您没有收到错误,因为它是一个连接运算符(从技术上讲,这在语法上是正确的),但它也没有用数据填充变量......
  • 我试过把句号改成逗号,但结果是一样的
  • 很多提供cpanel类型服务的主机商不允许使用exec();您可能会验证情况并非如此。

标签: php centos exec cpanel ping


【解决方案1】:

如果是,请检查您的主机提供商是否允许使用此功能,所以 尝试像这样使用 exec:

$exec = exec( "ping www.google.com -c 3 ", $output, $status );

如果它不起作用,您可以尝试另一个 php 函数,例如 exec:

system('ping www.google.com -c 3 ', $output);

您可以使用 nagios 进行监控,并在 nagios 之上构建您的应用程序

【讨论】:

    【解决方案2】:
    1. 首先检查,您的托管服务提供商是否已使用给定的功能禁用了 exec 功能。此功能将列出您的托管服务提供商禁用的所有功能。

      function disabled_functions(){
        $disabled = explode(',', ini_get('disable_functions'));
        return $disabled;
      }
      echo '<pre>';
      print_r(disabled_functions());
      
    2. 如果上述 disabled_functions() 的输出中存在 exec,则您必须咨询您的托管服务提供商以允许 shell 访问和 exec。 由于安全问题,托管服务提供商通常会禁用 shell 访问和类似于 exec 的功能。

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多