如何在Ubuntu上快速高效部署PHP项目,搭建一个高性能网站?

更新于
2026-08-09 12:54:53
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

快速高效部署PHP项目

1️⃣ 先把痛点列出来

  • 手动安装 LAMP/LNMP 步骤太多,容易遗漏。说起来,
  • 权限配置不当导致项目文件无法被 Web 服务器读取。
  • 默认的 MySQL 安装缺少安全设置,容易被暴力。
  • 没有统一脚本,后期维护成本高。
  • 性能调优缺失,页面加载慢。

2️⃣ 一键式自动化脚本

将下面内容保存为 /usr/local/bin/init.sh 并赋予可执行权限:

如何在Ubuntu上快速高效部署PHP项目,搭建一个高性能网站?
#!/usr/bin/env bash
set -e
# 1) 更新程序 & 安装基础工具
apt update && apt upgrade -y
apt install -y software-properties-common curl gnupg ca-certificates lsb-release
# 2) 添加 Ondřej Surý 的 PHP PPA 并安装 PHP 8.3 + 常用
add-apt-repository ppa:ondrej/php -y && apt update
apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-gd php8.3-curl \
php8.3-mbstring php8.3-xml
# 3) 安装 Nginx 并开启服务
apt install -y nginx && systemctl enable --now nginx
# 4) 安装并初始化 MySQL
apt install -y mariadb-server mariadb-client && systemctl enable --now mariadb
# 5) 对 MariaDB 做安全加固
mysql_secure_installation /dev/null
CREATE DATABASE IF NOT EXISTS my_project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'StrongPassword123!',GRANT ALL PRIVILEGES ON my_project.* TO 'my_user'@'localhost';FLUSH PRIVILEGES;EOF
# 7) 上传项目代码到 /var/www/html/my_project
mkdir -p /var/www/html/my_project && chown www-data:www-data /var/www/html/my_project
echo "部署完成!请自行上传项目代码并执行以下命令设置权限。"

运行脚本方式的观点是。

3️⃣ 手动部署步骤

a) 程序准备与更新

b) 安装 Nginx + PHP‑FPM

再看痛点,忘记开启 fastcgi 参数导致 .php 无法解析。

Nginx 配置示例:

⚠️ 注意:如果你使用的是 Apache,请确保已启用 mod_proxy_fcgi 并配置相应的虚拟主机。

再看错误排查,
  • Nginx 返回 “502 Bad Gateway” → 检查 PHP‑FPM 是否在运行:
  • Nginx 找不到 fastcgi socket → 确认 socket 方法正确。或改为 TCP:fastcgi_pass 127.0.0.1:9000;
  • .php 文件权限不足 → 设置 owner 为 www-data 且 group 可读写。

c) 安装 & 配置 MariaDB/MySQL

再看常见问题。 默认 root 密码为空,极易被攻击。请务必执行 mysql_secure_installation.

  1. 开启 root 密码:
  2. 创建业务数据库与使用者:
  3. 授予最小权限: 只给业务使用者访问其专属数据库的权利,避免越权操作。

d) 项目文件上传与权限设置

  • 使用 SCP 或 rsync 上传代码: sftp 或 git clone 到 /var/www/html/my_project;
  • 调整文件所有者与权限: // 所有者设为 www-data sudo chown -R www-data:www-data /var/www/html/my_project // 权限设置 sudo find /var/www/html/my_project -type f -exec chmod 644 {} \;sudo find /var/www/html/my_project -type d -exec chmod 755 {} \;
  • ⚠️ 常见错误:目录或文件属主不一致 → 浏览器报错 “Permission denied”。请确认所有目录均归属 www-data,而且可读写。

