本文目录导读:

PHP-PM(PHP Process Manager)是一个用于提升PHP应用性能的进程管理器,特别是针对PHP框架(如Laravel、Symfony等)的常驻内存运行。
安装 PHP-PM
系统要求
- PHP 7.0+
- Linux/Unix 系统(推荐)
- Composer
使用 Composer 安装
# 全局安装 composer global require php-pm/php-pm # 或项目内安装 composer require php-pm/php-pm
运行 PHP-PM
基本用法
# 运行 Laravel 应用 vendor/bin/ppm start --bootstrap=laravel public/index.php # 运行 Symfony 应用 vendor/bin/ppm start --bootstrap=symfony web/app.php # 使用不同端口 vendor/bin/ppm start --bootstrap=laravel --port=8080 public/index.php
常用参数
# 指定工作进程数(默认根据CPU核心数) vendor/bin/ppm start --bootstrap=laravel --workers=4 public/index.php # 以守护进程方式运行 vendor/bin/ppm start --bootstrap=laravel --daemonize public/index.php # 显示调试信息 vendor/bin/ppm start --bootstrap=laravel --debug public/index.php # 配置最大请求数(防止内存泄漏) vendor/bin/ppm start --bootstrap=laravel --max-requests=1000 public/index.php
配置文件方式
创建 ppm.json 配置文件:
{
"bridge": "php-pm/php-pm",
"workers": 4,
"bootstrap": "laravel",
"port": 8080,
"host": "0.0.0.0",
"max-requests": 1000,
"debug": false,
"daemonize": true,
"php-cgi": "/usr/bin/php-cgi"
}
然后使用配置文件运行:
vendor/bin/ppm start -c ppm.json
配合 Nginx 使用
配置 Nginx 反向代理到 PHP-PM:
server {
listen 80;
server_name example.com;
root /var/www/project/public;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 转发到 PHP-PM
proxy_pass http://127.0.0.1:8080;
}
}
性能优化建议
调整 worker 数量
# 根据CPU核心数设置(通常为核心数1-2倍) vendor/bin/ppm start --bootstrap=laravel --workers=8 public/index.php
使用静态文件缓存
# 启用静态文件缓存 vendor/bin/ppm start --bootstrap=laravel --static-cache public/index.php
调整内存限制
# 增加内存限制 vendor/bin/ppm start --bootstrap=laravel --memory-limit=512M public/index.php
会话管理
由于PHP-PM是常驻内存,建议:
- 使用 Redis 或 Memcached 存储会话
- 避免在本地变量中存储用户数据
- 清理全局变量和静态变量
监控和管理
查看进程状态
# 查看进程列表 ps aux | grep ppm # 查看端口占用 netstat -tlnp | grep 8080
停止 PHP-PM
# 停止所有 PHP-PM 进程 pkill -f "ppm start" # 或使用命令停止 vendor/bin/ppm stop
重启 PHP-PM
# 重启所有进程 pkill -HUP -f "ppm start"
注意事项
- 代码修改后需要重启:由于是常驻内存,修改代码后需要重启才能生效
- 内存泄漏监控:定期检查进程内存使用情况
- 兼容性测试:确保框架和依赖库兼容常驻内存模式
- 环境配置:生产环境建议使用 supervisor 或 systemd 管理
生产环境示例(Supervisor 配置)
[program:php-pm] command=/usr/local/bin/ppm start --bootstrap=laravel --workers=4 --port=8080 /var/www/project/public/index.php directory=/var/www/project autostart=true autorestart=true stderr_logfile=/var/log/ppm.err.log stdout_logfile=/var/log/ppm.out.log
通过合理配置 PHP-PM,可以显著提升 PHP 应用性能,通常能获得 2-5 倍的性能提升。