在 Ubuntu Server 上部署 Web 服务(Nginx + PHP + MySQL),版本选择的核心原则是:优先选用当前长期支持(LTS)版本,兼顾稳定性、安全更新周期和软件包生态兼容性。以下是详细建议与实操指南:
✅ 推荐版本(2024 年推荐)
| 版本 | 发布时间 | ESM 支持截止 | 说明 |
|---|---|---|---|
| Ubuntu 22.04 LTS | 2022.04 | 2032年4月(含5年免费LTS + 5年付费ESM) | ✅ 强烈推荐:稳定、主流、软件版本现代(Nginx 1.18+, PHP 8.1+, MySQL 8.0+),社区/文档/教程最丰富,Docker/Cloud 镜像支持完善。 |
| Ubuntu 20.04 LTS | 2020.04 | 2025年4月(免费LTS已结束,需订阅ESM) | ⚠️ 可用但不推荐新部署:PHP 7.4 已 EOL,MySQL 8.0 功能受限,安全更新需付费ESM。 |
❌ 避免非LTS版本(如 23.04、23.10、24.10):仅提供9个月支持,不适合生产环境;频繁升级风险高。
🔧 各组件在 Ubuntu 22.04 LTS 中的默认版本(开箱即用)
| 组件 | 默认版本 | 备注 |
|---|---|---|
| Nginx | 1.18.0(官方源)或 1.22.1(通过 nginx/stable PPA 或 apt install nginx-full) |
官方源足够生产使用;如需最新特性(如 QUIC),可添加 nginx.org 官方 APT 源 |
| PHP | 8.1(主版本,含 php-fpm、php-mysql、php-curl 等扩展) |
完全支持 Laravel、WordPress 等主流框架;可通过 ppa:ondrej/php 获取 8.2/8.3(谨慎评估兼容性) |
| MySQL | 8.0.33+(官方 mysql-server 包) |
默认启用强密码策略、InnoDB Cluster 支持;如需 MariaDB,可用 mariadb-server(更轻量,兼容性好) |
💡 提示:Ubuntu 22.04 的
php包已默认包含常用扩展(php-mysql,php-xml,php-gd,php-curl,php-mbstring),安装时勾选「LAMP server」或手动apt install nginx php-fpm php-mysql mysql-server即可快速搭建。
🛠 安装时关键操作建议
1. 下载镜像
- 去官网下载 Ubuntu Server 22.04 LTS ISO:
👉 https://ubuntu.com/download/server
(选择ubuntu-22.04.4-live-server-amd64.iso—— 最新版,含所有安全补丁)
2. 安装过程中
- 语言/区域/键盘:按需设置
- 网络配置:建议设为静态 IP 或 DHCP 固定分配(便于后续域名解析)
- 磁盘分区:
- 推荐
Guided - use entire disk and setup LVM(LVM 更易扩容) /分区 ≥ 20GB(Web 服务建议 ≥ 40GB)/var/www可单独挂载(便于备份/迁移)
- 推荐
- 软件选择:
✅ 务必勾选:OpenSSH server(远程管理必需)- ❌ 不要勾选
LAMP server(它会安装 Apache 而非 Nginx!)
→ 安装完成后手动安装 Nginx+PHP+MySQL(见下方命令)
3. 安装后快速部署命令(推荐)
# 1. 更新系统
sudo apt update && sudo apt upgrade -y
# 2. 安装 Nginx + PHP-FPM + MySQL
sudo apt install -y nginx php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip mysql-server
# 3. 启用并启动服务
sudo systemctl enable nginx php8.1-fpm mysql
sudo systemctl start nginx php8.1-fpm mysql
# 4. 配置 PHP-FPM(关键!确保 Unix socket 正确)
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
# 确认以下两行未被注释且匹配 Nginx 配置:
# listen = /run/php/php8.1-fpm.sock
# listen.owner = www-data
sudo systemctl restart php8.1-fpm
# 5. 配置 Nginx 站点(示例)
sudo nano /etc/nginx/sites-available/myapp
# → 配置 root /var/www/myapp; fastcgi_pass unix:/run/php/php8.1-fpm.sock;
sudo ln -sf /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
🌐 进阶建议(生产环境)
- ✅ 启用 UFW 防火墙:
sudo ufw allow OpenSSH && sudo ufw allow 'Nginx Full' && sudo ufw enable - ✅ MySQL 安全加固:
sudo mysql_secure_installation - ✅ PHP 安全调优(
/etc/php/8.1/fpm/php.ini):expose_php = Off display_errors = Off upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 - ✅ 启用 Let’s Encrypt HTTPS(使用 Certbot):
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com
❓常见疑问解答
Q:能用 Ubuntu 24.04 LTS 吗?
A:24.04 于 2024.04 发布,目前(2024年中)暂不推荐立即用于生产——虽为LTS,但新版本软件栈(PHP 8.3、MySQL 8.0.36)需更多验证,且部分第三方库(如某些 PHP 扩展)可能尚未适配。建议等待 24.04.1(2024年8月)发布后再评估。
Q:需要 MariaDB 还是 MySQL?
A:两者在 Ubuntu 22.04 均成熟稳定。
- 选 MySQL:若需 AWS RDS 兼容、JSON 文档存储、企业级特性(Audit Log, Firewall)。
- 选 MariaDB:若偏好更活跃开源社区、更小内存占用、或需兼容旧 MySQL 应用(
sudo apt install mariadb-server)。
Q:如何升级现有系统到 22.04?
A:仅支持从 20.04 → 22.04(需先 sudo do-release-upgrade -d),但强烈建议全新安装——避免配置残留风险,更安全可控。
✅ 总结一句话:
选择 Ubuntu Server 22.04 LTS(Jammy Jellyfish)镜像安装,跳过“LAMP server”选项,安装后手动执行
apt install nginx php-fpm php-mysql mysql-server,即可获得稳定、安全、现代化且长期受支持的 Web 服务基础环境。
如需我为你生成完整的自动化部署脚本(含 Nginx 配置模板、PHP 优化、MySQL 初始化等),欢迎随时告知! 🚀
CLOUD技术博