每个虚拟主机错误_日志? ?

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

httpd.conf<Location>中覆盖这个设置似乎没有任何作用。

是否有一种方法可以为每个虚拟主机单独设置 php error_logs

113574 次浏览

要设置 阿帕奇人(不是 PHP)日志,最简单的方法是:

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

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

Apache 错误日志页

Error _ log ()的默认行为是输出到 Apache 错误日志。如果没有发生这种情况,请检查 php.ini 设置中的 error _ log 指令。将其保留为未设置的状态,以使用当前 vhost 的 Apache 日志文件。

我通常只是指定在一个 .htaccess文件 或者vhost.conf的域,我的工作。把这个添加到其中一个文件中:

php_admin_value error_log "/var/www/vhosts/example.com/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>

尝试将 php_value error_log '/path/to/php_error_log添加到您的 VirtualHost 配置中。

你可以试试:

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

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

是的,你可以试试,

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

不要将 error_log设置为 syslog的位置 eg /var/log/apache2,因为它们的错误会被 ErrorLog拦截。相反,在您的 syslog0中为日志创建一个 subdir,并执行 php_valueerror_log "/path/to/project/logs"。这对 .htaccesssyslog1都适用。还要确保你把 php_flag log_errors

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

<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>

这是针对 development only的,因为 display_error是打开的。您将注意到 Apache 错误日志与 PHP 错误日志是分开的。好东西在 php.error.log里。

看看这里的 error_reportinghttp://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

创建简单的虚拟主机:

示例主机名:-thecontrolist.localhost

  1. C: WindowsSystem32驱动程序等

    127.0.0.1 thecontrolist.localhost in hosts file

  2. C: xampp apache conf 额外的 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. Don't Forget to restart Your apache. for more check this link