在阿里云上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境,需从系统选型、安全加固、资源规划、网络配置等多方面进行基础系统配置。以下是关键的、推荐的基础系统配置要点(以主流 CentOS 7/8 或 Alibaba Cloud Linux / Ubuntu 20.04+ 为例):
✅ 一、实例与系统选择(前提)
- ECS 实例规格:建议 ≥2核4GB(轻量级网站),高并发需更高配置(如4核8GB+);
- 操作系统:
- 推荐:Alibaba Cloud Linux 3(阿里云深度优化、长期支持、兼容性好)或 Ubuntu 22.04 LTS(社区活跃、PHP生态友好);
- 兼容性注意:CentOS 7 已停止维护(2024-06),不建议新项目使用;CentOS 8 已停更,避免选用;
- 镜像来源:阿里云控制台选择「公共镜像」→ 官方发行版(非第三方或不明来源镜像)。
✅ 二、基础系统安全配置(必须执行)
| 配置项 | 推荐操作 | 说明 |
|---|---|---|
| SSH 安全加固 | ✅ 修改默认端口(如 Port 2222)✅ 禁用 root 远程登录( PermitRootLogin no)✅ 启用密钥认证,禁用密码登录( PasswordAuthentication no) |
防暴力破解,提升主机安全性 |
| 防火墙配置 | ✅ 启用 firewalld(CentOS/Alibaba Cloud Linux)或 ufw(Ubuntu)✅ 仅开放必要端口: • 80/tcp(HTTP)• 443/tcp(HTTPS,后续配SSL需开)• 2222/tcp(自定义SSH端口)• ❌ 关闭 3306 网络访问(MySQL仅限本地或内网连接) |
避免数据库暴露公网,降低攻击面 |
| SELinux(RHEL系) | ✅ 建议保持 enforcing 模式(增强安全)✅ 若Apache/PHP报权限错误,用 setsebool -P httpd_can_network_connect_db 1 等策略调整,不直接禁用 |
提升强制访问控制能力,禁用会削弱安全防护 |
| 系统更新 | ✅ 首次登录后立即执行:bashnsudo yum update -y # Alibaba Cloud Linux/CentOSn# 或nsudo apt update && sudo apt upgrade -y # Ubuntun |
修复已知漏洞,确保内核及基础组件安全 |
✅ 三、磁盘与存储规划
- 系统盘:≥40 GB(SSD云盘,保障I/O性能);
- 数据盘(可选但推荐):
- 单独挂载
/var/www(网站根目录)和/var/lib/mysql(数据库目录)到独立高效云盘; - 使用
xfs或ext4文件系统,挂载时添加noatime参数(减少小文件读取开销);
- 单独挂载
- 备份策略:启用阿里云云盘快照(每日自动快照) + 应用层备份(如 mysqldump + rsync 到 OSS)。
✅ 四、网络与域名基础
- 安全组规则(ECS 控制台配置):
- 入方向:只放行
80/443/2222(按需加监控端口如9000for PHP-FPM status); - 出方向:默认允许(或限制到可信源,如OSS、RDS内网地址);
- 入方向:只放行
- 私有网络(VPC):
- ECS 与 RDS(如选用云数据库)必须部署在同一 VPC 和可用区,通过内网互通(安全且低延迟);
- 域名与SSL(虽非“系统配置”,但属LAMP生产必备):
- 域名解析至ECS公网IP(或通过SLB/ALB负载均衡);
- 使用 阿里云免费SSL证书 + Let’s Encrypt(certbot) 自动部署 HTTPS(Apache/Nginx 配置 SSL)。
✅ 五、LAMP 组件安装前的依赖准备
# Alibaba Cloud Linux 3 / CentOS Stream 9 示例:
sudo dnf install -y epel-release dnf-utils
sudo dnf install -y gcc make autoconf automake libtool bzip2-devel curl-devel libxml2-devel openssl-devel sqlite-devel oniguruma-devel
# Ubuntu 22.04 示例:
sudo apt install -y build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libsqlite3-dev libonig-dev zlib1g-dev
⚠️ 注意:避免混用不同源(如同时启用 EPEL + Remi + 官方仓库),易引发包冲突;推荐使用 Remi 仓库(专为PHP优化)安装新版PHP(如8.1/8.2)。
✅ 六、其他生产就绪建议
- ✅ 时区与时间同步:
sudo timedatectl set-timezone Asia/Shanghai sudo systemctl enable chronyd && sudo systemctl start chronyd - ✅ 日志管理:
配置logrotate对/var/log/httpd/、/var/log/mysql/定期轮转压缩; - ✅ 监控告警:
安装阿里云 CloudMonitor Agent,监控CPU、内存、磁盘、网络;
或集成 Prometheus + Grafana(自建); - ✅ Web目录权限最小化:
sudo chown -R apache:apache /var/www/html # RHEL系 sudo chown -R www-data:www-data /var/www/html # Ubuntu sudo find /var/www/html -type f -exec chmod 644 {} ; sudo find /var/www/html -type d -exec chmod 755 {} ;
🚫 常见错误规避提醒
- ❌ 不要将 MySQL root 密码设为空或弱口令;
- ❌ 不要将网站代码放在
/root或用户家目录下(SELinux/权限问题); - ❌ 不要在生产环境使用
phpinfo()页面或未授权的 phpMyAdmin; - ❌ 不要跳过
mysql_secure_installation(MariaDB/MySQL 初始化安全脚本)。
如需,我可以为你提供:
🔹 一键部署脚本(Shell/Ansible)
🔹 Apache + PHP-FPM + MariaDB 详细配置示例(含HTTPS)
🔹 基于阿里云RDS替代本地MySQL的最佳实践
🔹 WordPress/Laravel 等应用的LAMP适配指南
欢迎继续提问! 😊
CDNK博客