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

centos搭建php网站
(图片来源网络,侵删)

第一步:环境准备与系统更新

在开始安装任何软件之前,确保你的系统是最新的,并且拥有正确的仓库源。

  1. 登录到你的 CentOS 服务器(建议使用 root 用户或具有 sudo 权限的用户)。

  2. 更新系统包

    sudo yum update -y
  3. 安装 EPEL 仓库: EPEL (Extra Packages for Enterprise Linux) 提供了许多 CentOS 官方仓库中没有的软件包。

    centos搭建php网站
    (图片来源网络,侵删)
    sudo yum install -y epel-release
  4. 安装一些基础工具: 这些工具在后续操作中会非常有用。

    sudo yum install -y wget curl vim git unzip

第二步:安装 Web 服务器 (Nginx)

Nginx 是一个高性能的 HTTP 和反向代理服务器,非常适合作为 PHP 网站的前端。

  1. 安装 Nginx

    sudo yum install -y nginx
  2. 启动 Nginx 并设置为开机自启

    centos搭建php网站
    (图片来源网络,侵删)
    sudo systemctl start nginx
    sudo systemctl enable nginx
  3. 检查 Nginx 状态

    sudo systemctl status nginx

    如果看到 active (running),说明 Nginx 已经成功运行。

  4. 配置防火墙: 为了能够从外部访问网站,需要允许 HTTP (80) 和 HTTPS (443) 端口。

    # 永久开放 80 和 443 端口
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    # 重新加载防火墙配置使其生效
    sudo firewall-cmd --reload
  5. 测试 Nginx: 在浏览器中输入你的服务器 IP 地址,你应该能看到 Nginx 的欢迎页面。

    # 查看服务器 IP
    ip addr

第三步:安装数据库服务器 (MySQL)

PHP 网站通常需要数据库来存储数据,如 WordPress、Magento 等都依赖 MySQL。

  1. 安装 MySQL (MariaDB): CentOS 7/8 默认使用 MariaDB,它是 MySQL 的一个分支,完全兼容。

    sudo yum install -y mariadb-server mariadb
  2. 启动 MariaDB 并设置为开机自启

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
  3. 运行安全脚本: 这个脚本能帮助你设置 root 密码、移除匿名用户、禁止远程 root 登录等,强烈建议运行。

    sudo mysql_secure_installation

    按照提示操作:

    • 输入当前 root 密码(默认为空,直接回车)。
    • 设置 root 密码 (Y)。
    • 移除匿名用户。
    • 禁止 root 远程登录 (推荐)。
    • 移除 test 数据库。
    • 重新加载权限表。

第四步:安装 PHP 及 PHP-FPM

这是核心步骤,我们需要安装 PHP 以及 PHP-FPM (FastCGI Process Manager),Nginx 通过它来处理 PHP 请求。

  1. 安装 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
  2. 启用 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 请求库。
  3. 启动 PHP-FPM 并设置为开机自启

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
  4. 检查 PHP-FPM 状态

    sudo systemctl status php-fpm

    确保状态为 active (running)


第五步:配置 Nginx 以支持 PHP

现在需要修改 Nginx 的配置文件,让它知道如何将 .php 文件请求交给 PHP-FPM 处理。

  1. 找到 Nginx 默认配置文件: 通常位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf,我们建议在 conf.d 目录下创建一个新的虚拟主机配置文件,这样更清晰。

  2. 创建一个新的网站配置文件: 假设你的域名是 example.com

    sudo vim /etc/nginx/conf.d/example.com.conf
  3. 粘贴以下配置内容

    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
  4. 测试并重新加载 Nginx 配置

    # 测试配置文件语法是否正确
    sudo nginx -t
    # 如果提示 syntax is ok 和 test is successful,则重新加载配置
    sudo systemctl reload nginx

第六步:部署你的 PHP 网站

我们以部署一个简单的 PHP 测试页面为例。

  1. 创建一个 PHP 测试文件

    sudo vim /usr/share/nginx/html/info.php

    (如果你的 root 目录不是 /usr/share/nginx/html,请使用你自己的路径)

  2. 写入 PHP 代码

    <?php
    phpinfo();
    ?>
  3. 设置文件所有者: 为了安全,建议将网站文件的所有者设置为 Nginx 运行时的用户(通常是 nginx)。

    sudo chown -R nginx:nginx /usr/share/nginx/html/
  4. 测试网站: 在浏览器中访问 http://你的服务器IP/info.phphttp://你的域名/info.php,你应该能看到一个详细的 PHP 信息页面。


第七步:后续管理与维护

  1. 安装 Composer (PHP 依赖管理工具): 如果你的项目使用 Composer,可以安装它。

    # 下载并运行安装脚本
    curl -sS https://getcomposer.org/installer | php
    # 将 composer.phar 移动到系统 PATH 中,以便全局使用
    sudo mv composer.phar /usr/local/bin/composer
  2. 部署一个真实项目 (如 WordPress)

    • 下载 WordPress 压缩包并解压到网站根目录。
    • 创建一个 MySQL 数据库和用户。
    • 访问你的域名,按照 WordPress 的安装向导进行操作。
  3. 配置 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 网站。

核心步骤回顾:

  1. 更新系统
  2. 安装 Nginx -> 配置防火墙。
  3. 安装 MariaDB -> 运行安全脚本。
  4. 安装 PHP-FPM -> 启动服务。
  5. 配置 Nginx -> 关联 PHP-FPM。
  6. 部署网站文件 -> 设置权限。
  7. 测试访问

如果你在后续操作中遇到问题,可以检查 /var/log/nginx/error.log/var/log/php-fpm/error.log 这两个日志文件,它们通常会提供详细的错误信息。