我们将使用目前最流行、性能最高的组合:Nginx + PHP-FPM + MySQL (LEMP Stack)。

第一步:环境准备与系统更新
在开始安装任何软件之前,确保你的系统是最新的,并且拥有正确的仓库源。
-
登录到你的 CentOS 服务器(建议使用
root用户或具有sudo权限的用户)。 -
更新系统包:
sudo yum update -y
-
安装 EPEL 仓库: EPEL (Extra Packages for Enterprise Linux) 提供了许多 CentOS 官方仓库中没有的软件包。
(图片来源网络,侵删)sudo yum install -y epel-release
-
安装一些基础工具: 这些工具在后续操作中会非常有用。
sudo yum install -y wget curl vim git unzip
第二步:安装 Web 服务器 (Nginx)
Nginx 是一个高性能的 HTTP 和反向代理服务器,非常适合作为 PHP 网站的前端。
-
安装 Nginx:
sudo yum install -y nginx
-
启动 Nginx 并设置为开机自启:
(图片来源网络,侵删)sudo systemctl start nginx sudo systemctl enable nginx
-
检查 Nginx 状态:
sudo systemctl status nginx
如果看到
active (running),说明 Nginx 已经成功运行。 -
配置防火墙: 为了能够从外部访问网站,需要允许 HTTP (80) 和 HTTPS (443) 端口。
# 永久开放 80 和 443 端口 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙配置使其生效 sudo firewall-cmd --reload
-
测试 Nginx: 在浏览器中输入你的服务器 IP 地址,你应该能看到 Nginx 的欢迎页面。
# 查看服务器 IP ip addr
第三步:安装数据库服务器 (MySQL)
PHP 网站通常需要数据库来存储数据,如 WordPress、Magento 等都依赖 MySQL。
-
安装 MySQL (MariaDB): CentOS 7/8 默认使用 MariaDB,它是 MySQL 的一个分支,完全兼容。
sudo yum install -y mariadb-server mariadb
-
启动 MariaDB 并设置为开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
-
运行安全脚本: 这个脚本能帮助你设置
root密码、移除匿名用户、禁止远程root登录等,强烈建议运行。sudo mysql_secure_installation
按照提示操作:
- 输入当前 root 密码(默认为空,直接回车)。
- 设置 root 密码 (Y)。
- 移除匿名用户。
- 禁止 root 远程登录 (推荐)。
- 移除 test 数据库。
- 重新加载权限表。
第四步:安装 PHP 及 PHP-FPM
这是核心步骤,我们需要安装 PHP 以及 PHP-FPM (FastCGI Process Manager),Nginx 通过它来处理 PHP 请求。
-
安装 EPEL 和 Remi 仓库: Remi 仓库提供了最新版本的 PHP。
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
-
启用 Remi 仓库并安装 PHP: 我们以安装 PHP 8.1 为例,你可以根据需要选择其他版本(如 PHP 7.4, 8.0)。
# 启用 PHP 8.1 仓库 sudo yum-config-manager --enable remi-php81 # 安装 PHP 8.1 及其常用扩展 sudo yum install -y php php-fpm php-cli php-mysqlnd php-gd php-xml php-mbstring php-json php-curl
php: 核心包。php-fpm: PHP-FPM 进程管理器。php-cli: 命令行 PHP 接口。php-mysqlnd: MySQL 数据库驱动。php-gd: 图像处理库。php-xml: XML 解析。php-mbstring: 多字节字符串处理。php-curl: HTTP 请求库。
-
启动 PHP-FPM 并设置为开机自启:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
-
检查 PHP-FPM 状态:
sudo systemctl status php-fpm
确保状态为
active (running)。
第五步:配置 Nginx 以支持 PHP
现在需要修改 Nginx 的配置文件,让它知道如何将 .php 文件请求交给 PHP-FPM 处理。
-
找到 Nginx 默认配置文件: 通常位于
/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,我们建议在conf.d目录下创建一个新的虚拟主机配置文件,这样更清晰。 -
创建一个新的网站配置文件: 假设你的域名是
example.com。sudo vim /etc/nginx/conf.d/example.com.conf
-
粘贴以下配置内容:
server { listen 80; server_name example.com www.example.com; # 替换成你的域名 root /usr/share/nginx/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; # PHP-FPM 默认监听 127.0.0.1:9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }server_name: 务必修改为你的域名或服务器 IP。root: 务必修改为你存放网站文件的目录。fastcgi_pass: 确保 PHP-FPM 的监听地址和端口正确,默认是0.0.1:9000。
-
测试并重新加载 Nginx 配置:
# 测试配置文件语法是否正确 sudo nginx -t # 如果提示 syntax is ok 和 test is successful,则重新加载配置 sudo systemctl reload nginx
第六步:部署你的 PHP 网站
我们以部署一个简单的 PHP 测试页面为例。
-
创建一个 PHP 测试文件:
sudo vim /usr/share/nginx/html/info.php
(如果你的
root目录不是/usr/share/nginx/html,请使用你自己的路径) -
写入 PHP 代码:
<?php phpinfo(); ?>
-
设置文件所有者: 为了安全,建议将网站文件的所有者设置为 Nginx 运行时的用户(通常是
nginx)。sudo chown -R nginx:nginx /usr/share/nginx/html/
-
测试网站: 在浏览器中访问
http://你的服务器IP/info.php或http://你的域名/info.php,你应该能看到一个详细的 PHP 信息页面。
第七步:后续管理与维护
-
安装 Composer (PHP 依赖管理工具): 如果你的项目使用 Composer,可以安装它。
# 下载并运行安装脚本 curl -sS https://getcomposer.org/installer | php # 将 composer.phar 移动到系统 PATH 中,以便全局使用 sudo mv composer.phar /usr/local/bin/composer
-
部署一个真实项目 (如 WordPress):
- 下载 WordPress 压缩包并解压到网站根目录。
- 创建一个 MySQL 数据库和用户。
- 访问你的域名,按照 WordPress 的安装向导进行操作。
-
配置 SSL (HTTPS): 为了网站安全,强烈建议配置 HTTPS,可以使用 Let's Encrypt 免费证书,配合
certbot工具可以非常方便地完成。# 安装 certbot sudo yum install -y certbot python2-certbot-nginx # 获取并安装证书 sudo certbot --nginx -d example.com -d www.example.com
Certbot 会自动修改你的 Nginx 配置,并设置证书自动续期。
恭喜!你已经成功在 CentOS 服务器上搭建了一个基础的 PHP 网站环境,这个环境(LEMP Stack)稳定、高效,足以支撑绝大多数中小型 PHP 网站。
核心步骤回顾:
- 更新系统。
- 安装 Nginx -> 配置防火墙。
- 安装 MariaDB -> 运行安全脚本。
- 安装 PHP-FPM -> 启动服务。
- 配置 Nginx -> 关联 PHP-FPM。
- 部署网站文件 -> 设置权限。
- 测试访问。
如果你在后续操作中遇到问题,可以检查 /var/log/nginx/error.log 和 /var/log/php-fpm/error.log 这两个日志文件,它们通常会提供详细的错误信息。
