题
在一台运行 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>
如果没有前导“/”,则假定是相对的。
其他提示
如果有人来看的话应该是这样的:
<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
C:\Windows\System32\drivers\etc
127.0.0.1 thecontrolist.localhost
在主机文件中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>
不要忘记重新启动您的 apache。了解更多 查看 这个链接