centos

centos lnmp如何实现自动重启

小樊
32
2025-06-10 12:53:18
栏目: 智能运维

在 CentOS 系统中,要实现 LNMP(Linux, Nginx, MySQL, PHP)的自动重启,你可以使用以下方法:

  1. 使用 systemd 服务:

首先,确保你已经为 Nginx、MySQL 和 PHP-FPM 创建了 systemd 服务文件。这些文件通常位于 /etc/systemd/system/ 目录下。例如,你可能会有以下文件:

接下来,创建一个名为 lnmp.service 的 systemd 服务文件,将这三个服务添加到该文件中:

[Unit]
Description=LNMP Stack
After=network.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

然后,重新加载 systemd 配置:

sudo systemctl daemon-reload

接下来,启用并启动 LNMP 服务:

sudo systemctl enable lnmp.service
sudo systemctl start lnmp.service

现在,LNMP 服务将在系统启动时自动运行,并在出现故障时自动重启。

  1. 使用 Supervisor:

首先,确保你已经安装了 Supervisor:

sudo yum install epel-release
sudo yum install supervisor

接下来,创建一个名为 /etc/supervisord.d/lnmp.conf 的配置文件,将 Nginx、MySQL 和 PHP-FPM 添加到该文件中:

[program:nginx]
command=/usr/sbin/nginx
autostart=true
autorestart=true
stderr_logfile=/var/log/nginx.err.log
stdout_logfile=/var/log/nginx.out.log

[program:mysql]
command=/usr/sbin/mysqld_safe --user=mysql &
autostart=true
autorestart=true
stderr_logfile=/var/log/mysql.err.log
stdout_logfile=/var/log/mysql.out.log

[program:php-fpm]
command=/usr/sbin/php-fpm --nodaemonize --fpm-config /etc/php-fpm.d/www.conf
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm.err.log
stdout_logfile=/var/log/php-fpm.out.log

然后,重新加载 Supervisor 配置:

sudo supervisorctl reread
sudo supervisorctl update

现在,LNMP 服务将在 Supervisor 的管理下运行,并在出现故障时自动重启。

这两种方法都可以实现 LNMP 的自动重启。你可以根据自己的需求和喜好选择其中之一。

0
看了该问题的人还看了