从PHP脚本获取Apache配置

时间:2011-07-20 09:30:21

标签: php apache

特别是我需要从PHP脚本知道ErrorLog Apache配置设置,以显示最新的致命错误。

PHP可以获得此类设置,还是需要手动传递日志路径?

4 个答案:

答案 0 :(得分:3)

PHP没有用于查找apache错误日志的内置命令。作为替代方案,您可以在apache配置中执行类似的操作。

ErrorLog /var/log/apache/error_log
SetEnv APACHE_ERROR_LOG /var/log/apache/error_log
PassEnv APACHE_ERROR_LOG

在你的PHP脚本中,$ _SERVER ['APACHE_ERROR_LOG']应该是你所要求的。

答案 1 :(得分:3)

获取Apache配置您可以设置mod_info模块。看看this。 您可以在链接http://localhost/server-info获得Apache配置。 Here实例。

<Location /server-info>
    SetHandler server-info
    AllowOverride All
    Order allow,deny
    Allow from all
</Location>

要在php中获取此信息,您可以使用:

<?php
    echo(file_get_contents('http://localhost/server-info'));
?>

答案 2 :(得分:2)

据我所知,Apache不会向PHP透露这些信息,即使它作为Apache模块运行。你有两种可能性:

  • 如果您控制服务器,则可以启用mod_info Apache模块。它生成一个如下所示的HTML页面:

    In file: C:/Archivos de programa/Apache Software Foundation/Apache2.2/conf/sitios.d/foo.conf
       4: <VirtualHost *:80>
       5:   ServerName foo
       7:   DocumentRoot "C:/Sites/Foo/htdocs"
       9:   ErrorLog logs/foo-error.log
      12:   <Directory "C:/Sites/Foo/htdocs">
      13:     AllowOverride All
      14:     Options Indexes FollowSymLinks
        :   </Directory>
        : </VirtualHost>
    

    当然,如果你控制服务器,你可以自己检查*.conf文件。

  • 您始终可以配置PHP将其错误发送到已知位置(我想这是最常用的方法)。您可以使用error_loglog_errors PHP指令。

答案 3 :(得分:1)

<?php
phpinfo();
?>

这将为您提供php配置的每个部分

我不确定你是否可以通过

获得apache配置