LNMP是Linux、Nginx、MySQL和PHP的缩写,它们一起构成了一个强大的Web应用平台。要设置LNMP自动重启,您可以使用以下方法:
对于现代的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
命令启用和启动它们。
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版本和配置修改command
和fpm-config
路径。保存文件后,运行以下命令重新加载Supervisor配置并启动所有进程:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
这样,当系统启动时,LNMP组件将自动重启。如果某个组件意外停止,Supervisor也会自动重启它。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: 在Linux架构中,文件系统是如何组织的