PHP网站监控需五步:一、用health.php检测脚本执行;二、配置PHP错误日志并轮转;三、用curl脚本探测HTTP响应时间;四、用systemctl监控PHP-FPM进程;五、添加MySQL连接校验。

如果您的PHP网站出现响应缓慢、页面无法加载或服务中断等情况,可能是由于服务器资源耗尽、脚本执行超时或数据库连接失败所致。以下是监控PHP网站运行状态的具体操作方法:
一、使用内置函数检测脚本执行状态
通过在关键PHP文件中嵌入轻量级健康检查逻辑,可实时反馈脚本是否正常进入执行流程。该方法不依赖外部工具,适用于所有PHP环境。
1、在网站根目录下创建一个名为health.php的独立文件。
2、在该文件中写入以下代码:。
立即学习“PHP免费学习笔记(深入)”;
3、通过curl命令定期请求该地址,例如:curl -f http://yourdomain.com/health.php。
4、若返回“OK”且HTTP状态码为200,则判定PHP解析层基本可用。
二、配置自定义错误日志并轮转监控
启用详细的PHP错误日志记录,能快速定位未捕获异常、致命错误及超时中断等运行问题。日志内容需确保可被自动化工具读取分析。
1、编辑php.ini文件,设置log_errors = On和error_log = /var/log/php/error.log。
2、确认Web服务器用户(如www-data或nginx)对目标日志路径具有写入权限。
3、使用tail命令持续观察日志更新:tail -f /var/log/php/error.log。
4、配合logrotate配置按日切分日志,防止单个文件过大影响grep检索效率。
三、部署轻量级HTTP响应时间探测脚本
借助shell脚本调用curl获取HTTP状态码与响应延迟,可脱离复杂监控系统实现基础可用性验证。
1、编写check_php.sh脚本,内容包含:curl -o /dev/null -s -w '%{http_code} %{time_total}\n' http://localhost/index.php。
2、赋予执行权限:chmod +x check_php.sh。
3、添加至crontab每2分钟执行一次:*/2 * * * * /path/to/check_php.sh >> /var/log/php/uptime.log 2>&1。
4、设定阈值告警:当time_total超过3秒或http_code非200时,向管理员邮箱发送通知。
四、利用systemctl监控PHP-FPM服务进程
PHP-FPM作为PHP的FastCGI管理器,其主进程存活状态直接决定网站能否接收动态请求。systemd提供了原生服务健康检查能力。
1、确认PHP-FPM服务名称,常见为php7.4-fpm或php8.1-fpm,可通过systemctl list-units | grep fpm查看。
2、执行systemctl is-active php8.1-fpm,返回active表示运行正常。
3、启用自动重启策略,在服务文件中添加:Restart=always和RestartSec=5。
4、使用systemctl status php8.1-fpm -l --no-pager查看最近10行日志输出,定位子进程崩溃原因。
五、添加MySQL连接连通性校验逻辑
多数PHP网站依赖数据库交互,单独监控Web层不足以反映真实可用性。必须验证PHP能否成功建立并维持数据库连接。
1、新建db_health.php文件,内容为:mysqli_connect('localhost', 'user', 'pass', 'dbname'); echo $link ? 'DB_OK' : 'DB_FAIL'; ?>。
2、确保mysqli扩展已启用:php -m | grep mysqli。
3、在浏览器或curl中访问该地址,若返回DB_OK则说明连接参数与权限配置正确。
4、将此脚本纳入前述HTTP探测脚本中,仅当Web层与DB层均返回成功才标记整体服务健康。











