Alibaba Cloud Linux 3搭建Web服务器时LAMP有哪些注意事项?

在 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 支持 preforkevent MPM,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.cnfbind-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
  • 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 ProdServerSignature 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)。

云服务器