php生产环境 用 php://stdout 进行 安全 高效 调试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangrui_fslib_org/article/details/49681607

本文原地址: http://blog.csdn.net/zhangrui_fslib_org/article/details/49681607

转载请注明出处,有疑问或错误请发邮件到zhangrui@fslib.org


延伸阅读:php-fpm 生产环境 调试信息 日志系统 设计 支持 thinkphp   http://blog.csdn.net/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






展开阅读全文

没有更多推荐了,返回首页