Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP
目录
1、Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP
1️⃣ 前提条件
2️⃣ 下载 Bitnami LAMP
3️⃣ 安装 Bitnami LAMP
4️⃣ 启动和停止服务
5️⃣ 配置 Apache(可选)
6️⃣ 配置防火墙
7️⃣ 访问验证
2、阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本
1️⃣ 阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本,自动完成下载、安装、启动和防火墙配置
2️⃣改进这个脚本,自动检测系统版本、自动选择最新 LAMP 版本、并支持 CentOS
3️⃣ 安装目录、MySQL 密码、PHP 端口都可以在执行时交互式输入版本
4️⃣ 后台守护自动启动版本
1、Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP
1️⃣ 前提条件
-
已创建阿里云 ECS 实例(推荐 Ubuntu 20.04 或 CentOS 7/8)。
-
安全组开放端口:
-
22(SSH)
-
80(HTTP)
-
443(HTTPS,可选)
-
-
具有 root 权限或 sudo 权限的用户。
2️⃣ 下载 Bitnami LAMP
-
登录 ECS:
ssh username@your_ecs_ip
-
下载 Bitnami LAMP 最新安装包:
wget https://downloads.bitnami.com/files/stacks/lamp/8.2.11-0/bitnami-lampstack-8.2.11-0-linux-x64-installer.run
注:请访问 Bitnami LAMP 官网 获取最新版本下载链接
3.给安装包添加可执行权限:
chmod +x bitnami-lampstack-8.2.11-0-linux-x64-installer.run
3️⃣ 安装 Bitnami LAMP
运行安装包:
sudo ./bitnami-lampstack-8.2.11-0-linux-x64-installer.run
安装过程中会提示:
-
安装目录(默认
/opt/lampstack-8.2.11-0
) -
MySQL root 密码
-
管理员账号信息
-
是否启用 phpMyAdmin
按需填写即可。
4️⃣ 启动和停止服务
Bitnami LAMP 自带管理脚本:
-
启动:
sudo /opt/lampstack-8.2.11-0/ctlscript.sh start
-
停止:
sudo /opt/lampstack-8.2.11-0/ctlscript.sh stop
-
重启:
sudo /opt/lampstack-8.2.11-0/ctlscript.sh restart
-
查看状态:
sudo /opt/lampstack-8.2.11-0/ctlscript.sh status
5️⃣ 配置 Apache(可选)
-
默认 Apache 监听 80 端口,可通过修改:
sudo nano /opt/lampstack-8.2.11-0/apache2/conf/httpd.conf
修改:
Listen 80
-
保存并重启 Apache:
sudo /opt/lampstack-8.2.11-0/ctlscript.sh restart apache
6️⃣ 配置防火墙
如果是 Ubuntu:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
CentOS:
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload
7️⃣ 访问验证
在浏览器输入:
http://你的ECS公网IP/
-
默认会看到 Bitnami 欢迎页面。
-
phpMyAdmin 地址:
http://你的ECS公网IP/phpmyadmin
使用安装时设置的 MySQL 用户和密码登录。
2、阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本
假设 ECS 系统为 Ubuntu 20.04+,root 或 sudo 权限
1️⃣ 阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本,自动完成下载、安装、启动和防火墙配置
-
自动检测系统类型(Ubuntu / CentOS / Debian)。
-
自动选择最新 Bitnami LAMP 版本。
-
自动安装、启动服务。
-
配置防火墙(UFW 或 firewalld)。
-
可自定义 MySQL root 密码。
脚本:install_bitnami_lamp_auto.sh
#!/bin/bash# ========================================= # 一键安装 Bitnami LAMP # 适用系统: Ubuntu 20.04+ # 作者: ChatGPT # =========================================# 配置参数 LAMP_VERSION="8.2.11-0" INSTALLER="bitnami-lampstack-$LAMP_VERSION-linux-x64-installer.run" INSTALL_DIR="/opt/lampstack-$LAMP_VERSION"# MySQL root 密码(请自行修改) MYSQL_ROOT_PASSWORD="Root123456"# 下载 Bitnami LAMP 安装包 echo "[1/6] 下载 Bitnami LAMP $LAMP_VERSION..." wget -O $INSTALLER https://downloads.bitnami.com/files/stacks/lamp/$LAMP_VERSION/$INSTALLERif [ $? -ne 0 ]; thenecho "下载失败,请检查网络或版本号!"exit 1 fi# 添加执行权限 chmod +x $INSTALLER# 自动安装 echo "[2/6] 自动安装 Bitnami LAMP..." sudo ./$INSTALLER --mode unattended --prefix $INSTALL_DIR --apache_password $MYSQL_ROOT_PASSWORD --mysql_password $MYSQL_ROOT_PASSWORD --wordpress_password $MYSQL_ROOT_PASSWORDif [ $? -ne 0 ]; thenecho "安装失败!"exit 1 fi# 启动 LAMP 服务 echo "[3/6] 启动 LAMP 服务..." sudo $INSTALL_DIR/ctlscript.sh start# 配置防火墙(Ubuntu 默认 UFW) echo "[4/6] 配置防火墙..." sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw --force enable# 显示状态 echo "[5/6] LAMP 服务状态:" sudo $INSTALL_DIR/ctlscript.sh status# 输出访问信息 IP=$(curl -s http://whatismyip.akamai.com/) echo "[6/6] 安装完成!" echo "访问 Apache: http://$IP/" echo "phpMyAdmin: http://$IP/phpmyadmin" echo "MySQL root 密码: $MYSQL_ROOT_PASSWORD" echo "安装目录: $INSTALL_DIR"echo "一键安装完成!"
使用步骤
-
上传脚本到 ECS:
scp install_bitnami_lamp_auto.sh username@your_ecs_ip:~
-
SSH 登录 ECS 并赋权:
ssh username@your_ecs_ip chmod +x install_bitnami_lamp_auto.sh
-
执行脚本:
sudo ./install_bitnami_lamp_auto.sh
脚本会自动下载最新 LAMP、安装、启动服务,并配置防火墙。
2️⃣改进这个脚本,自动检测系统版本、自动选择最新 LAMP 版本、并支持 CentOS
特点如下:
-
自动检测系统类型(Ubuntu / CentOS / Debian)。
-
自动选择最新 Bitnami LAMP 版本。
-
自动安装、启动服务。
-
配置防火墙(UFW 或 firewalld)。
-
可自定义 MySQL root 密码。
脚本:install_bitnami_lamp_auto.sh
#!/bin/bash# =========================================
# 自动安装 Bitnami LAMP(支持 Ubuntu / CentOS / Debian)
# 自动获取最新版本
# 作者: ChatGPT
# =========================================# --- 配置 ---
MYSQL_ROOT_PASSWORD="Root123456" # 可自行修改
INSTALL_DIR="/opt/lampstack" # 安装目录
TMP_DIR="/tmp"# --- 检测系统 ---
OS=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"')
echo "[1/7] 检测操作系统: $OS"# 安装 wget, curl 等基础工具
if [[ "$OS" == *"Ubuntu"* || "$OS" == *"Debian"* ]]; thensudo apt updatesudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; thensudo yum install -y wget curl tar
elseecho "不支持的操作系统: $OS"exit 1
fi# --- 获取最新 LAMP 版本 ---
echo "[2/7] 获取最新 Bitnami LAMP 版本..."
DOWNLOAD_PAGE=$(curl -s https://bitnami.com/stack/lamp/installer)
INSTALLER_URL=$(echo "$DOWNLOAD_PAGE" | grep -oP 'https://downloads.bitnami.com/files/stacks/lamp/[^"]+linux-x64-installer.run' | head -1)
INSTALLER_NAME=$(basename $INSTALLER_URL)echo "[3/7] 下载 LAMP 安装包: $INSTALLER_NAME"
wget -O "$TMP_DIR/$INSTALLER_NAME" "$INSTALLER_URL"chmod +x "$TMP_DIR/$INSTALLER_NAME"# --- 自动安装 ---
echo "[4/7] 安装 LAMP..."
sudo "$TMP_DIR/$INSTALLER_NAME" --mode unattended \--prefix "$INSTALL_DIR" \--apache_password "$MYSQL_ROOT_PASSWORD" \--mysql_password "$MYSQL_ROOT_PASSWORD" \--wordpress_password "$MYSQL_ROOT_PASSWORD"# --- 启动 LAMP ---
echo "[5/7] 启动 LAMP 服务..."
sudo "$INSTALL_DIR/ctlscript.sh" start# --- 配置防火墙 ---
echo "[6/7] 配置防火墙..."
if command -v ufw &> /dev/null; thensudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; thensudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
fi# --- 输出信息 ---
IP=$(curl -s http://whatismyip.akamai.com/)
echo "[7/7] 安装完成!"
echo "访问 Apache: http://$IP/"
echo "phpMyAdmin: http://$IP/phpmyadmin"
echo "MySQL root 密码: $MYSQL_ROOT_PASSWORD"
echo "安装目录: $INSTALL_DIR"
使用方法
-
上传脚本到 ECS:
scp install_bitnami_lamp_auto.sh username@your_ecs_ip:~
-
SSH 登录 ECS 并赋权:
ssh username@your_ecs_ip chmod +x install_bitnami_lamp_auto.sh
-
执行脚本:
sudo ./install_bitnami_lamp_auto.sh
脚本会自动下载最新 LAMP、安装、启动服务,并配置防火墙。
3️⃣ 安装目录、MySQL 密码、PHP 端口都可以在执行时交互式输入版本
脚本:install_bitnami_lamp_interactive.sh
#!/bin/bash# =========================================
# 交互式安装 Bitnami LAMP(支持 Ubuntu / CentOS / Debian)
# 自动获取最新版本
# 可自定义安装目录、MySQL 密码、Apache 端口
# =========================================# --- 提示用户输入 ---
read -p "请输入安装目录(默认 /opt/lampstack): " INSTALL_DIR
INSTALL_DIR=${INSTALL_DIR:-/opt/lampstack}read -p "请输入 MySQL root 密码(默认 Root123456): " MYSQL_ROOT_PASSWORD
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-Root123456}read -p "请输入 Apache 端口(默认 80): " APACHE_PORT
APACHE_PORT=${APACHE_PORT:-80}TMP_DIR="/tmp"# --- 检测系统 ---
OS=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"')
echo "[1/7] 检测操作系统: $OS"# 安装 wget, curl 等基础工具
if [[ "$OS" == *"Ubuntu"* || "$OS" == *"Debian"* ]]; thensudo apt updatesudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; thensudo yum install -y wget curl tar
elseecho "不支持的操作系统: $OS"exit 1
fi# --- 获取最新 LAMP 版本 ---
echo "[2/7] 获取最新 Bitnami LAMP 版本..."
DOWNLOAD_PAGE=$(curl -s https://bitnami.com/stack/lamp/installer)
INSTALLER_URL=$(echo "$DOWNLOAD_PAGE" | grep -oP 'https://downloads.bitnami.com/files/stacks/lamp/[^"]+linux-x64-installer.run' | head -1)
INSTALLER_NAME=$(basename $INSTALLER_URL)echo "[3/7] 下载 LAMP 安装包: $INSTALLER_NAME"
wget -O "$TMP_DIR/$INSTALLER_NAME" "$INSTALLER_URL"
chmod +x "$TMP_DIR/$INSTALLER_NAME"# --- 自动安装 ---
echo "[4/7] 安装 LAMP..."
sudo "$TMP_DIR/$INSTALLER_NAME" --mode unattended \--prefix "$INSTALL_DIR" \--apache_password "$MYSQL_ROOT_PASSWORD" \--mysql_password "$MYSQL_ROOT_PASSWORD" \--wordpress_password "$MYSQL_ROOT_PASSWORD"# --- 修改 Apache 端口 ---
if [[ "$APACHE_PORT" != "80" ]]; thensudo sed -i "s/^Listen 80/Listen $APACHE_PORT/" "$INSTALL_DIR/apache2/conf/httpd.conf"sudo sed -i "s/:80>/:$APACHE_PORT>/" "$INSTALL_DIR/apache2/conf/bitnami/bitnami.conf"
fi# --- 启动 LAMP ---
echo "[5/7] 启动 LAMP 服务..."
sudo "$INSTALL_DIR/ctlscript.sh" restart# --- 配置防火墙 ---
echo "[6/7] 配置防火墙..."
if command -v ufw &> /dev/null; thensudo ufw allow "$APACHE_PORT"/tcpsudo ufw allow 443/tcpsudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; thensudo firewall-cmd --permanent --add-port="$APACHE_PORT"/tcpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
fi# --- 输出信息 ---
IP=$(curl -s http://whatismyip.akamai.com/)
echo "[7/7] 安装完成!"
echo "访问 Apache: http://$IP:$APACHE_PORT/"
echo "phpMyAdmin: http://$IP:$APACHE_PORT/phpmyadmin"
echo "MySQL root 密码: $MYSQL_ROOT_PASSWORD"
echo "安装目录: $INSTALL_DIR"
这个版本特点:
-
交互式输入:安装目录、MySQL 密码、Apache 端口。
-
自动下载最新 Bitnami LAMP。
-
自动修改 Apache 端口(如果不是默认 80)。
-
防火墙配置自动生效。
4️⃣ 后台守护自动启动版本
-
Apache / MySQL / PHP 自动随系统启动
-
使用 systemd 管理服务
-
支持自定义端口、安装目录和 MySQL root 密码
脚本:install_bitnami_lamp_autostart.sh
#!/bin/bash# =========================================
# 交互式安装 Bitnami LAMP(支持 Ubuntu / CentOS / Debian)
# 自动下载最新版本
# 自动配置系统启动守护
# =========================================# --- 提示用户输入 ---
read -p "请输入安装目录(默认 /opt/lampstack): " INSTALL_DIR
INSTALL_DIR=${INSTALL_DIR:-/opt/lampstack}read -p "请输入 MySQL root 密码(默认 Root123456): " MYSQL_ROOT_PASSWORD
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-Root123456}read -p "请输入 Apache 端口(默认 80): " APACHE_PORT
APACHE_PORT=${APACHE_PORT:-80}TMP_DIR="/tmp"# --- 检测系统 ---
OS=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"')
echo "[1/8] 检测操作系统: $OS"# 安装 wget, curl 等基础工具
if [[ "$OS" == *"Ubuntu"* || "$OS" == *"Debian"* ]]; thensudo apt updatesudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; thensudo yum install -y wget curl tar
elseecho "不支持的操作系统: $OS"exit 1
fi# --- 获取最新 LAMP 版本 ---
echo "[2/8] 获取最新 Bitnami LAMP 版本..."
DOWNLOAD_PAGE=$(curl -s https://bitnami.com/stack/lamp/installer)
INSTALLER_URL=$(echo "$DOWNLOAD_PAGE" | grep -oP 'https://downloads.bitnami.com/files/stacks/lamp/[^"]+linux-x64-installer.run' | head -1)
INSTALLER_NAME=$(basename $INSTALLER_URL)echo "[3/8] 下载 LAMP 安装包: $INSTALLER_NAME"
wget -O "$TMP_DIR/$INSTALLER_NAME" "$INSTALLER_URL"
chmod +x "$TMP_DIR/$INSTALLER_NAME"# --- 自动安装 ---
echo "[4/8] 安装 LAMP..."
sudo "$TMP_DIR/$INSTALLER_NAME" --mode unattended \--prefix "$INSTALL_DIR" \--apache_password "$MYSQL_ROOT_PASSWORD" \--mysql_password "$MYSQL_ROOT_PASSWORD" \--wordpress_password "$MYSQL_ROOT_PASSWORD"# --- 修改 Apache 端口 ---
if [[ "$APACHE_PORT" != "80" ]]; thensudo sed -i "s/^Listen 80/Listen $APACHE_PORT/" "$INSTALL_DIR/apache2/conf/httpd.conf"sudo sed -i "s/:80>/:$APACHE_PORT>/" "$INSTALL_DIR/apache2/conf/bitnami/bitnami.conf"
fi# --- 创建 systemd 服务 ---
echo "[5/8] 配置 LAMP systemd 服务..."SERVICE_FILE="/etc/systemd/system/lampstack.service"sudo bash -c "cat > $SERVICE_FILE" <<EOL
[Unit]
Description=Bitnami LAMP Stack
After=network.target[Service]
Type=forking
ExecStart=$INSTALL_DIR/ctlscript.sh start
ExecStop=$INSTALL_DIR/ctlscript.sh stop
ExecReload=$INSTALL_DIR/ctlscript.sh restart
RemainAfterExit=yes
User=root
Group=root[Install]
WantedBy=multi-user.target
EOL# --- 重新加载 systemd 并启用服务 ---
sudo systemctl daemon-reload
sudo systemctl enable lampstack
sudo systemctl start lampstack# --- 配置防火墙 ---
echo "[6/8] 配置防火墙..."
if command -v ufw &> /dev/null; thensudo ufw allow "$APACHE_PORT"/tcpsudo ufw allow 443/tcpsudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; thensudo firewall-cmd --permanent --add-port="$APACHE_PORT"/tcpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload
fi# --- 检查服务状态 ---
echo "[7/8] 检查 LAMP 服务状态..."
sudo systemctl status lampstack --no-pager# --- 输出信息 ---
IP=$(curl -s http://whatismyip.akamai.com/)
echo "[8/8] 安装完成!"
echo "访问 Apache: http://$IP:$APACHE_PORT/"
echo "phpMyAdmin: http://$IP:$APACHE_PORT/phpmyadmin"
echo "MySQL root 密码: $MYSQL_ROOT_PASSWORD"
echo "安装目录: $INSTALL_DIR"
echo "服务已设置为开机自动启动: sudo systemctl status lampstack"
这个版本特点:
-
后台守护服务:通过 systemd 管理,开机自动启动。
-
端口可自定义,安装目录和 MySQL root 密码可自定义。
-
防火墙自动放行 Apache 端口和 HTTPS。
-
交互式输入,简单明了。