php-fpm服务的重启
# 直接通过命令行重启 PHP-FPM
# 1. 使用 kill
命令
如果您知道 PHP-FPM 的进程 ID(PID),可以使用 kill
命令结束进程并重新启动 PHP-FPM。
# 步骤:
查找 PHP-FPM 进程的 PID:
pgrep php-fpm
1使用
kill
命令结束 PHP-FPM 进程:sudo kill <PID> # 替换 <PID> 为实际的进程 ID
1重新启动 PHP-FPM-关键性操作找到php-fpm:
#后面的--fpm-config可以不用填写 /usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
1
2
# 2. 使用 pkill
命令
如果您希望通过进程名称结束所有 PHP-FPM 实例,可以使用 pkill
命令:
sudo pkill php-fpm
然后,重新启动 PHP-FPM,如下所示:
/usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
# 3. 使用自定义脚本
您可以创建一个简单的 shell 脚本来管理 PHP-FPM 的重启。这是一个简单的示例脚本:
#!/bin/bash
# 停止 PHP-FPM
pkill php-fpm
# 启动 PHP-FPM
/usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf
echo "PHP-FPM has been restarted."
2
3
4
5
6
7
8
9
将这个脚本保存为 restart_php_fpm.sh
,然后赋予执行权限:
chmod +x restart_php_fpm.sh
运行脚本来重启 PHP-FPM:
./restart_php_fpm.sh
# 4. 使用 supervisor
管理 PHP-FPM
如果您希望进一步简化进程管理,可以考虑使用 supervisor
。supervisor
是一个进程控制系统,允许您在守护进程中运行和管理进程。
# 安装 Supervisor
安装 supervisor
:
sudo apt install supervisor # Debian/Ubuntu
sudo yum install supervisor # Red Hat/CentOS
2
# 配置 Supervisor
创建配置文件,例如
/etc/supervisor/conf.d/php-fpm.conf
:[program:php-fpm] command=/usr/local/sbin/php-fpm --fpm-config /path/to/php-fpm.conf autostart=true autorestart=true stderr_logfile=/var/log/php-fpm.err.log stdout_logfile=/var/log/php-fpm.out.log
1
2
3
4
5
6更新
supervisor
配置并启动 PHP-FPM:sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start php-fpm
1
2
3您可以使用以下命令管理 PHP-FPM:
sudo supervisorctl restart php-fpm sudo supervisorctl status php-fpm
1
2
# 5. 创建自定义服务文件
如果您希望能够使用 systemctl
管理 PHP-FPM,您可以创建自定义的服务文件。以下是创建一个 systemd 服务文件的步骤:
创建服务文件,例如
/etc/systemd/system/php-fpm.service
:bash sudo nano /etc/systemd/system/php-fpm.service
1
2
3添加以下内容,替换为您实际的路径和配置文件:
[Unit] Description=PHP FastCGI Process Manager After=network.target [Service] Type=simple ExecStart=/www/server/php/81/sbin/php-fpm --fpm-config /www/server/php/81/etc/php-fpm.conf ExecStop=/usr/bin/pkill php-fpm Restart=on-failure [Install] WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12#真实的配置,--nodaemonize必须要加上不然启动不了 [Unit] Description=PHP FastCGI Process Manager # 描述服务的功能 After=network.target # 确保在网络可用后启动 [Service] Type=simple # 服务类型为简单模式 ExecStart=/www/server/php/81/sbin/php-fpm --nodaemonize # 启动 PHP-FPM 命令 ExecStop=/bin/sh -c 'pkill -f "php-fpm: master process (/www/server/php/81/etc/php-fpm.conf)"' # 停止服务的命令,单个版本:ExecStop=/usr/bin/pkill php-fpm Restart=on-failure # 当服务失败时自动重启 [Install] WantedBy=multi-user.target # 定义服务的目标
1
2
3
4
5
6
7
8
9
10
11
12
13保存并关闭文件。
重新加载 systemd 配置并启动服务:
bashsudo systemctl daemon-reload sudo systemctl start php-fpm sudo systemctl enable php-fpm
1
2
3现在您可以使用以下命令管理 PHP-FPM:
bashsudo systemctl restart php-fpm sudo systemctl status php-fpm
1
2
使用
kill
或pkill
命令:手动结束进程并重启 PHP-FPM。创建自定义脚本:自动化重启 PHP-FPM。
使用
supervisor
管理进程:实现自动重启和监控。# 6.php检查配置是否生效
如果你不确定 PHP-FPM 配置是否已经生效,可以通过以下方式验证:
查看 PHP 配置:
php -i | grep "Configuration File"
1确认正在加载正确的
php.ini
文件。检查 PHP 的设置:
php -i | grep <配置项名称>
1例如,查看
upload_max_filesize
是否生效:php -i | grep upload_max_filesize
1
通过这些方法,你可以确保 PHP-FPM 成功加载了新的
php.ini
配置。