在 Alibaba Cloud Linux 3(基于 Red Hat Enterprise Linux 9 / Rocky Linux 9 体系)上搭建 LAMP(Linux, Apache, MySQL/MariaDB, PHP)环境时,需要特别注意其系统架构、软件包管理方式、安全策略以及组件版本兼容性。以下是关键注意事项:
1. 系统基础与初始化
- 使用官方镜像或自定义镜像:建议从阿里云市场选择官方提供的 Alibaba Cloud Linux 3 镜像,确保内核、驱动和工具链经过优化。
- 最小化安装原则:避免预装多余服务,减少攻击面。
- 防火墙配置:ALinux 3 默认启用
firewalld,需显式放行 Web 服务端口(如 80/443):sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload - SELinux 策略:默认处于
enforcing模式。若遇到权限问题,可临时设为permissive排查,但生产环境建议通过定制策略而非关闭 SELinux。
2. Apache HTTP Server 安装与配置
- 推荐安装方式:使用 DNF/YUM 安装官方仓库中的
httpd(非第三方源):sudo dnf install httpd php -y - 模块加载:ALinux 3 的 Apache 默认已启用常用模块(如
mod_rewrite,mod_ssl),但需检查/etc/httpd/conf.d/下是否有冲突配置文件。 - 虚拟主机配置:
- 主配置文件为
/etc/httpd/conf/httpd.conf,站点配置建议放在/etc/httpd/conf.d/或/etc/httpd/sites-available/(需手动创建目录结构)。 - 注意
ServerRoot路径及DocumentRoot权限设置。
- 主配置文件为
- 性能调优:ALinux 3 支持
prefork和eventMPM,PHP-FPM 场景下推荐使用event+php-fpm组合。
3. 数据库层:MariaDB vs MySQL
- 默认推荐 MariaDB:ALinux 3 默认提供
mariadb-server,兼容性好且开源许可友好:sudo dnf install mariadb-server mariadb -y sudo systemctl enable --now mariadb - MySQL 替代方案:如需 Oracle MySQL,需添加官方 YUM 源(如
mysql-community-release-el9.noarch.rpm),注意版本匹配(MySQL 8.0+ 对 RHEL 9 系列有特定要求)。 - 安全加固:
- 运行
mysql_secure_installation重置 root 密码、移除匿名账户等。 - 限制远程访问:修改
my.cnf中bind-address = 127.0.0.1(除非明确需要公网访问)。
- 运行
4. PHP 环境与集成
- PHP 版本选择:
- ALinux 3 默认提供 PHP 8.x(具体版本见
dnf list php),可通过dnf module切换:sudo dnf module list php # 查看可用模块 sudo dnf module enable php:8.2 # 启用指定版本 sudo dnf install php-fpm php-mysqlnd -y
- ALinux 3 默认提供 PHP 8.x(具体版本见
- PHP-FPM 配置:
- 主配置在
/etc/php-fpm.d/www.conf,需调整listen.owner/group与 Apache 用户一致(通常为apache)。 - 建议将 FastCGI 监听改为 Unix socket(
listen = /run/php-fpm/www.sock)以提升性能。
- 主配置在
- 扩展安装:常用扩展如
php-gd,php-mbstring,php-opcache可通过dnf install php-*批量安装。
5. 启动顺序与服务依赖
确保服务按正确顺序启动并设置开机自启:
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now httpd
⚠️ 注意:Apache 启动前需确认 MySQL/MariaDB 和 PHP-FPM 已就绪,否则可能因连接失败导致服务异常。
6. 安全最佳实践
- 禁止目录浏览:在
<Directory>指令中添加Options -Indexes。 - 隐藏版本号:在
httpd.conf中设置ServerTokens Prod和ServerSignature Off。 - 定期更新:
sudo dnf update -y关注阿里云安全公告,及时修补漏洞。
- 日志审计:启用
auditd监控关键文件变更,结合fail2ban防护暴力破解。
7. 常见问题排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| Apache 无法访问 PHP 页面 | PHP-FPM 未启动或 socket 权限错误 | 检查 systemctl status php-fpm,验证 /run/php-fpm/www.sock 属主 |
| MySQL 拒绝连接 | 防火墙拦截或 bind-address 限制 | 检查 firewall-cmd --list-all,确认 my.cnf 绑定地址 |
| SELinux 阻止访问 | 上下文不匹配 | 执行 restorecon -Rv /var/www/html 或使用 chcon 调整 |
| 高并发下响应慢 | MPM 配置不当 | 调整为 event MPM + PHP-FPM 多进程模型 |
8. 云原生适配建议
- 若部署在 ECS 实例上,建议配合 云助手 自动执行初始化脚本。
- 使用 对象存储 OSS 静态资源分离,减轻 Web 服务器负载。
- 开启 云监控 跟踪 CPU、内存、磁盘 I/O 指标,设置告警阈值。
通过以上措施,可在 Alibaba Cloud Linux 3 上构建稳定、安全、高性能的 LAMP 环境。如需更高可用性,可进一步引入 Keepalived + Nginx 反向X_X或容器化部署(Docker/Podman)。
CLOUD技术笔记