在Linux系统中搭建支持PHP的Nginx环境,是许多开发者构建Web应用的基础流程,本文将详细介绍从环境准备到服务配置的完整步骤,帮助读者顺利完成部署。

环境准备与依赖安装
在开始安装前,需确保系统已更新至最新状态,并安装必要的编译工具与依赖库,以Ubuntu/Debian系统为例,执行以下命令:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev
若为CentOS/RHEL系统,可使用yum或dnf替代apt,安装对应开发工具包(如gcc、pcre-devel、zlib-devel等),这些依赖是编译Nginx与PHP扩展的基础,缺一不可。
建议创建一个独立的系统用户(如www-data)用于运行Nginx与PHP服务,提升安全性:
sudo useradd -r -s /sbin/nologin www-data
Nginx的安装与配置
Nginx作为高性能Web服务器,可通过包管理器或源码编译安装,包管理器安装最便捷:
# Ubuntu/Debian sudo apt install -y nginx # CentOS/RHEL sudo yum install -y nginx
安装完成后,启动Nginx并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
通过浏览器访问服务器IP地址,若显示Nginx欢迎页面,则说明安装成功。
若需自定义编译Nginx(如添加特定模块),可从官网下载源码(如1.25.x版本),执行以下步骤:

wget http://nginx.org/download/nginx-1.25.3.tar.gz tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3 ./configure --prefix=/usr/local/nginx --user=www-data --group=www-data --with-http_ssl_module --with-http_gzip_static_module make && sudo make install
编译完成后,通过/usr/local/nginx/sbin/nginx启动服务,并配置systemd管理服务。
PHP的安装与FPM配置
PHP-FPM(FastCGI Process Manager)是Nginx与PHP交互的核心组件,需确保安装PHP及必要扩展,以Ubuntu 22.04安装PHP 8.1为例:
sudo apt install -y php8.1-fpm php8.1-mysql php8.1-gd php8.1-xml php8.1-curl php8.1-mbstring
CentOS系统需先添加EPEL源与Remi仓库,再安装对应版本的PHP-FPM及扩展。
安装完成后,检查PHP-FPM服务状态:
sudo systemctl status php8.1-fpm
若服务未启动,执行sudo systemctl start php8.1-fpm并设置开机自启。
PHP-FPM的配置文件位于/etc/php/8.1/fpm/pool.d/www.conf,默认监听0.0.1:9000,可根据需求调整进程管理方式(如pm = dynamic)、最大子进程数(pm.max_children)等参数,优化性能。
Nginx与PHP的协同配置
要让Nginx正确解析PHP文件,需修改其配置文件,默认配置文件位于/etc/nginx/sites-available/default,创建一个新的虚拟主机配置(如/etc/nginx/sites-available/php-site):

server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
配置中,root指定网站根目录(需创建并设置权限:sudo mkdir -p /var/www/html && sudo chown -R www-data:www-data /var/www/html),fastcgi_pass指向PHP-FPM监听的地址与端口。
启用配置并测试语法:
sudo ln -s /etc/nginx/sites-available/php-site /etc/nginx/sites-enabled/ sudo nginx -t
若提示syntax is ok,则重载Nginx配置:
sudo systemctl reload nginx
测试与优化
在网站根目录创建info.php为<?php phpinfo(); ?>,通过浏览器访问该文件,若显示PHP配置信息,则说明Nginx与PHP协同成功。
性能优化建议:
- PHP-FPM优化:根据服务器内存调整
pm.max_children(公式:可用内存÷每个进程占用内存,如8GB内存,每进程占用30MB,则约270)。 - Nginx优化:调整
worker_processes为CPU核心数,启用gzip压缩(在http块中添加gzip on; gzip_types text/plain application/json;)。 - 缓存配置:使用Nginx的
fastcgi_cache缓存PHP动态内容,减少服务器压力。
常见问题排查:
- 404错误:检查
fastcgi_param SCRIPT_FILENAME是否正确指向$document_root$fastcgi_script_name。 - 502错误:确认PHP-FPM服务是否运行,及
fastcgi_pass地址与端口是否匹配。 - 权限问题:确保网站目录所有者为
www-data,避免Nginx无法读取文件。
通过以上步骤,即可完成Linux系统中Nginx与PHP的安装与配置,后续可根据实际需求安装更多PHP扩展(如Redis、Memcached),或结合MySQL/MariaDB构建完整的Web应用环境。















