Alibaba Cloud Linux 3.2104 LTS 安装lamp?

在 Alibaba Cloud Linux 3.2104 LTS(基于 RHEL/CentOS 8 体系)上安装 LAMP(Linux, Apache, MariaDB/MySQL, PHP)堆栈,推荐使用系统自带的 AppStream 仓库进行安装,以确保兼容性和安全性。

以下是完整、分步的安装指南:


✅ 一、前置准备

# 更新系统包
sudo dnf update -y

# 确保 EPEL 源已启用(可选,用于额外软件如 phpmyadmin)
sudo dnf install epel-release -y

✅ 二、安装 Apache HTTP Server

sudo dnf install httpd -y

# 启动 Apache 并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

# 检查状态
sudo systemctl status httpd

🔍 验证 Apache 是否运行:浏览器访问 http://<你的服务器IP>,应看到 Apache 测试页。


✅ 三、安装 MariaDB(MySQL 兼容数据库)

Alibaba Cloud Linux 3 默认使用 MariaDB 作为 MySQL 替代品:

sudo dnf install mariadb-server mariadb -y

# 启动并启用 MariaDB
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 初始化数据库安全配置(交互式)
sudo mysql_secure_installation

mysql_secure_installation 建议选项:

  • 设置 root 密码:✅ 是
  • 删除匿名用户:✅ 是
  • 禁止远程 root 登录:✅ 是
  • 删除测试数据库:✅ 是
  • 重新加载权限表:✅ 是

✅ 四、安装 PHP 及常用扩展

Alibaba Cloud Linux 3 默认提供 PHP 8.0PHP 8.1(取决于具体小版本)。我们安装 PHP 8.0 及常用模块:

sudo dnf install php php-mysqlnd php-fpm php-json php-common php-mbstring php-xml php-gd php-curl php-zip -y

验证 PHP 安装:

php -v

输出示例:

PHP 8.0.x (cli) (built: ...)
Copyright (c) ...

✅ 五、配置 Apache 支持 PHP

确保 Apache 能解析 .php 文件:

# 编辑 Apache 配置文件
sudo vi /etc/httpd/conf.d/php.conf

确认以下内容存在(通常已自动配置):

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

⚠️ 如果 /etc/httpd/conf.modules.d/00-base.conf 中未加载 PHP 模块,请检查是否有如下行:

LoadModule php_module modules/libphp.so

重启 Apache 使配置生效:

sudo systemctl restart httpd

✅ 六、测试 LAMP 环境

创建测试文件:

sudo bash -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

浏览器访问:http://<你的服务器IP>/info.php

✅ 如果显示 PHP 信息页面,说明 LAMP 安装成功!


✅ 七、防火墙与安全组配置(阿里云 ECS 必看)

1. 开放端口(firewalld)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

2. 阿里云安全组

在 ECS 控制台 → 实例详情 → 安全组 → 添加入方向规则:

协议 端口范围 授权对象 描述
TCP 80 0.0.0.0/0 HTTP
TCP 443 0.0.0.0/0 HTTPS
TCP 3306 仅内网IP MySQL(不建议公网开放)

🔒 严禁将 MySQL 端口 3306 对公网开放!


✅ 八、可选:安装 phpMyAdmin(管理数据库)

# 安装依赖
sudo dnf install php-mbstring php-xml php-zip -y

# 下载 phpMyAdmin
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar xzf phpMyAdmin-5.2.1-all-languages.tar.gz
sudo mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin

# 创建符号链接
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

# 修改权限
sudo chown -R apache:apache /usr/share/phpmyadmin
sudo chmod -R 755 /usr/share/phpmyadmin

# 生成 blowfish_secret
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
sudo sed -i "s/$cfg['blowfish_secret'] = '';/$cfg['blowfish_secret'] = '$(openssl rand -base64 32)';/" /usr/share/phpmyadmin/config.inc.php

# 重启 Apache
sudo systemctl restart httpd

访问:http://<你的服务器IP>/phpmyadmin


✅ 九、常见问题排查

问题 解决方案
Apache 无法启动 检查端口占用:sudo lsof -i :80;查看日志:sudo journalctl -u httpd
PHP 不生效 确认 libphp.so 模块已加载;重启 Apache
MariaDB 连接失败 检查服务状态:systemctl status mariadb;检查防火墙
权限错误 确保 /var/www/html 所有者为 apache:apache

✅ 十、最佳实践建议

  1. 禁用目录浏览:在 Apache 配置中添加 Options -Indexes
  2. 隐藏 PHP 版本信息:在 php.ini 中设置 expose_php = Off
  3. 使用 SELinux:保持启用,如需自定义策略请使用 semanage 而非关闭 SELinux
  4. 定期更新sudo dnf update -y 每月执行一次
  5. 备份数据库:使用 mysqldump 定期备份

📌 总结命令速查

# 一键安装 LAMP(部分需交互)
sudo dnf install httpd mariadb-server mariadb php php-mysqlnd php-fpm php-json php-mbstring php-xml php-gd php-curl php-zip -y

# 启动所有服务
sudo systemctl enable --now httpd mariadb

# 开放防火墙端口
sudo firewall-cmd --permanent --add-service={http,https} && sudo firewall-cmd --reload

如有特定需求(如使用 MySQL 而非 MariaDB、PHP 8.2、HTTPS 证书等),可进一步定制。欢迎继续提问!