【问题标题】:Getting Apache Version Using PHP Alternative使用 PHP 替代获取 Apache 版本
【发布时间】:2013-07-02 17:45:36
【问题描述】:

有没有其他方法可以在不使用以下代码的情况下获取我的 Apache 版本?

<?php echo $_SERVER['SERVER_SOFTWARE']; ?>

返回“阿帕奇”。

<?php echo apache_get_version(); ?>

返回“致命错误:调用未定义的函数 apache_get_version()”。

注意:我使用的是带有 PHP v5.3.1 的 Linux 服务器,任何通过 shell 使用 exec() 或 shell_exec() 的 linux-only 命令返回的内容都是可以接受的。我只想让它至少检测 Apache for Linux 的版本。

【问题讨论】:

  • exechttpd -v 或尝试 curl -I localhost 并解析它
  • 两个都试过了,但都没有返回任何东西。
  • 呃,鉴于 SERVER_SOFTWARE 环境变量,我之前的评论确实是一个愚蠢的问题。不过,php_sapi_name() 的输出可能会很有趣。
  • php_sapi_name() 的输出是“cgi-fcgi”。

标签: php linux apache


【解决方案1】:

你试过apache_get_version()吗?

【讨论】:

    【解决方案2】:

    你说使用 exec 没问题?

    exec("apache2 -v") 将给出类似于

    的输出
    Server version: Apache/2.2.16 (Debian)
    Server built:   Nov 30 2012 08:33:45
    

    使用你的第一个命令是最好的,只是让 apache 暴露自己更多一点

    http://httpd.apache.org/docs/2.2/mod/core.html#ServerTokens

    将 .htaccess 或 httpd.conf 文件更改为您想要的令牌

    【讨论】:

    • 它也没有返回任何东西。我也无法从 .htaccess 配置 ServerToken,也无法访问 httpd.conf 文件。
    • 注意:ServerTokens 只能在服务器配置 (httpd.conf) 中设置,不能在 .htaccess 中设置。
    猜你喜欢
    • 2019-06-25
    • 2016-02-23
    • 2016-06-18
    • 2021-09-21
    • 2013-04-12
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多