本文原地址: http://blog.youkuaiyun.com/zhangrui_fslib_org/article/details/49681607
转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org
延伸阅读:php-fpm 生产环境 调试信息 日志系统 设计 支持 thinkphp http://blog.youkuaiyun.com/zhangrui_fslib_org/article/details/50487174
在开发时调试php的方法多样.而对于生产环境调试即要考虑性能也要考虑安全,以下列举出常见的方式及说明弊端:
1,写日志,用fopen打开一个文件,写日志,这个方法简单高效,但对多用户同时访问时,会用竞争问题,而且消耗磁盘io,文件大小也不易控制;
2,写数据库,此方法解决了竞争问题问题,但增加了数据库的负担;
我在看php新版本的新功能时,从5.6版本后内置支持php://stdout,这是一个内存对象,而且输出直接打印在服务器命令行,用户完全无法察觉;
以下是我的测试代码
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
<?php
echo "Hello World!";
$fd = fopen('php://stdout', 'w');
if ($fd) {
fwrite($fd, "7777888");
fwrite($fd, "\n");
fclose($fd);
}
?>
</body>
</html>
我用管道捕捉php-cgi的输出,刷新多次,结果如下
7777888
7777888
7777888
7777888
7777888