在 CentOS 系统中,要实现 LNMP(Linux, Nginx, MySQL, PHP)的自动重启,你可以使用以下方法:
首先,确保你已经为 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 服务将在系统启动时自动运行,并在出现故障时自动重启。
首先,确保你已经安装了 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 的自动重启。你可以根据自己的需求和喜好选择其中之一。