Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP

目录

[1、Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP](#1、Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP)

[1️⃣ 前提条件](#1️⃣ 前提条件)

[2️⃣ 下载 Bitnami LAMP](#2️⃣ 下载 Bitnami LAMP)

[3️⃣ 安装 Bitnami LAMP](#3️⃣ 安装 Bitnami LAMP)

[4️⃣ 启动和停止服务](#4️⃣ 启动和停止服务)

[5️⃣ 配置 Apache(可选)](#5️⃣ 配置 Apache(可选))

[6️⃣ 配置防火墙](#6️⃣ 配置防火墙)

[7️⃣ 访问验证](#7️⃣ 访问验证)

[2、阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本](#2、阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本)

[1️⃣ 阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本,自动完成下载、安装、启动和防火墙配置](#1️⃣ 阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本,自动完成下载、安装、启动和防火墙配置)

[2️⃣改进这个脚本,自动检测系统版本、自动选择最新 LAMP 版本、并支持 CentOS](#2️⃣改进这个脚本,自动检测系统版本、自动选择最新 LAMP 版本、并支持 CentOS)

[3️⃣ 安装目录、MySQL 密码、PHP 端口都可以在执行时交互式输入版本](#3️⃣ 安装目录、MySQL 密码、PHP 端口都可以在执行时交互式输入版本)

[4️⃣ 后台守护自动启动版本](#4️⃣ 后台守护自动启动版本)


1、Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP

1️⃣ 前提条件

  1. 已创建阿里云 ECS 实例(推荐 Ubuntu 20.04 或 CentOS 7/8)。

  2. 安全组开放端口:

    • 22(SSH)

    • 80(HTTP)

    • 443(HTTPS,可选)

  3. 具有 root 权限或 sudo 权限的用户。


2️⃣ 下载 Bitnami LAMP

  1. 登录 ECS:

    bash 复制代码
    ssh username@your_ecs_ip
  2. 下载 Bitnami LAMP 最新安装包:

    bash 复制代码
    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.给安装包添加可执行权限:

bash 复制代码
chmod +x bitnami-lampstack-8.2.11-0-linux-x64-installer.run

3️⃣ 安装 Bitnami LAMP

运行安装包:

bash 复制代码
sudo ./bitnami-lampstack-8.2.11-0-linux-x64-installer.run

安装过程中会提示:

  • 安装目录(默认 /opt/lampstack-8.2.11-0

  • MySQL root 密码

  • 管理员账号信息

  • 是否启用 phpMyAdmin

按需填写即可。


4️⃣ 启动和停止服务

Bitnami LAMP 自带管理脚本:

  • 启动:

    bash 复制代码
    sudo /opt/lampstack-8.2.11-0/ctlscript.sh start
  • 停止:

    bash 复制代码
    sudo /opt/lampstack-8.2.11-0/ctlscript.sh stop
  • 重启:

    bash 复制代码
    sudo /opt/lampstack-8.2.11-0/ctlscript.sh restart
  • 查看状态:

    bash 复制代码
    sudo /opt/lampstack-8.2.11-0/ctlscript.sh status

5️⃣ 配置 Apache(可选)

  1. 默认 Apache 监听 80 端口,可通过修改:

    bash 复制代码
    sudo nano /opt/lampstack-8.2.11-0/apache2/conf/httpd.conf

修改:

bash 复制代码
Listen 80
  1. 保存并重启 Apache:

    bash 复制代码
    sudo /opt/lampstack-8.2.11-0/ctlscript.sh restart apache

6️⃣ 配置防火墙

如果是 Ubuntu:

bash 复制代码
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable

CentOS:

bash 复制代码
sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload

7️⃣ 访问验证

在浏览器输入:

bash 复制代码
http://你的ECS公网IP/
  • 默认会看到 Bitnami 欢迎页面。

  • phpMyAdmin 地址:

    bash 复制代码
    http://你的ECS公网IP/phpmyadmin

使用安装时设置的 MySQL 用户和密码登录。

2、阿里云 ECS 上一键安装 Bitnami LAMP 的 Bash 脚本

[假设 ECS 系统为 Ubuntu 20.04+,root 或 sudo 权限](#假设 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

bash 复制代码
#!/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/$INSTALLER

if [ $? -ne 0 ]; then
    echo "下载失败,请检查网络或版本号!"
    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_PASSWORD

if [ $? -ne 0 ]; then
    echo "安装失败!"
    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 "一键安装完成!"

使用步骤

  1. 上传脚本到 ECS:

    bash 复制代码
    scp install_bitnami_lamp_auto.sh username@your_ecs_ip:~
  2. SSH 登录 ECS 并赋权:

    bash 复制代码
    ssh username@your_ecs_ip
    chmod +x install_bitnami_lamp_auto.sh
  3. 执行脚本:

    bash 复制代码
    sudo ./install_bitnami_lamp_auto.sh

脚本会自动下载最新 LAMP、安装、启动服务,并配置防火墙。

2️⃣改进这个脚本,自动检测系统版本、自动选择最新 LAMP 版本、并支持 CentOS

特点如下:

  • 自动检测系统类型(Ubuntu / CentOS / Debian)。

  • 自动选择最新 Bitnami LAMP 版本

  • 自动安装、启动服务

  • 配置防火墙(UFW 或 firewalld)。

  • 可自定义 MySQL root 密码

脚本:install_bitnami_lamp_auto.sh

bash 复制代码
#!/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"* ]]; then
    sudo apt update
    sudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; then
    sudo yum install -y wget curl tar
else
    echo "不支持的操作系统: $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; then
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; then
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo 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"

使用方法

  1. 上传脚本到 ECS:

    bash 复制代码
    scp install_bitnami_lamp_auto.sh username@your_ecs_ip:~
  2. SSH 登录 ECS 并赋权:

    bash 复制代码
    ssh username@your_ecs_ip chmod +x install_bitnami_lamp_auto.sh
  3. 执行脚本:

    bash 复制代码
    sudo ./install_bitnami_lamp_auto.sh

脚本会自动下载最新 LAMP、安装、启动服务,并配置防火墙。

3️⃣ 安装目录、MySQL 密码、PHP 端口都可以在执行时交互式输入版本

脚本:install_bitnami_lamp_interactive.sh

bash 复制代码
#!/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"* ]]; then
    sudo apt update
    sudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; then
    sudo yum install -y wget curl tar
else
    echo "不支持的操作系统: $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" ]]; then
    sudo 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; then
    sudo ufw allow "$APACHE_PORT"/tcp
    sudo ufw allow 443/tcp
    sudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; then
    sudo firewall-cmd --permanent --add-port="$APACHE_PORT"/tcp
    sudo firewall-cmd --permanent --add-service=https
    sudo 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"

这个版本特点:

  1. 交互式输入:安装目录、MySQL 密码、Apache 端口。

  2. 自动下载最新 Bitnami LAMP

  3. 自动修改 Apache 端口(如果不是默认 80)。

  4. 防火墙配置自动生效

4️⃣ 后台守护自动启动版本

  • Apache / MySQL / PHP 自动随系统启动

  • 使用 systemd 管理服务

  • 支持自定义端口、安装目录和 MySQL root 密码

脚本:install_bitnami_lamp_autostart.sh

bash 复制代码
#!/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"* ]]; then
    sudo apt update
    sudo apt install -y wget curl tar
elif [[ "$OS" == *"CentOS"* || "$OS" == *"Red Hat"* ]]; then
    sudo yum install -y wget curl tar
else
    echo "不支持的操作系统: $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" ]]; then
    sudo 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; then
    sudo ufw allow "$APACHE_PORT"/tcp
    sudo ufw allow 443/tcp
    sudo ufw --force enable
elif command -v firewall-cmd &> /dev/null; then
    sudo firewall-cmd --permanent --add-port="$APACHE_PORT"/tcp
    sudo firewall-cmd --permanent --add-service=https
    sudo 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"

这个版本特点:

  1. 后台守护服务:通过 systemd 管理,开机自动启动。

  2. 端口可自定义,安装目录和 MySQL root 密码可自定义。

  3. 防火墙自动放行 Apache 端口和 HTTPS

  4. 交互式输入,简单明了。