温馨提示×

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

小樊
52
2025-09-26 07:58:35
栏目: 编程语言

在CentOS系统上,PHP-FPM(FastCGI Process Manager)和Nginx可以通过以下步骤协同工作,以提供高效的PHP处理能力:

  1. 安装Nginx和PHP-FPM: 首先,确保你的CentOS系统已经安装了Nginx和PHP-FPM。你可以使用以下命令来安装它们:

    sudo yum install epel-release
    sudo yum install nginx
    sudo yum install php-fpm php-mysqlnd
    
  2. 配置PHP-FPM: 编辑PHP-FPM的配置文件,通常位于/etc/php-fpm.d/www.conf/etc/php-fpm.conf。确保监听地址和端口设置正确,例如:

    listen = /run/php-fpm/www.sock
    listen.owner = nginx
    listen.group = nginx
    

    这里的listen.ownerlisten.group应该设置为Nginx运行的用户和组。

  3. 启动并启用PHP-FPM服务: 使用以下命令启动PHP-FPM服务,并设置开机自启:

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    
  4. 配置Nginx: 编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf。在server块中添加一个location块来处理PHP文件:

    server {
        listen 80;
        server_name example.com; # 替换为你的域名或IP地址
    
        root /var/www/html; # 替换为你的网站根目录
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm/www.sock; # 使用UNIX套接字
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    

    这里的fastcgi_pass指令指定了PHP-FPM的监听地址和端口。使用UNIX套接字通常比TCP/IP套接字更高效。

  5. 重启Nginx服务: 使用以下命令重启Nginx服务,以应用配置更改:

    sudo systemctl restart nginx
    
  6. 测试配置: 创建一个简单的PHP文件(例如info.php),并将其放置在网站根目录下,内容如下:

    <?php
    phpinfo();
    

    在浏览器中访问该文件(例如http://example.com/info.php),如果看到PHP信息页面,则说明Nginx和PHP-FPM已经成功协同工作。

通过以上步骤,你可以在CentOS系统上配置Nginx和PHP-FPM协同工作,提供高效的PHP处理能力。

0