① 如何开启php日志功能
开启步骤如下:
1. 打开php.ini文件。
以ubuntu为例,这个文件在: /etc/php5/apache2 目录下为例。
2. 搜索并修改下行,把Off值改成On
display_errors = Off
3. 搜索下行
error_reporting = E_ALL & ~E_NOTICE
或者搜索:
error_reporting = E_ALL & ~E_DEPRECATED
修改为
error_reporting = E_ALL | E_STRICT
4. 修改Apache的 httpd.conf,
以Ubuntu 为例, 这个文件在:/etc/apache2/ 目录下,这是一个空白文件。
添加以下两行:
php_flag display_errors on
php_value error_reporting 2039
5. 重启Apache,就OK了。
重启命令: :sudo /etc/init.d/apache2 restart.
② PHP错误日志的时间与系统时间不一致,怎么解决
你修正只是php这样级别的时区,所以网页显示出来的时间跟你浏览器所在电脑时间是一致的(修正好了)。
但错误日志的运行一般是apache或者php-cgi,它们是直接调用操作系统的时间和时区的,所以写出来的日志时间有时差。依照你的描述,估计你用的是linux,试一下修正一下linux的时区一下就可以了。命令如下:
rm-f/etc/localtime
ln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
③ php如何输出500等服务器内部错误信息到页面。
500错误一般是权限问题。
国内的虚拟主机一般不支持ini_set, .htaccess。可以考虑合租服务器。
php 配置 (通过修改你的php管理软件进行配置):
-php里可以用ini_set来更改php设置
允许URL重写
-apache需要有mod_rewrite, 空间需要支持.htaccess
全局性PHP的注册选项关闭(推荐)
-也是PHP的设置,regist_global=off
.htaccess的编写可以在网上搜索一下,类似的例子很多的。
④ php能不能像java那样打印错误堆栈信息到错误日志
PHP 确实不会输出错误堆栈,但通过函数,还是能够获取到错误堆栈的。
function getBacktrace() {
ob_start();
debug_print_backtrace();
return ob_get_clean();
}
调用上面这个函数取得错误堆栈,再用 file_put_contents('log_path', FILE_APPEND); 写入日志文件即可。
还有一个办法:为 PHP 安装 xdebug 扩展
windows 下的安装方法 安装好后,修改 php.ini
⑤ php+nginx如何在浏览器输出错误日志
要想让php-fpm显示错误日志,首先需要配置php-fpm。
在php-fpm的配置文件中(一般位于php安装目录下的etc/php-fpm.conf)配置php错误日志的文件路径。
1
2
3
4
5
6
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /home/wangwei/php/var
; Default Value: log/php-fpm.log
;error_log = log/php-fpm.log
如上是我的php-fpm.conf文件中配置错误日志的地方。把error_log = log/php-fpm.log之前的;去掉,然后修改为:
1
2
3
4
5
6
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /home/wangwei/php/var
; Default Value: log/php-fpm.log
error_log = /home/work/log/php-fpm.log.wf
修改之后,保存配置,然后重启php-fpm就可以啦。
注意如果用相对路径的话,的路径的前缀是基于php安装目录的var目录的。
⑥ linux php错误日志在哪
由于nginx仅是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息。
nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog
原因:
php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。
解决nginx下php-fpm不记录php错误日志的办法:
1.修改php-fpm.conf中配置 没有则增加
2.修改php.ini中配置,没有则增加
3.重启php-fpm
⑦ 怎么让php打印错误日志
(1)使用echo ,简单输出
(2)使用print_r(),可以有规则的打印复杂结构
(3)var_mp递归输出某种结构体
(4)print(),简单打印
可以将你要输出的错误内容放到上述语句或函数内进行打印输出;也可以写入某个文件,作为你的Log日志:file_put_contents('/test1.txt',$value['value'],FILE_APPEND)等这类文件函数
以上是我自己工作中总结的PHP调试方法,挺好用的。
⑧ 怎么让php打印错误日志
要捕获错误的话,一般都要自己封装一下
代码示例:
<?php
//error handler function
function customError($errno, $errstr, $errfile, $errline)
{
echo "<b>Custom error:</b> [$errno] $errstr<br />";
echo " Error on line $errline in $errfile<br />";
echo "Ending Script";
die();
}
//set error handler
set_error_handler("customError");
$test=2;
//trigger error
if ($test>1)
{
trigger_error("A custom error has been triggered");
}
?>
输出:
Custom error: [1024] A custom error has been triggered
Error on line 19 in C:\webfolder\test.php
Ending Script
具体参考:http://www.w3school.com.cn/php/func_error_set_error_handler.asp
⑨ LNMP模式下如何开启PHP错误日志
500错误首先就需要先开启php错误日志,通过php错误日志来排错。
LNMP下的错误需要编辑 /usr/local/php/etc/php-fpm.conf 加上
php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log
php_admin_flag[log_errors] = on
或在/usr/local/php/etc/php-fpm.conf里设置,加上catch_workers_output
= yes,错误信息就会记录到php-fpm.conf里error_log设置的文件里。 上述两种方法都行,重启php-fpm生效
同理php.ini里的display_errors也是需要在php-fpm.conf里设置的,加上php_flag[display_errors]
= On就开启了。 有时可能错误日志文件不自动创建,可以执行:touch
/usr/local/php/var/log/php_errors.log
⑩ 如何查看php网站的错误信息和错误日志
设定错误消息级别
error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Proction Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
最好吧日志打开
log_errors
; Default Value: Off
; Development Value: On
; Proction Value: On