温馨提示×

centos中php-fpm与nginx如何协同工作

小樊
38
2025-12-17 10:20:48
栏目: 编程语言

在CentOS系统中,PHP-FPM(FastCGI Process Manager)与Nginx协同工作的方式是通过FastCGI协议来处理PHP脚本。以下是它们协同工作的基本步骤:

  1. 安装Nginx和PHP-FPM

    • 使用Yum包管理器安装Nginx和PHP-FPM。
    sudo yum install nginx php-fpm
    
  2. 配置PHP-FPM

    • 编辑PHP-FPM的配置文件,通常位于/etc/php-fpm.d/www.conf/etc/php-fpm.conf
    • 确保监听地址和端口设置正确,例如使用Unix socket或TCP/IP端口。
    ; 使用Unix socket
    listen = /run/php-fpm/www.sock
    
    ; 或者使用TCP/IP端口
    ; listen = 127.0.0.1:9000
    
  3. 配置Nginx

    • 编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf
    • 在server块中添加location块来处理PHP请求。
    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$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php-fpm/www.sock; # 使用Unix socket
            ; 或者使用TCP/IP端口
            ; fastcgi_pass 127.0.0.1:9000;
    
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
  4. 启动和启用服务

    • 启动Nginx和PHP-FPM服务。
    sudo systemctl start nginx
    sudo systemctl start php-fpm
    
  5. 设置开机自启动

    • 设置Nginx和PHP-FPM服务开机自启动。
    sudo systemctl enable nginx
    sudo systemctl enable php-fpm
    
  6. 测试配置

    • 创建一个PHP文件(例如info.php)来测试配置是否正确。
    <?php
    phpinfo();
    ?>
    
    • 在浏览器中访问http://example.com/info.php,如果看到PHP信息页面,说明配置成功。

通过以上步骤,Nginx和PHP-FPM就可以协同工作来处理PHP请求了。Nginx负责接收HTTP请求并将PHP请求转发给PHP-FPM,PHP-FPM处理PHP脚本并将结果返回给Nginx,最后Nginx将结果发送给客户端。

0