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

httpd.conf<Location>中覆盖此设置似乎没有做任何事情。

有没有办法为每个虚拟主机分别设置php error_logs

===============>>#1 票数:138

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

<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

===============>>#2 票数:79 已采纳

要设置Apache而不是PHP )日志,最简单的方法是:

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

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

Apache错误日志页面

===============>>#3 票数:12

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

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

===============>>#4 票数:8

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

===============>>#5 票数:6

不要将error_log设置为syslog内容的位置, eg /var/log/apache2 ,因为它们的错误将被ErrorLog拦截。 相反,创建一个subdir的日志在项目文件夹并做php_value error_log "/path/to/project/logs" 这适用于.htaccess 文件和vhosts 还要确保你php_flag log_errors

===============>>#6 票数:5

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

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

或Apache将日志写入其error_log

===============>>#7 票数:5

是的,你可以试试,

php_value error_log "/var/log/php_log" 

.htaccess中,如果用户希望进行日志记录,则可以让用户在脚本的开头使用ini_set()

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

===============>>#8 票数:5

您是否尝试将php_value error_log '/path/to/php_error_log到您的VirtualHost配置?

===============>>#9 票数:4

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

===============>>#10 票数:3

你可以尝试:

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

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

===============>>#11 票数:1

创建简单的VirtualHost:

示例主机名: - thecontrolist.localhost

  1. C:\\ WINDOWS \\ SYSTEM32 \\ drivers \\ etc中

    127.0.0.1 thecontrolist.localhost hosts文件中的127.0.0.1 thecontrolist.localhost

  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. 不要忘记重启你的apache。 更多检查此链接

  ask by Michael Stum translate from so

未解决问题?本站智能推荐:

关注微信公众号