我们将采用目前最主流、性能最高的组合:Nginx + PHP-FPM + MySQL。

目录
- 准备工作
- 第一步:安装 Nginx Web 服务器
- 第二步:安装 PHP 和 PHP-FPM
- 第三步:安装 MySQL/MariaDB 数据库
- 第四步:配置 Nginx 与 PHP-FPM 协同工作
- 第五步:部署你的第一个 PHP 网站
- 第六步:配置 HTTPS (SSL/TLS)
- 第七步:维护与进阶
- 总结与最佳实践
准备工作
在开始之前,你需要一台已经安装好 Linux 系统的服务器,推荐使用 Ubuntu 22.04/20.04 或 CentOS 7/8/Stream,因为它们的社区支持最好,文档也最丰富。
通过 SSH 连接到你的服务器:
ssh your_username@your_server_ip
重要提示: 执行以下操作时,建议使用 root 用户或通过 sudo 提权。
第一步:安装 Nginx Web 服务器
Nginx 是一个高性能的 HTTP 和反向代理服务器。

对于 Ubuntu/Debian 系统
-
更新软件包列表
sudo apt update
-
安装 Nginx
sudo apt install nginx -y
-
启动并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
-
检查状态
(图片来源网络,侵删)sudo systemctl status nginx
-
验证安装 在浏览器中访问你的服务器 IP 地址
http://your_server_ip,如果看到 "Welcome to nginx!" 页面,说明安装成功。
对于 CentOS/RHEL 系统
-
安装 EPEL 仓库 (如果尚未安装)
sudo dnf install epel-release -y # 对于 CentOS 8/Stream # 或者 sudo yum install epel-release -y # 对于 CentOS 7
-
安装 Nginx
sudo dnf install nginx -y
-
启动并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
第二步:安装 PHP 和 PHP-FPM
PHP-FPM (FastCGI Process Manager) 是一个 PHP 的 FastCGI 实现,Nginx 可以通过它来处理 PHP 脚本。
对于 Ubuntu/Debian 系统
-
安装 PHP 和必要的扩展 你可以根据你的项目需求安装不同的扩展,这里以安装 PHP 8.1 和一些常用扩展为例。
sudo apt install php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl -y
php8.1-fpm: 核心。php8.1-mysql: 用于连接 MySQL 数据库。php8.1-mbstring: 处理多字节字符串。php8.1-xml: 处理 XML。php8.1-gd: 用于图像处理。php8.1-curl: 用于 HTTP 请求。
-
启动并设置开机自启
sudo systemctl start php8.1-fpm sudo systemctl enable php8.1-fpm
-
检查 PHP-FPM 状态
sudo systemctl status php8.1-fpm
对于 CentOS/RHEL 系统
-
安装 EPEL 和 Remi 仓库 Remi 仓库提供了最新版本的 PHP。
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
-
启用 Remi 的 PHP 8.1 模块
sudo dnf module enable php:remi-8.1 -y
-
安装 PHP 和必要的扩展
sudo dnf install php php-fpm php-mysqlnd php-mbstring php-xml php-gd php-curl -y
注意:包名可能和 Ubuntu 略有不同,
php8.1-fpm变成了php-fpm。 -
启动并设置开机自启
sudo systemctl start php-fpm sudo systemctl enable php-fpm
第三步:安装 MySQL/MariaDB 数据库
大多数 PHP 应用(如 WordPress, Drupal)都需要一个数据库。
对于 Ubuntu/Debian 系统
我们使用 MariaDB,它是 MySQL 的一个流行分支。
sudo apt install mariadb-server mariadb-client -y sudo systemctl start mariadb sudo systemctl enable mariadb
对于 CentOS/RHEL 系统
sudo dnf install mariadb-server mariadb -y sudo systemctl start mariadb sudo systemctl enable mariadb
安全配置
运行安全脚本,它会帮你设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
根据提示操作,建议对所有问题都回答 "Y" (Yes)。
第四步:配置 Nginx 与 PHP-FPM 协同工作
我们需要告诉 Nginx 如何处理 .php 文件,并将其交给 PHP-FPM 处理。
-
创建一个新的 Nginx 配置文件 我们将为你的网站创建一个独立的配置文件,而不是修改默认的
default配置。sudo nano /etc/nginx/sites-available/your_project
- 将
your_project替换为你的项目名称。
- 将
-
写入以下配置内容 这是一个非常标准的 Nginx + PHP-FPM 配置模板。
server { listen 80; server_name your_domain.com www.your_domain.com; # 替换为你的域名或 IP root /var/www/your_project; # 替换为你的网站根目录 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # 这里是关键,指向 PHP-FPM 的监听地址 fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Ubuntu/Debian 路径 # CentOS/RHEL 路径通常是: fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location ~ /\.ht { deny all; } }关键点解释:
root: 指定网站的文件存放目录。server_name: 绑定你的域名。fastcgi_pass: 这是最重要的部分,它指向 PHP-FPM 的 "socket" 文件。- Ubuntu/Debian: 路径通常是
/run/php/php<version>-fpm.sock(php8.1-fpm.sock),你可以用ls /run/php/查看。 - CentOS/RHEL: 路径通常是
/var/run/php-fpm/php-fpm.sock。
- Ubuntu/Debian: 路径通常是
fastcgi_param SCRIPT_FILENAME ...: 确保 PHP-FPM 能找到并执行正确的脚本文件。
-
启用配置文件 创建一个符号链接从
sites-available到sites-enabled。sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
-
测试并重新加载 Nginx
# 测试配置文件语法是否正确 sudo nginx -t # 如果测试通过,重新加载 Nginx 使配置生效 sudo systemctl reload nginx
第五步:部署你的第一个 PHP 网站
我们创建一个简单的 info.php 文件来测试环境是否配置成功。
-
创建网站根目录
sudo mkdir -p /var/www/your_project
-
**设置正确的权限
