LNMP如何设置自动重启

298
2025/4/15 6:32:30
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

LNMP是Linux、Nginx、MySQL和PHP的缩写,它们一起构成了一个强大的Web应用平台。要设置LNMP自动重启,您可以使用以下方法:

  1. 使用systemd服务(推荐)

对于现代的Linux发行版,如Ubuntu 16.04及更高版本,建议使用systemd服务来管理LNMP组件。首先,为每个组件创建一个systemd服务文件。

以Nginx为例,创建一个名为/etc/systemd/system/nginx.service的文件,内容如下:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

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

[Install]
WantedBy=multi-user.target

保存文件后,运行以下命令启用并启动Nginx服务:

sudo systemctl enable nginx
sudo systemctl start nginx

对于MySQL和PHP-FPM,也可以创建类似的systemd服务文件,并使用systemctl命令启用和启动它们。

  1. 使用Supervisor

Supervisor是一个进程管理工具,可以用来管理和监控多个进程。首先,确保已安装Supervisor:

sudo apt-get install supervisor

接下来,创建一个名为/etc/supervisor/conf.d/lnmp.conf的文件,内容如下:

[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-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/pool.d/www.conf
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm.log
stdout_logfile=/var/log/php-fpm.out.log

请根据您的实际PHP版本和配置修改commandfpm-config路径。保存文件后,运行以下命令重新加载Supervisor配置并启动所有进程:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all

这样,当系统启动时,LNMP组件将自动重启。如果某个组件意外停止,Supervisor也会自动重启它。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 在Linux架构中,文件系统是如何组织的