在一台运行 Apache 和 PHP 5 的 Linux 服务器上,我们有多个带有单独日志文件的虚拟主机。我们似乎无法分离 php error_log 虚拟主机之间。

覆盖此设置 <Location>httpd.conf 似乎什么也没做。

有没有办法有单独的php error_logs 对于每个虚拟主机?

有帮助吗?

解决方案

要设置 阿帕奇 (不是 PHP)日志,最简单的方法是执行以下操作:

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

如果没有前导“/”,则假定是相对的。

Apache 错误日志页面

其他提示

如果有人来看的话应该是这样的:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

这仅用于开发,因为 display_error 已打开。您会注意到 Apache 错误日志与 PHP 错误日志是分开的。好东西就在 php.error.log.

看看这里 error_reporting 钥匙 http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

我通常只是在 .htaccess 文件 或者vhost.conf 在我正在处理的域上。将其添加到以下文件之一:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

error_log() 的默认行为是输出到 Apache 错误日志。如果没有发生这种情况,请检查您的 php.ini 设置中的 error_log 指令 ​​- 将其保留为未设置以使用当前虚拟主机的 Apache 日志文件。

不设置 error_log 到你的地方 syslog 东西去, eg /var/log/apache2, ,因为它们的错误会被拦截 ErrorLog. 。相反,创建一个 subdir 在你的 项目文件夹 对于日志并做 php_value error_log "/path/to/project/logs". 。这对两者都适用 .htaccess 文件和虚拟主机. 。还要确保你把 php_flag log_errors

您是否尝试过添加 php_value error_log '/path/to/php_error_log 你的虚拟主机配置?

是的,你可以尝试,

php_value error_log "/var/log/php_log" 

.htaccess 或者你可以让用户使用 ini_set() 如果他们想要进行日志记录,请在脚本的开头添加。

另一种选择是使脚本默认为 php.ini 在包含脚本的文件夹中,然后转到用户/主机的根文件夹,然后转到服务器的根文件夹,或类似的东西。这将允许主机添加自己的 php.ini 价值观和自己的价值观 error_log 地点。

php_value error_log "/var/log/httpd/vhost_php_error_log"

它对我有用,但我必须更改日志文件的权限。

或者 Apache 会将日志写入其 error_log.

我的 Apache 在 httpd.conf 中有类似的东西。只需更改 ErrorLog 和 CustomLog 设置

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>

你可以尝试:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

但我不确定是否会起作用。我在我的网站上尝试过但没有成功。

创建简单的虚拟主机:

示例主机名:- thecontrolist.localhost

  1. C:\Windows\System32\drivers\etc

    127.0.0.1 thecontrolist.localhost 在主机文件中

  2. C:\xampp\apache\conf\extra\httpd-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. 不要忘记重新启动您的 apache。了解更多 查看 这个链接

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top