E️⃣ 启用 HTTPS – 提高安全性 & SEO 分数

  1. AWS Certbot 安装: wget https://dl.eff.org/certbot-auto && chmod +x certbot-auto && ./certbot-auto --nginx
  2. 获取证书并自动重载 Nginx: # certbot --nginx –d yourdomain.com –non-interactive –agree-tos –email
  3. Mistake Alert: No TLSv1_0 or TLSv1_1 enabled. 确保证书链完整,否则浏览器会报“HTTPS not secure”。可以通过编辑 `/etc/nginx/snippets/ssl.conf` 强制使用 TLSv1_2+。
    • `ssl_protocols TLSv1_2 TLSv1_3;`,`ssl_ciphers HIGH:!aNULL:,MD5`;`ssl_prefer_server_ciphers on`;其实,`add_header Strict-Transport-Security max-age=31536000 always;

      F️⃣ 性能调优小技巧

      • 缓存 – 使用 redismemcached 存储 session、热点数据;– 对静态资源开启 gzip 与 long‑term cache header。

       
      
      
      

      bash

      注: 上述示例仅作参考,实际生产环境请根据业务规模、访问峰值做进一步调优。

      如何在Ubuntu上快速高效部署PHP项目,搭建一个高性能网站?

      以上即为一份从零到上线的完整 Ubuntu + Nginx + PHP + MariaDB 的快速部署教程,同时标出了常见痛点及对应方法。祝你部署愉快 🚀,

标签:Ubuntu

快速高效部署PHP项目

1️⃣ 先把痛点列出来

  • 手动安装 LAMP/LNMP 步骤太多,容易遗漏。说起来,
  • 权限配置不当导致项目文件无法被 Web 服务器读取。
  • 默认的 MySQL 安装缺少安全设置,容易被暴力。
  • 没有统一脚本,后期维护成本高。
  • 性能调优缺失,页面加载慢。

2️⃣ 一键式自动化脚本

将下面内容保存为 /usr/local/bin/init.sh 并赋予可执行权限:

如何在Ubuntu上快速高效部署PHP项目,搭建一个高性能网站?
#!/usr/bin/env bash
set -e
# 1) 更新程序 & 安装基础工具
apt update && apt upgrade -y
apt install -y software-properties-common curl gnupg ca-certificates lsb-release
# 2) 添加 Ondřej Surý 的 PHP PPA 并安装 PHP 8.3 + 常用
add-apt-repository ppa:ondrej/php -y && apt update
apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-gd php8.3-curl \
php8.3-mbstring php8.3-xml
# 3) 安装 Nginx 并开启服务
apt install -y nginx && systemctl enable --now nginx
# 4) 安装并初始化 MySQL
apt install -y mariadb-server mariadb-client && systemctl enable --now mariadb
# 5) 对 MariaDB 做安全加固
mysql_secure_installation /dev/null
CREATE DATABASE IF NOT EXISTS my_project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'StrongPassword123!',GRANT ALL PRIVILEGES ON my_project.* TO 'my_user'@'localhost';FLUSH PRIVILEGES;EOF
# 7) 上传项目代码到 /var/www/html/my_project
mkdir -p /var/www/html/my_project && chown www-data:www-data /var/www/html/my_project
echo "部署完成!请自行上传项目代码并执行以下命令设置权限。"

运行脚本方式的观点是。

3️⃣ 手动部署步骤

a) 程序准备与更新

b) 安装 Nginx + PHP‑FPM

再看痛点,忘记开启 fastcgi 参数导致 .php 无法解析。

Nginx 配置示例:

⚠️ 注意:如果你使用的是 Apache,请确保已启用 mod_proxy_fcgi 并配置相应的虚拟主机。

再看错误排查,
  • Nginx 返回 “502 Bad Gateway” → 检查 PHP‑FPM 是否在运行:
  • Nginx 找不到 fastcgi socket → 确认 socket 方法正确。或改为 TCP:fastcgi_pass 127.0.0.1:9000;
  • .php 文件权限不足 → 设置 owner 为 www-data 且 group 可读写。

c) 安装 & 配置 MariaDB/MySQL

再看常见问题。 默认 root 密码为空,极易被攻击。请务必执行 mysql_secure_installation.

  1. 开启 root 密码:
  2. 创建业务数据库与使用者:
  3. 授予最小权限: 只给业务使用者访问其专属数据库的权利,避免越权操作。

d) 项目文件上传与权限设置

  • 使用 SCP 或 rsync 上传代码: sftp 或 git clone 到 /var/www/html/my_project;
  • 调整文件所有者与权限: // 所有者设为 www-data sudo chown -R www-data:www-data /var/www/html/my_project // 权限设置 sudo find /var/www/html/my_project -type f -exec chmod 644 {} \;sudo find /var/www/html/my_project -type d -exec chmod 755 {} \;
  • ⚠️ 常见错误:目录或文件属主不一致 → 浏览器报错 “Permission denied”。请确认所有目录均归属 www-data,而且可读写。

E️⃣ 启用 HTTPS – 提高安全性 & SEO 分数

  1. AWS Certbot 安装: wget https://dl.eff.org/certbot-auto && chmod +x certbot-auto && ./certbot-auto --nginx
  2. 获取证书并自动重载 Nginx: # certbot --nginx –d yourdomain.com –non-interactive –agree-tos –email
  3. Mistake Alert: No TLSv1_0 or TLSv1_1 enabled. 确保证书链完整,否则浏览器会报“HTTPS not secure”。可以通过编辑 `/etc/nginx/snippets/ssl.conf` 强制使用 TLSv1_2+。
    • `ssl_protocols TLSv1_2 TLSv1_3;`,`ssl_ciphers HIGH:!aNULL:,MD5`;`ssl_prefer_server_ciphers on`;其实,`add_header Strict-Transport-Security max-age=31536000 always;

      F️⃣ 性能调优小技巧

      • 缓存 – 使用 redismemcached 存储 session、热点数据;– 对静态资源开启 gzip 与 long‑term cache header。

       
      
      
      

      bash

      注: 上述示例仅作参考,实际生产环境请根据业务规模、访问峰值做进一步调优。

      如何在Ubuntu上快速高效部署PHP项目,搭建一个高性能网站?

      以上即为一份从零到上线的完整 Ubuntu + Nginx + PHP + MariaDB 的快速部署教程,同时标出了常见痛点及对应方法。祝你部署愉快 🚀,

标签:Ubuntu