Linux下安装php环境并配置Nginx支持php-fpm模块的方法

发布时间:2022-05-06 10:47:39 作者:iii
来源:亿速云 阅读:455
# Linux下安装php环境并配置Nginx支持php-fpm模块的方法

## 前言

在Linux服务器上搭建Web服务环境是开发者和运维人员的常见需求。Nginx作为高性能的Web服务器,配合PHP-FPM(FastCGI Process Manager)能够高效处理PHP动态内容。本文将详细介绍在主流Linux发行版(CentOS/Ubuntu)上安装PHP环境并配置Nginx支持PHP-FPM的完整流程。

---

## 一、环境准备

### 1.1 系统要求
- Linux服务器(本文以CentOS 7/8和Ubuntu 20.04为例)
- 已安装的Nginx服务(版本1.18+)
- sudo或root权限
- 稳定的网络连接

### 1.2 更新系统包
在开始前,建议先更新系统软件包:

```bash
# CentOS/RHEL
sudo yum update -y

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

二、安装PHP环境

2.1 安装PHP核心

CentOS/RHEL系统:

# 添加EPEL和Remi仓库(PHP 7.4为例)
sudo yum install -y epel-release
sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 安装PHP及常用扩展
sudo yum install -y php74 php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-mbstring

Ubuntu/Debian系统:

sudo apt install -y php-fpm php-mysql php-gd php-mbstring php-curl

2.2 验证PHP安装

php -v
# 应输出类似:PHP 7.4.3 (cli)...

三、配置PHP-FPM

3.1 基本配置

编辑PHP-FPM配置文件(路径可能不同):

# CentOS
sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf

# Ubuntu
sudo vi /etc/php/7.4/fpm/pool.d/www.conf

关键参数修改:

user = nginx
group = nginx
listen = /run/php-fpm/php-fpm.sock  # 或 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx

3.2 启动PHP-FPM服务

# CentOS
sudo systemctl start php74-php-fpm
sudo systemctl enable php74-php-fpm

# Ubuntu
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm

检查状态:

systemctl status php-fpm  # 根据实际服务名调整

四、Nginx配置支持PHP

4.1 基础Nginx配置

编辑站点配置文件(示例路径):

sudo vi /etc/nginx/conf.d/default.conf

添加PHP处理部分:

server {
    listen       80;
    server_name  your_domain.com;
    root         /var/www/html;

    location / {
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;  # 与PHP-FPM监听一致
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

4.2 测试配置并重载

sudo nginx -t  # 测试配置
sudo systemctl reload nginx

五、测试PHP解析

5.1 创建测试文件

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

5.2 访问测试页面

浏览器访问:

http://your_server_ip/info.php

应显示PHP信息页面,确认: - “Server API” 显示为 “FPM/FastCGI” - 所有需要的扩展(如mysqlnd、gd)已加载


六、安全加固

6.1 限制PHP文件执行

location ~* /uploads/.*\.php$ {
    deny all;
}

6.2 禁用危险函数

编辑php.ini

disable_functions = exec,passthru,shell_exec,system

6.3 文件权限控制

sudo chown -R nginx:nginx /var/www/html
sudo find /var/www/html -type f -exec chmod 644 {} \;
sudo find /var/www/html -type d -exec chmod 755 {} \;

七、常见问题解决

7.1 502 Bad Gateway错误

可能原因: 1. PHP-FPM未运行 → systemctl restart php-fpm 2. Socket权限问题 → 检查listen.owner/group 3. Nginx与PHP-FPM监听方式不匹配

7.2 PHP文件被下载而非执行

检查: - Nginx配置中fastcgi_param SCRIPT_FILENAME是否正确 - 文件扩展名是否为.php

7.3 扩展未加载

解决方案:

# CentOS
sudo yum install php74-php-{扩展名}

# Ubuntu
sudo apt install php-{扩展名}

八、性能优化建议

8.1 PHP-FPM进程管理

调整www.conf中的进程设置:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

8.2 OPcache加速

安装并启用:

sudo yum install php74-php-opcache  # CentOS
sudo apt install php-opcache       # Ubuntu

8.3 Nginx缓存配置

fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=PHP_CACHE:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

结语

通过以上步骤,我们完成了: 1. PHP环境的安装与基础配置 2. PHP-FPM服务的搭建与优化 3. Nginx与PHP-FPM的协同配置 4. 安全加固与性能调优建议

建议在生产环境中: - 定期更新软件包 - 监控PHP-FPM进程状态 - 根据实际流量调整配置参数

附录: - PHP官方文档 - Nginx官方文档 “`

注:实际字数约3500字,可根据需要扩展以下内容: 1. 具体版本差异说明(如PHP 8.x配置) 2. 多PHP版本共存方案 3. 详细的性能测试数据 4. 更复杂的安全配置示例

推荐阅读:
  1. nginx配置支持php-fpm的操作步骤
  2. Linux下安装nginx的实现方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux php nginx

上一篇:怎么在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

下一篇:Linux和Windows安装nginx的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》