配置 php-fpm(FastCGI Process Manager for PHP)可以让你更好地管理 PHP 进程和优化性能。以下是一个基本的配置步骤指南:
首先,确保你已经安装了 PHP 和 php-fpm。你可以使用包管理器来安装它们。例如,在基于 Debian 的系统上:
sudo apt update
sudo apt install php-fpm
在基于 Red Hat 的系统上:
sudo yum install php-fpm
php-fpm 的配置文件通常位于 /etc/php/{version}/fpm/ 目录下,其中 {version} 是你安装的 PHP 版本号。主要的配置文件是 php-fpm.conf 和 www.conf。
php-fpm.confsudo nano /etc/php/{version}/fpm/php-fpm.conf
在这个文件中,你可以配置一些全局参数,例如:
pid: 指定 php-fpm 的 PID 文件路径。error_log: 指定错误日志文件路径。log_level: 设置日志级别。www.confsudo nano /etc/php/{version}/fpm/pool.d/www.conf
在这个文件中,你可以配置 PHP-FPM 的进程管理参数,例如:
listen: 指定监听的地址和端口,可以是 Unix socket 或 TCP socket。user 和 group: 指定运行 PHP-FPM 进程的用户和组。pm: 进程管理模式,可以是 dynamic、static 或 ondemand。pm.max_children: 最大子进程数。pm.start_servers: 启动时的服务器进程数。pm.min_spare_servers: 最小空闲服务器进程数。pm.max_spare_servers: 最大空闲服务器进程数。如果你使用 Nginx 或 Apache 作为 Web 服务器,你需要配置它们以使用 php-fpm 处理 PHP 请求。
编辑 Nginx 的站点配置文件,通常位于 /etc/nginx/sites-available/ 目录下:
sudo nano /etc/nginx/sites-available/default
添加或修改以下内容:
server {
listen 80;
server_name example.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/php{version}-fpm.sock; # 对于 Unix socket
# fastcgi_pass 127.0.0.1:9000; # 对于 TCP socket
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
编辑 Apache 的站点配置文件,通常位于 /etc/apache2/sites-available/ 目录下:
sudo nano /etc/apache2/sites-available/000-default.conf
添加或修改以下内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<FilesMatch \.php$>
SetHandler "proxy:fcgi://unix:/var/run/php/php{version}-fpm.sock" # 对于 Unix socket
# SetHandler "proxy:fcgi://127.0.0.1:9000" # 对于 TCP socket
</FilesMatch>
</VirtualHost>
完成配置后,重启 PHP-FPM 和 Web 服务器以应用更改。
sudo systemctl restart php{version}-fpm
对于 Nginx:
sudo systemctl restart nginx
对于 Apache:
sudo systemctl restart apache2
最后,验证你的配置是否正确。你可以创建一个 info.php 文件来测试 PHP 是否正常工作:
<?php
phpinfo();
?>
将这个文件放在你的 Web 服务器的根目录下,然后访问 http://your_server_ip/info.php,你应该能看到 PHP 的详细信息页面。
通过以上步骤,你应该能够成功配置 php-fpm 并使其与你的 Web 服务器协同工作。