php - 如何阻止我的 PHP 错误日志文件无限增长?
问题描述
我的 PHP 错误日志在 Ubuntu 中占据了我的整个磁盘。查看内容我可以看到以下三行的循环:
[php7:warn] [pid 19943] [client 41.101.6.110:52722] PHP Warning: feof() expects parameter 1 to be resource, boolean given in /home/amine/app/pdf-download.php on line 33...
[php7:warn] [pid 19943] [client 41.101.6.110:52722] PHP Warning: filesize(): stat failed for /home/amine/app/file.pdf in /home/amine/app/pdf-download.php on line 34...
[php7:warn] [pid 19943] [client 41.101.6.110:52722] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /home/amine/app/pdf-download.php on line 34...
永远持续下去。
这样做的原因是网站的用户单击了一个按钮,该按钮将一些乳胶文档编译为 pdf 并下载 pdf。乳胶编译失败,因此 php 脚本似乎试图永远获取文件。
我已经修复了我的错误,但我担心另一个错误会使服务器无响应。
我将如何阻止这种问题?
谢谢。
解决方案
日志很重要。和大多数 Linux 发行版一样,Ubuntu 确实大多数现代操作系统都带有用于管理日志的工具。具体来说,您应该查看 logrotate(在终端会话中键入“man 5 logrotate.conf”)。实现的细节取决于您是在 Apache 中使用 mod_php 还是 php-fpm。
我相当确定 Ubuntu 附带了一个用于 php-fpm 的日志轮换脚本(它肯定有一个用于 Apache + mod_php),所以如果它没有自动归档你的日志,你的计算机上就会出现问题。
推荐阅读
- css - scss 使用插值和 `@at-root` 继续名称
- c# - 将流写入文件 - 文件损坏(.xls、.doc)
- unity3d - 如何检测移动刚体立方体和静态空物体之间的碰撞?
- pygame - builtins.AttributeError:“屏幕”对象没有属性“blit”
- python - Tkinter 自定义文本框类不能使用 def
- asp.net - 如何从 Select/Option 中获取值并插入到 href
- javascript - 为什么我得到 callBack 不是我的 React 代码中的函数
- javascript - file_system__WEBPACK_IMPORTED_MODULE_3__.readFileSync 不是函数
- javascript - Kendo Grid 客户端自定义过滤器
- html5-video - 没有音频的 MSE WebM 视频