凌峰创科服务平台

Linux PHP网站如何高效部署?

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

Linux PHP网站如何高效部署?-图1
(图片来源网络,侵删)

目录

  1. 准备工作
  2. 第一步:安装 Nginx Web 服务器
  3. 第二步:安装 PHP 和 PHP-FPM
  4. 第三步:安装 MySQL/MariaDB 数据库
  5. 第四步:配置 Nginx 与 PHP-FPM 协同工作
  6. 第五步:部署你的第一个 PHP 网站
  7. 第六步:配置 HTTPS (SSL/TLS)
  8. 第七步:维护与进阶
  9. 总结与最佳实践

准备工作

在开始之前,你需要一台已经安装好 Linux 系统的服务器,推荐使用 Ubuntu 22.04/20.04CentOS 7/8/Stream,因为它们的社区支持最好,文档也最丰富。

通过 SSH 连接到你的服务器:

ssh your_username@your_server_ip

重要提示: 执行以下操作时,建议使用 root 用户或通过 sudo 提权。


第一步:安装 Nginx Web 服务器

Nginx 是一个高性能的 HTTP 和反向代理服务器。

Linux PHP网站如何高效部署?-图2
(图片来源网络,侵删)

对于 Ubuntu/Debian 系统

  1. 更新软件包列表

    sudo apt update
  2. 安装 Nginx

    sudo apt install nginx -y
  3. 启动并设置开机自启

    sudo systemctl start nginx
    sudo systemctl enable nginx
  4. 检查状态

    Linux PHP网站如何高效部署?-图3
    (图片来源网络,侵删)
    sudo systemctl status nginx
  5. 验证安装 在浏览器中访问你的服务器 IP 地址 http://your_server_ip,如果看到 "Welcome to nginx!" 页面,说明安装成功。

对于 CentOS/RHEL 系统

  1. 安装 EPEL 仓库 (如果尚未安装)

    sudo dnf install epel-release -y  # 对于 CentOS 8/Stream
    # 或者
    sudo yum install epel-release -y  # 对于 CentOS 7
  2. 安装 Nginx

    sudo dnf install nginx -y
  3. 启动并设置开机自启

    sudo systemctl start nginx
    sudo systemctl enable nginx

第二步:安装 PHP 和 PHP-FPM

PHP-FPM (FastCGI Process Manager) 是一个 PHP 的 FastCGI 实现,Nginx 可以通过它来处理 PHP 脚本。

对于 Ubuntu/Debian 系统

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

    sudo systemctl start php8.1-fpm
    sudo systemctl enable php8.1-fpm
  3. 检查 PHP-FPM 状态

    sudo systemctl status php8.1-fpm

对于 CentOS/RHEL 系统

  1. 安装 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
  2. 启用 Remi 的 PHP 8.1 模块

    sudo dnf module enable php:remi-8.1 -y
  3. 安装 PHP 和必要的扩展

    sudo dnf install php php-fpm php-mysqlnd php-mbstring php-xml php-gd php-curl -y

    注意:包名可能和 Ubuntu 略有不同,php8.1-fpm 变成了 php-fpm

  4. 启动并设置开机自启

    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 处理。

  1. 创建一个新的 Nginx 配置文件 我们将为你的网站创建一个独立的配置文件,而不是修改默认的 default 配置。

    sudo nano /etc/nginx/sites-available/your_project
    • your_project 替换为你的项目名称。
  2. 写入以下配置内容 这是一个非常标准的 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
    • fastcgi_param SCRIPT_FILENAME ...: 确保 PHP-FPM 能找到并执行正确的脚本文件。
  3. 启用配置文件 创建一个符号链接从 sites-availablesites-enabled

    sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
  4. 测试并重新加载 Nginx

    # 测试配置文件语法是否正确
    sudo nginx -t
    # 如果测试通过,重新加载 Nginx 使配置生效
    sudo systemctl reload nginx

第五步:部署你的第一个 PHP 网站

我们创建一个简单的 info.php 文件来测试环境是否配置成功。

  1. 创建网站根目录

    sudo mkdir -p /var/www/your_project
  2. **设置正确的权限

分享:
扫描分享到社交APP
上一篇
下一篇