我已将.htaccess
个文件配置为通过以下方式将PHP
个错误附加到日志文件中:
php_flag log_errors on
php_value error_log /home/user_id/public_html/PHP_errors.php
php_value error_reporting 6143
并且它在远程服务器(linux)中工作正常。但是上面的路径在本地服务器(windows)中不存在。我试过了:
php_value error_log ./PHP_errors.php
它在本地工作,但它在远程服务器中不起作用。
是否可以将上述说明限制在远程服务器上?类似的东西:
Condition %{http_host} ^example.com$
php_value error_log /home/user_id/public_html/PHP_errors.php
Condition %{http_host} ^localhost$
php_value error_log ./PHP_errors.php
(我无法访问远程服务器中的php.ini文件,但当然我可以在本地更改它)
答案 0 :(得分:1)
使用Apache 2.4,您可以使用此条件片段:
<If "%{HTTP_HOST} =~ m#^(www\.)?example\.com$#">
php_value error_log /home/user_id/public_html/PHP_errors.php
</If>
<If "%{HTTP_HOST} =~ m#localhost#">
php_value error_log ./PHP_errors.php
</If>
答案 1 :(得分:0)
您可以从PHP控制它。因此,您可以在PHP中创建一个包含在应用程序启动时的配置文件,并设置error_log()和error_reporting()。
然后,您可以根据您的环境(本地或远程)拥有此文件的多个版本,或者您可以检查$ _SERVER变量以设置正确的路径。
答案 2 :(得分:0)
这里有一个类似的问题,答案很好:https://stackoverflow.com/a/4139899/5550193
此外,您可能不希望为日志文件提供扩展名.php
,因为它会针对某些潜在漏洞进行打开。最好将其称为.log
或其他不具备由Apache发送给解释器的东西。