在 Ubuntu 上使用 PHP-FPM(FastCGI Process Manager)可以显著提高 PHP 应用程序的性能和安全性。以下是详细的步骤指南,帮助你在 Ubuntu 系统上安装和配置 PHP-FPM。
首先,确保你的系统包列表是最新的:
sudo apt update
根据你的需求选择合适的 PHP 版本。以下示例以安装 PHP 8.2 为例:
sudo apt install php8.2 php8.2-fpm
如果你需要支持其他 PHP 扩展,可以使用 apt 安装相应的包。例如,安装常用的扩展:
sudo apt install php8.2-cli php8.2-mysql php8.2-curl php8.2-xml php8.2-gd php8.2-mbstring
注意:请根据实际需求选择需要的 PHP 扩展,并将
php8.2替换为你所需的 PHP 版本。
PHP-FPM 的配置文件通常位于 /etc/php/{版本号}/fpm/ 目录下。例如,对于 PHP 8.2:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
listen:指定 PHP-FPM 监听的地址和端口。常见的配置有:
unix:/var/run/php/php8.2-fpm.sock(使用 Unix 套接字)127.0.0.1:9000(使用 TCP/IP)user 和 group:指定运行 PHP-FPM 的用户和组,通常设置为 www-data。
pm:进程管理方式,常用选项有 dynamic、static、ondemand 等。
pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers:用于控制子进程的数量。
; Unix 用户/组设置
user = www-data
group = www-data
; 监听方式
listen = /var/run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
; 进程管理
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 35
; 日志设置
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php8.2-fpm.log
php_admin_flag[log_errors] = on
根据服务器的内存和应用程序的需求调整 pm.max_children 等参数。
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
检查 PHP-FPM 服务状态:
sudo systemctl status php8.2-fpm
如果你使用的是 Nginx,需要配置 Nginx 以使用 PHP-FPM 处理 PHP 请求。
如果尚未安装 Nginx:
sudo apt install nginx
编辑默认的 Nginx 站点配置文件:
sudo nano /etc/nginx/sites-available/default
添加或修改以下内容:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 或使用 127.0.0.1:9000
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t
如果没有错误,重新加载 Nginx:
sudo systemctl reload nginx
在网站根目录创建一个 info.php 文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问 http://your_domain.com/info.php,如果看到 PHP 信息页面,说明 PHP-FPM 已正确配置并运行。
安全提示:测试完成后,删除
info.php文件以防止潜在的安全风险:
sudo rm /var/www/html/info.php
编辑 php.ini 文件以调整 PHP 配置:
sudo nano /etc/php/8.2/cli/php.ini
修改以下参数:
memory_limit = 256M
max_execution_time = 300
根据需要调整这些值。
OPcache 可以提高 PHP 脚本的执行速度。确保在 php.ini 中启用了 OPcache:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
可以使用 systemd 的日志查看 PHP-FPM 状态:
sudo journalctl -u php8.2-fpm
或者使用监控工具如 supervisor 来管理 PHP-FPM 进程。
通过以上步骤,你已经在 Ubuntu 上成功安装并配置了 PHP-FPM。根据具体的应用需求,你可以进一步优化和调整 PHP 和 PHP-FPM 的配置,以获得最佳的性能和稳定性。
如果在配置过程中遇到问题,可以参考以下资源:
希望这些信息对你有所帮助!