当前位置:

首页 > 编程开发 > ubuntu上如何监控thinkphp应用的运行状态

ubuntu上如何监控thinkphp应用的运行状态

在Ubuntu上监控ThinkPHP应用的运行状态 将ThinkPHP应用部署到Ubuntu服务器后,如何确保它稳定运行、出了问题能第一时间知道?这离不开一套有效的监控机制。今天,我们就来聊聊几种在Ubuntu上监控ThinkPHP应用运行状态的实用方法,你可以根据项目复杂度和运维习惯来选择。 1.

在Ubuntu上监控ThinkPHP应用的运行状态

将ThinkPHP应用部署到Ubuntu服务器后,如何确保它稳定运行、出了问题能第一时间知道?这离不开一套有效的监控机制。今天,我们就来聊聊几种在Ubuntu上监控ThinkPHP应用运行状态的实用方法,你可以根据项目复杂度和运维习惯来选择。

ubuntu上如何监控thinkphp应用的运行状态

1. 使用Supervisor

首先登场的是Supervisor,一个在Linux运维圈里口碑极佳的进程控制系统。它的核心任务就是帮你管理那些需要以守护进程形式运行的应用,比如我们的ThinkPHP队列消费者或常驻CLI应用。一旦进程意外退出,它能自动帮你拉起来,省心不少。

安装Supervisor

安装过程非常直接,用Ubuntu的包管理器就能搞定:

sudo apt update
sudo apt install supervisor

配置Supervisor

安装好后,关键步骤是为你的ThinkPHP应用创建一个专属的配置文件。

sudo nano /etc/supervisor/conf.d/thinkphp.conf

接下来,把下面这段配置内容填进去。记得把其中的路径替换成你项目实际的路径:

[program:thinkphp]
command=/usr/bin/php /path/to/your/thinkphp/project run
directory=/path/to/your/thinkphp/project
autostart=true
autorestart=true
stderr_logfile=/var/log/thinkphp.err.log
stdout_logfile=/var/log/thinkphp.out.log

更新Supervisor配置并启动进程

配置文件写好,就得让Supervisor加载它并启动你的应用了。依次执行下面三条命令:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start thinkphp

监控进程状态

想看看你的应用进程跑得怎么样了?一条简单的状态查询命令就能一目了然:

sudo supervisorctl status

2. 使用Systemd

如果你的Ubuntu系统比较新(比如16.04之后),那么Systemd已经是默认的服务管理器了。用它来管理ThinkPHP应用作为系统服务,也是个非常正统且强大的选择,能很好地集成到系统的启动、停止流程中。

创建Systemd服务文件

第一步,是为应用创建一个服务单元文件:

sudo nano /etc/systemd/system/thinkphp.service

在文件中填入如下配置。这里有几个地方需要你特别注意并修改:your_user和your_group要换成运行应用的系统用户和组,ExecStart的路径也要指向你项目的正确位置。

[Unit]
Description=ThinkPHP Application
After=network.target

[Service]
User=your_user
Group=your_group
ExecStart=/usr/bin/php /path/to/your/thinkphp/project run
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

启用并启动服务

文件创建好后,让Systemd重新加载配置,然后设置开机自启并立即启动服务:

sudo systemctl daemon-reload
sudo systemctl enable thinkphp
sudo systemctl start thinkphp

监控服务状态

之后,任何时候想检查应用服务的运行状况,使用这个命令就对了:

sudo systemctl status thinkphp

3. 使用Monit

如果说Supervisor和Systemd侧重于进程管理,那么Monit就更像是一位全方位的“监控管家”。它不仅能监控进程是否存在,还能检查进程占用的资源、监听端口是否响应、甚至监控文件和目录的变化,功能相当全面。

安装Monit

同样,通过apt包管理器安装:

sudo apt update
sudo apt install monit

配置Monit

接下来是配置环节,编辑Monit的主配置文件:

sudo nano /etc/monit/monitrc

在文件中添加针对ThinkPHP应用的监控规则。下面是一个示例,它监控进程,并在HTTP服务不可达时自动重启,同时设置了防重启风暴的保护机制:

check process thinkphp with pidfile /path/to/your/thinkphp/project/runtime/pid
start program = "/usr/bin/php /path/to/your/thinkphp/project run"
stop program = "/usr/bin/php /path/to/your/thinkphp/project stop"
if failed host 127.0.0.1 port 80 protocol http then restart
if 5 restarts within 5 cycles then timeout

重新加载Monit配置并启动服务

配置生效并启动Monit服务:

sudo monit reload
sudo systemctl start monit

监控Monit状态

想查看Monit监控的所有项目状态?用这个命令:

sudo monit status

4. 使用Nginx和PHP-FPM

最后这种方法,适用于最常见的Web部署架构。如果你的ThinkPHP应用是通过Nginx + PHP-FPM对外提供服务的,那么监控好Nginx和PHP-FPM这两个“门面”和“引擎”,也就间接保障了应用的可用性。

安装Nginx和PHP-FPM

如果还没安装,先把这两个核心组件装上:

sudo apt update
sudo apt install nginx php-fpm

配置Nginx

接着,为你的域名或项目配置一个Nginx虚拟主机。编辑站点配置文件:

sudo nano /etc/nginx/sites-a vailable/your_domain

加入类似下面的配置块。重点是指定好项目根目录,以及将PHP请求正确转发给PHP-FPM处理:

server {
    listen 80;
    server_name your_domain;
    root /path/to/your/thinkphp/project;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}

启用Nginx配置并重启服务

创建符号链接启用配置,测试无误后重启Nginx:

