Hello! 欢迎来到小浪云!


LNMP如何设置自动重启


avatar
小浪云 2025-04-17 30

lnmp是linuxnginxmysqlphp的缩写,它们一起构成了一个强大的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 

对于mysqlphp-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版本和配置修改command和fpm-config路径。保存文件后,运行以下命令重新加载Supervisor配置并启动所有进程:

sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start all 

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

相关阅读