在阿里云上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境,需从系统基础配置入手,确保稳定性、安全性与性能。以下是关键的基础系统配置建议(以主流 CentOS 7/8 或 Alibaba Cloud Linux 3 / Ubuntu 22.04 LTS 为例):
一、实例选择与初始化配置
-
ECS 实例规格
- 推荐:2核4GB 起(轻量级网站),高并发或数据库混合部署建议分离(如 Web 和 DB 分开)
- 系统镜像:优先选用 Alibaba Cloud Linux 3(兼容 RHEL 8/CentOS 8) 或 Ubuntu 22.04 LTS(长期支持、安全更新及时)
-
安全组配置(必须!)
- 开放必要端口(最小化原则):
80/tcp(HTTP)443/tcp(HTTPS,后续配置 SSL 时启用)22/tcp(SSH,强烈建议修改默认端口 + 绑定白名单 IP)- ❌ 禁止开放
3306(MySQL)公网端口;如需远程管理,通过跳板机、SSH隧道或DMS控制台访问 - 可选:
8080(调试)、9000(PHP-FPM 管理端口,仅内网)
- 开放必要端口(最小化原则):
-
密钥对登录(替代密码)
- 创建并绑定 SSH 密钥对,禁用 root 密码登录(
PermitRootLogin no) - 创建普通用户(如
wwwadmin),授予sudo权限(usermod -aG wheel wwwadmin)
- 创建并绑定 SSH 密钥对,禁用 root 密码登录(
二、系统级基础优化配置
| 配置项 | 推荐操作 | 说明 |
|---|---|---|
| SELinux | setenforce 1 + sestatus 确认为 enforcing(推荐)或临时设为 permissive(调试期) |
提升安全隔离;LAMP 各组件需正确 SELinux 策略(如 httpd_can_network_connect_db on) |
| 防火墙(firewalld/ufw) | 启用并仅放行必要服务:firewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=httpsfirewall-cmd --reload |
替代或补充安全组,实现双层防护 |
| 时区与时间同步 | timedatectl set-timezone Asia/Shanghaitimedatectl set-ntp true(启用 chronyd) |
防止日志/证书/会话时间异常 |
| 系统更新 | yum update -y(CentOS/Alinux)或 apt update && apt upgrade -y(Ubuntu) |
安装最新内核与安全补丁 |
| 字符集与语言 | localectl set-locale LANG=en_US.UTF-8 |
避免 PHP/MySQL 中文乱码(后续需同步配置 MySQL 的 utf8mb4) |
三、LAMP 各组件基础配置要点(简要提示)
| 组件 | 关键基础配置 | 注意事项 |
|---|---|---|
| Apache | • 启用 mod_rewrite(URL 重写)• 设置 ServerName localhost(避免启动警告)• 日志路径统一(如 /var/log/httpd/)• 禁用目录浏览: Options -Indexes |
生产环境建议关闭 ServerSignature Off & ServerTokens Prod |
| MySQL/MariaDB | • 初始化安全脚本:mysql_secure_installation• 修改 root 密码 + 删除匿名用户 + 禁用远程 root • 字符集强制 utf8mb4(my.cnf 中 [mysqld] default-character-set = utf8mb4) |
严禁使用 root 运行 Web 应用 → 创建专用数据库用户(如 webapp@localhost)并授权最小权限 |
| PHP | • 安装常用扩展:php-mysqlnd, php-gd, php-xml, php-mbstring, php-curl, php-zip• php.ini 关键调优:max_execution_time = 30memory_limit = 256Mupload_max_filesize = 64Mdate.timezone = Asia/Shanghai |
启用 OPcache(提升性能):opcache.enable=1 |
四、安全加固(必须执行)
- ✅ 禁用不必要服务:
systemctl disable telnet ftp rsh(若存在) - ✅ 限制文件权限:Web 目录(如
/var/www/html)属主为apache:apache(CentOS)或www-data:www-data(Ubuntu),禁止777 - ✅ 禁用危险 PHP 函数(
php.ini):
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,show_source,dl - ✅ 配置 Fail2ban(防暴力 SSH/HTTP 攻击)
- ✅ 定期备份:配置自动备份 MySQL(
mysqldump+ OSS 存储)和网站文件
五、推荐实践(阿里云特有优化)
- 使用 云监控(CloudMonitor) 接入 CPU/内存/磁盘/网络监控
- 数据库使用 阿里云 RDS MySQL(代替自建 MySQL),享受高可用、自动备份、SQL审计等能力
- 静态资源托管至 OSS + CDN,减轻 ECS 压力
- 使用 SLB(负载均衡) + 多台 ECS 实现横向扩展(后续演进)
- 通过 云助手(Cloud Assistant) 批量执行初始化脚本(适合多实例部署)
✅ 总结一句话:
“最小权限 + 最小暴露 + 最大更新 + 分离职责” 是阿里云 LAMP 稳健运行的核心原则——从安全组封端口开始,到用户权限、数据库隔离、日志审计,每一步都需按生产标准严格配置。
如需,我可为你提供:
- ✅ 完整的自动化部署 Shell 脚本(Alibaba Cloud Linux 3 / Ubuntu 22.04)
- ✅ Apache + PHP-FPM + MariaDB 的最佳实践配置文件(含 HTTPS 模板)
- ✅ 阿里云 RDS 与 ECS 应用连接的安全配置指南
欢迎随时告知你的具体系统版本和需求场景(如 WordPress、自定义 PHP 应用),我会给出定制化方案 👇
云服务器