sudo ln -s /etc/nginx/sites-a vailable/your_domain /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

监控Nginx和PHP-FPM状态

日常运维中,定期检查这两个核心服务的状态是基本功:

sudo systemctl status nginx
sudo systemctl status php7.4-fpm

好了,以上就是几种在Ubuntu上监控ThinkPHP应用的典型方法。从简单的进程守护Supervisor,到系统级的Systemd服务,再到功能丰富的Monit,以及基于Web服务组件的间接监控,它们各有侧重。实际选择时,不妨结合你的项目规模、团队技术栈和运维深度来决定,很多时候也可以组合使用,构建更稳固的防线。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Ubuntu
相关文章 更多
Ubuntu命令行入门:打开终端并验证文件目录操作
Ubuntu命令行入门:打开终端并验证文件目录操作

本教程指导Ubuntu新手打开终端,通过pwd、ls、cd、mkdir和touch命令完成基础文件目录操作。适用于桌面版、虚拟机及WSL环境,提供从查看路径到创建测试文件的完整验证步骤,帮助读者建立命令行操作的安全意识与正确习惯。

在VMware中安装Ubuntu并验证启动的完整步骤
在VMware中安装Ubuntu并验证启动的完整步骤

本文提供在VMware中安装Ubuntu并验证启动的完整流程。适用于首次练习Linux或搭建开发环境的用户。按步骤完成虚拟机创建、ISO挂载、硬件分配与安装后,可通过终端命令确认版本、内核与网络状态,确保系统可正常使用。

Ubuntu 26.04 将显著提升英伟达图形显卡在 Wayland 环境下的性能
Ubuntu 26.04 将显著提升英伟达图形显卡在 Wayland 环境下的性能

Ubuntu26.04LTS针对英伟达显卡在Wayland+GNOME环境进行性能调优,通过修改gbm_surface_lock_front_buffer函数,将帧渲染等待时间从毫秒级降至微秒级,显著提升UI响应和画面流畅度。该补丁已作为发行版专属补丁集成,确保LTS用户无需等待上游整合即可获得优化体验。

Ubuntu Touch 24.04-2.0 Beta 发布:适配索尼 Xperia X 等手机 提升上网体验
Ubuntu Touch 24.04-2.0 Beta 发布:适配索尼 Xperia X 等手机 提升上网体验

UbuntuTouch24.04-2.0Beta发布,底层升级至Ubuntu24.04,浏览器引擎从Chromium87跃升至134,网页兼容性显著提升;新增屏幕刘海区域自动适配、截图编辑器、网络指示器改进、移动数据可靠性增强、数据加密稳定,并新增NothingPhone(1)等设备支持。

Ubuntu如何查看系统防火墙规则
Ubuntu如何查看系统防火墙规则

ufw status仅显示高层策略和显式添加的规则(如“80 ALLOW Anywhere”),不反映默认策略绕过、IPv6独立规则、Docker等直写nftables的bypass规则,也无法体现本地回环流量不受管控等底层细节。Ubuntu 默认用 ufw 管理防火墙,但规则实际由 nftable

Ubuntu如何更换锁屏背景图片
Ubuntu如何更换锁屏背景图片

锁屏背景和桌面壁纸之所以不同,是因为GNOME默认会复制桌面壁纸,然后强制叠加高斯模糊和亮度调整效果,这个效果是由lockDialogGroup的CSS来控制的。要是想去除模糊,建议使用Control Blur Effect On Lock Screen扩展,把Adjust Sigma设置为0就行。

UbuntuSwapper在服务器上应用效果如何
UbuntuSwapper在服务器上应用效果如何

Ubuntu Swapper(一般就是指Ubuntu的交换分区或者交换文件)在服务器上的应用成效,是由多个因素共同决定的,像服务器的硬件配置情况、工作负载的类型以及交换空间的大小和具体配置等。下面为大家带来一些有关Ubuntu Swapper在服务器上应用效果的一般性评价:正面效果内存管理:交换空间

Ubuntu如何配置命令行模式下的中文支持
Ubuntu如何配置命令行模式下的中文支持

根本原因是纯命令行tty默认不支持UTF-8及中文字体渲染,locale设置仅影响字符解析逻辑,不解决字体绘制问题;图形终端自带UTF-8渲染,而tty需借助fbterm等工具实现中文显示。为什么终端里中文显示为问号或方块 纯命令行(tty,例如通过Ctrl+Alt+F3进入的界面)默认不会加载UT

如何通过Tomcat日志提升Ubuntu服务器性能
如何通过Tomcat日志提升Ubuntu服务器性能

通过分析Tomcat日志来提升Ubuntu服务器性能是一个很好的方法。以下是一些步骤和建议,帮助你通过Tomcat日志来优化服务器性能:1. 收集日志首先,得保证你的Tomcat服务器有详细的日志记录配置。在conf/logging.properties文件里,你可以对日志级别和输出格式进行调整。o

Ubuntu如何设置具体的命令行配色
Ubuntu如何设置具体的命令行配色

直接修改PS1是最为可控且轻量的方法。因为GNOME Terminal主题难以区分提示符、命令输入与输出,而PS1搭配ANSI转义码能够精准地为各个字段上色,并且需要用[ ]进行包裹,以防止光标出现错位的情况。直接改 PS1 是最可控、最轻量的方式,不需要装框架或改终端全局配色。 为什么不用改 GN

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
讯飞绘文 网页版
讯飞绘文 网页版
Windows

讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

AirServer Windows版
AirServer Windows版
Windows

AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

AlwaysUp Windows版
AlwaysUp Windows版
Windows

AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。