最推荐、最安全的方法是使用 systemctl 命令(适用于 CentOS 7+, Debian 8+, Ubuntu 16.04+ 等现代 Linux 发行版)。

使用 systemctl (推荐)
这是目前最主流和推荐的方式,因为它能确保服务被正确地启动、停止和管理。
重启 Nginx
sudo systemctl restart nginx
或者,如果你想先停止再启动(效果相同,但命令不同):
sudo systemctl stop nginx sudo systemctl start nginx
重启 MySQL 或 MariaDB
根据你的服务器安装的是 MySQL 还是 MariaDB,选择对应的命令。
对于 MySQL:

sudo systemctl restart mysql
对于 MariaDB:
sudo systemctl restart mariadb
重启 PHP-FPM
PHP-FPM (FastCGI Process Manager) 是 PHP 在 LNMP 架构中最常用的运行方式。
对于 PHP 7.x 版本:
sudo systemctl restart php7.4-fpm # 请将 7.4 替换为你实际的 PHP 版本,如 php7.2, php7.3, php8.0, php8.1 等
对于 PHP 8.x 版本:

sudo systemctl restart php8.1-fpm # 请将 8.1 替换为你实际的 PHP 版本
提示: 如何查看我的 PHP 版本? 你可以使用命令
php -v查看,对应的php-fpm服务名通常是php[版本号]-fpm。
使用 service 命令 (旧版系统)
如果你的服务器是 CentOS 6 或更早版本,或者一些旧版的 Ubuntu/Debian,你可能需要使用 service 命令,它的作用和 systemctl 类似。
重启 Nginx
sudo service nginx restart
重启 MySQL 或 MariaDB
对于 MySQL:
sudo service mysql restart
或者 (在旧版系统上更常见):
sudo service mysqld restart
对于 MariaDB:
sudo service mariadb restart
重启 PHP-FPM
sudo service php7.4-fpm restart # 同样,替换为你的实际 PHP 版本
直接使用可执行文件 (不推荐)
这种方法直接调用组件的可执行文件,不经过系统服务管理器(如 systemd 或 SysVinit),不推荐使用,因为它可能导致进程管理混乱,无法在开机时自动启动。
重启 Nginx
Nginx 的配置文件修改后,通常只需要重新加载配置即可,这比完全重启服务更快且不影响连接。
# 重新加载配置(推荐) sudo nginx -s reload # 如果必须完全重启 sudo /etc/init.d/nginx restart # 在某些系统上
重启 MySQL
sudo /etc/init.d/mysql restart
重启 PHP-FPM
sudo /etc/init.d/php7.4-fpm restart
完整的一键重启脚本 (LNMP 全部重启)
如果你想一次性重启整个 LNMP 环境,可以创建一个简单的脚本,假设你的环境是 Nginx + MySQL + PHP 7.4。
#!/bin/bash echo "正在重启 Nginx..." sudo systemctl restart nginx echo "正在重启 MySQL..." sudo systemctl restart mysql echo "正在重启 PHP-FPM..." sudo systemctl restart php7.4-fpm echo "LNMP 服务已全部重启完成!"
如何使用这个脚本:
- 将上面的代码保存为一个文件,
restart_lnmp.sh。 - 给文件添加可执行权限:
chmod +x restart_lnmp.sh
- 执行脚本:
./restart_lnmp.sh
总结与建议
| 组件 | 推荐 (systemctl) | 兼容 (service) | 直接调用 |
|---|---|---|---|
| Nginx | sudo systemctl restart nginx |
sudo service nginx restart |
sudo nginx -s reload (首选) |
| MySQL | sudo systemctl restart mysql |
sudo service mysql restart |
sudo /etc/init.d/mysql restart |
| MariaDB | sudo systemctl restart mariadb |
sudo service mariadb restart |
sudo /etc/init.d/mariadb restart |
| PHP-FPM | sudo systemctl restart phpX.Y-fpm |
sudo service phpX.Y-fpm restart |
sudo /etc/init.d/phpX.Y-fpm restart |
最佳实践:
- 优先使用
systemctl,它是现代 Linux 系统的标准。 - 修改 Nginx 或 PHP 配置后,优先使用
nginx -s reload进行平滑重载,而不是完全重启。 - 在执行任何重启操作前,确认你的命令和服务名称是正确的,特别是 PHP 的版本号。
