Amazon Linux AMI EC2安装LAMP时缺失软件包求助
解决AWS EC2上yum安装LAMP时包缺失的问题
看起来你遇到的问题是因为使用了针对旧版Amazon Linux的包名,这些包在当前的EC2系统版本中已经不存在了。我来帮你一步步解决:
先确认你的EC2系统版本
首先运行这条命令查看你用的是哪个版本的Amazon Linux:
cat /etc/os-release
不同系统版本的解决方案
如果你用的是Amazon Linux 2(最常见的版本)
Amazon Linux 2已经统一了软件包命名,并且默认用MariaDB替代了MySQL。执行以下步骤:
- 先更新系统:
sudo yum update -y - 安装LAMP组件:
sudo yum install -y httpd php php-mysqlnd mariadb-server - 启动并设置开机自启服务:
sudo systemctl start httpd sudo systemctl enable httpd sudo systemctl start mariadb sudo systemctl enable mariadb - 初始化数据库(设置root密码等安全配置):
sudo mysql_secure_installation
如果你用的是Amazon Linux 2023
这个版本用dnf替代了yum,包名和Amazon Linux 2一致:
- 更新系统:
sudo dnf update -y - 安装LAMP组件:
sudo dnf install -y httpd php php-mysqlnd mariadb-server - 启动并启用服务:
sudo systemctl start httpd sudo systemctl enable httpd sudo systemctl start mariadb sudo systemctl enable mariadb - 初始化数据库:
sudo mysql_secure_installation
如果你确实需要旧版本的组件(比如PHP 7.0,不推荐生产环境)
如果因为特殊需求必须用PHP7.0这类旧版本,在Amazon Linux 2里可以通过amazon-linux-extras启用对应的软件源:
- 启用PHP7.0源:
sudo amazon-linux-extras enable php7.0 - 安装旧版本的LAMP组件:
sudo yum install -y httpd24 php7.0 php7.0-mysqlnd mysql56-server
为什么会出现这个报错?
你用的httpd24、php70、mysql56-server这些包名是Amazon Linux 1的专属命名,而Amazon Linux 1已经停止官方支持了。现在的Amazon Linux 2/2023都采用了更通用的包名,并且升级了软件版本,所以旧包名在新系统的软件源里找不到。
内容的提问来源于stack exchange,提问作者user24529
相关产品推荐
相关产品推荐

