开发者

Store PHP error log file in the script directory without adding PHP code to existing scripts

开发者 https://www.devze.com 2023-03-08 17:02 出处:网络
I have been busy setting up my own VPS after being used to cPanel, but I can\'t seem to find out how to let PHP create a开发者_StackOverflow中文版n error_log file in the same directory as the script t

I have been busy setting up my own VPS after being used to cPanel, but I can't seem to find out how to let PHP create a开发者_StackOverflow中文版n error_log file in the same directory as the script that throws the errors.

I would like this to happen without me having to add a line of code to each .php file. In cPanel this works out of the box somehow.

Example:

Error in: /var/www/webapp1/index.php

Logfile location: /var/www/webapp1/error_log

Error in: /var/www/info/system/test.php

Logfile location: /var/www/info/system/error_log

Basically, I want PHP to store an error_log file in each directory for the scripts in that directory.

Additional information:

  • Single VPS account
  • Debian 6.0 (Squeeze) GNU/Linux
  • Apache 2.2.16


Set the error_log value to the name of the error log you want to appear in the directory, but do not put any slashes. The file will be saved in the directory from which the script is ran, so the same directory.

error_log = "php_error.log"


For this, there is the error_log directive in php.ini like:

error_log string

Where string represents the name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI.


Edit your php.ini file and uncomment the line with error_log:

error_log = php_errors.log

Save the changes, restart Apache, and be happy.

If you're using Linux, open a terminal and type this to restart:

sudo services apache2 restart

If you have access to WebHost Manager (WHM) you can search for SERVICES and then restart HTTPD or Apache.

If you're using EasyPHP or Vertrigo, you can do that through the program it self.


basically I want php to store an error_log file in each directory for the scripts in that directory

Assuming you're using Apache, you can use Apache's error_log directive in the VirtualHost to accomplish this behaviour. If memory serves me right, PHP itself doesn't decide where it stores its errors.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号