带有 PHP 和自定义日志的 Apache Virtualhosts - 如何隔离 PHP 错误?

带有 PHP 和自定义日志的 Apache Virtualhosts - 如何隔离 PHP 错误?

我正在尝试在 Ubuntu 服务器上为我的应用程序设置一个简单的托管环境。

我创建了一个这样的虚拟主机:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /home/owner/example.com/docs
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/owner/example.com/docs/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /home/owner/example.com/logs/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /home/owner/example.com/logs/access.log combined

        php_flag log_errors on
        php_value error_log /home/owner/example.com/logs/php-error.log

</VirtualHost>

现在,我的问题是 PHP 错误和警告被抛出error.log- 而不是php-error.log我所希望的那样。

如何实现这一点?

答案1

确保 apache 用户除了有写入权限之外,还有权创建 /home/owner/example.com/logs/php-error.log 文件。

最有可能的是 /home/owner/example.com/logs/ 目录具有 755 权限,这将阻止 Apache 创建 php-error.log 文件。

相关内容