Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP脚本获取Apache配置_Php_Apache - Fatal编程技术网

从PHP脚本获取Apache配置

从PHP脚本获取Apache配置,php,apache,Php,Apache,特别是我需要知道PHP脚本中的ErrorLogApache配置设置,以显示最新的致命错误 PHP可以获得这样的设置吗?或者我需要手动传递日志路径吗? <?php phpinfo(); ?> 这将为您提供php配置的每个部分 我不确定您是否可以获得apache配置,尽管PHP没有用于查找apache错误日志的内置命令。作为替代方案,您可以在apache配置中执行类似的操作 ErrorLog /var/log/apache/error_log SetEnv APACHE_ERROR_

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

PHP可以获得这样的设置吗?或者我需要手动传递日志路径吗?


<?php
phpinfo();
?>
这将为您提供php配置的每个部分


我不确定您是否可以获得apache配置,尽管PHP没有用于查找apache错误日志的内置命令。作为替代方案,您可以在apache配置中执行类似的操作

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

在您的PHP脚本中,$\u服务器['APACHE\u ERROR\u LOG']应该是您想要的。

要获得APACHE配置,您可以设置
mod\u info
模块。看看 您可以在以下链接获得Apache配置:。活生生的例子

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

SetHandler服务器信息
允许超越所有
命令允许,拒绝
通融
要在php中获取此信息,您可以使用:

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

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

  • 如果控制服务器,则可以启用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>
    
    文件:C:/Archivos de programa/Apache Software Foundation/Apache2.2/conf/sitios.d/foo.conf
    4: 
    5:ServerName foo
    7:DocumentRoot“C:/Sites/Foo/htdocs”
    9:ErrorLog日志/foo-error.log
    12:   
    13:允许超越所有
    14:选项索引跟随符号链接
    :   
    : 
    
    当然,如果您控制服务器,您可以自己检查
    *.conf
    文件

  • 您可以将PHP配置为将错误发送到已知位置(我认为这是最常见的方法)。您可以使用和PHP指令


未找到Apache日志路径。如果将PHP配置为在其自己的日志中写入日志,这将很简单。您可以使用ErrorLog指令设置任何文件。谢谢,这似乎是解决此问题的唯一方法。“live”示例()返回一个Not Found。但当我尝试行“PassEnv APACHE_ERROR_LOG”时,PassEnv变量APACHE_ERROR_LOG未定义调整设置SetEnv已工作,无需PassEnv,因为它在重新加载APACHE时会发出警告