PHP-FPM(FastCGI Process Manager)和Nginx在Linux系统中协同工作,以提供高效的PHP网站和应用服务。以下是它们协同工作的基本步骤:
首先,你需要在你的Linux系统上安装PHP-FPM和Nginx。你可以使用包管理器来安装这些软件。
sudo apt update
sudo apt install nginx php-fpm
sudo yum install epel-release
sudo yum install nginx php-fpm
PHP-FPM的配置文件通常位于/etc/php/版本号/fpm/pool.d/www.conf。你需要确保PHP-FPM监听一个Unix套接字或TCP端口。
编辑/etc/php/版本号/fpm/pool.d/www.conf,找到并修改以下行:
listen = /run/php/php7.4-fpm.sock
确保权限正确:
sudo chown www-data:www-data /run/php/php7.4-fpm.sock
如果你选择使用TCP端口,修改以下行:
listen = 127.0.0.1:9000
Nginx需要配置一个server块来处理PHP请求,并将它们传递给PHP-FPM。
编辑Nginx配置文件,通常位于/etc/nginx/sites-available/默认或/etc/nginx/conf.d/default.conf:
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:/run/php/php7.4-fpm.sock; # 或者使用127.0.0.1:9000
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启动并启用Nginx和PHP-FPM服务:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
确保Nginx和PHP-FPM都在运行,并且配置正确。你可以通过访问你的网站来测试:
curl http://example.com
如果一切正常,你应该能够看到PHP脚本的输出。
通过以上步骤,你已经成功配置了Nginx和PHP-FPM在Linux系统中的协同工作。Nginx负责处理HTTP请求并将PHP请求传递给PHP-FPM,PHP-FPM则负责执行PHP脚本并返回结果。这种架构提供了高性能和可扩展性,适用于大多数现代Web应用。