linux -虚拟主机的逻辑错误?

Translate

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

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

有没有办法有单独的PHPerror_logs每个虚拟主机?

This question and all comments follow the "Attribution Required."

所有的回答

Translate

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

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

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

Apache错误日志页面

来源
Translate

如果有人来看,它应该看起来像这样:

<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_reportinghttp://www.php.net/manual/zh-CN/errorfunc.configuration.php#ini.error-reporting

来源
Translate

我通常只在.htaccess文件orvhost.conf在我正在工作的域上。将此添加到以下文件之一:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
来源
Mat
Translate

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

来源
Translate

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

来源
Translate

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

来源
Translate

是的,您可以尝试,

php_value error_log "/var/log/php_log" 

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

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

来源
Venus Lee
Translate
php_value error_log "/var/log/httpd/vhost_php_error_log"

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

否则Apache会将日志写入其error_log.

来源
Translate

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

<VirtualHost myvhost:80>
    ServerAdmin [email protected]
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>
来源
David Lee
Translate

您可以尝试:

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

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

来源
Translate

创建简单的VirtualHost:

示例主机名:-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。更多检查这个连结

来源