本文目录导读:

我将为您提供几个快速部署LAMP(Linux+Apache+MySQL+PHP)环境的Shell脚本方案。
一键部署脚本(适用于CentOS/RHEL)
#!/bin/bash
# LAMP Stack Quick Deploy Script for CentOS/RHEL 7/8
set -e # 遇到错误立即退出
echo "Starting LAMP deployment..."
# 1. 更新系统
echo "Updating system packages..."
yum update -y || { echo "System update failed"; exit 1; }
# 2. 安装EPEL仓库
echo "Installing EPEL repository..."
yum install -y epel-release
# 3. 安装Apache
echo "Installing Apache..."
yum install -y httpd httpd-devel
# 启动并设置开机自启
systemctl start httpd
systemctl enable httpd
# 4. 安装MariaDB(MySQL兼容)
echo "Installing MariaDB..."
yum install -y mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb
# 5. 安全配置MariaDB(自动设置root密码)
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 12)
mysqladmin -u root password "$MYSQL_ROOT_PASSWORD"
# 6. 安装PHP及常用扩展
echo "Installing PHP..."
yum install -y php php-mysqlnd php-gd php-xml php-mbstring php-json
# 7. 创建测试页面
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# 8. 配置防火墙
echo "Configuring firewall..."
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
# 9. 重启Apache使配置生效
systemctl restart httpd
echo "========================================"
echo "LAMP deployment completed successfully!"
echo "Apache: http://$(hostname -I | awk '{print $1}')"
echo "MySQL Root Password: $MYSQL_ROOT_PASSWORD"
echo "PHP Info: http://$(hostname -I | awk '{print $1}')/info.php"
echo "========================================"
Ubuntu/Debian系统脚本
#!/bin/bash
# LAMP Stack Quick Deploy Script for Ubuntu/Debian
set -e
echo "Starting LAMP deployment on Ubuntu/Debian..."
# 更新包列表
apt-get update -y
# 安装Apache
apt-get install -y apache2 apache2-utils
# 启动Apache
systemctl start apache2
systemctl enable apache2
# 安装MySQL
apt-get install -y mysql-server mysql-client
# 自动设置MySQL安全配置
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 12)
debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"
systemctl start mysql
systemctl enable mysql
# 安装PHP
apt-get install -y php libapache2-mod-php php-mysql php-gd php-xml php-mbstring php-curl
# 创建测试文件
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# 重启Apache
systemctl restart apache2
# 配置UFW防火墙
ufw allow 80/tcp
ufw allow 443/tcp
echo "========================================"
echo "LAMP部署完成!"
echo "Apache: http://$(hostname -I | awk '{print $1}')"
echo "MySQL密码: $MYSQL_ROOT_PASSWORD"
echo "PHP信息: http://$(hostname -I | awk '{print $1}')/info.php"
echo "========================================"
增强版脚本(支持自定义配置)
#!/bin/bash
# Enhanced LAMP Deployment Script with Custom Options
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 函数:打印状态消息
print_status() {
echo -e "${GREEN}[+]${NC} $1"
}
print_error() {
echo -e "${RED}[-]${NC} $1"
}
print_info() {
echo -e "${YELLOW}[*]${NC} $1"
}
# 检测系统类型
detect_os() {
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
VERSION=$VERSION_ID
else
OS=$(uname -s)
fi
}
# 安装LAMP组件
install_lamp() {
local PHP_VERSION=${1:-"7.4"}
detect_os
case $OS in
centos|rhel|fedora)
# CentOS/RHEL安装逻辑
yum install -y httpd mariadb-server mariadb
yum install -y php php-mysqlnd php-gd php-xml php-mbstring
;;
ubuntu|debian)
# Ubuntu/Debian安装逻辑
apt-get install -y apache2 mysql-server
apt-get install -y php php-mysql php-gd php-xml php-mbstring
;;
*)
print_error "不支持的操作系统: $OS"
exit 1
;;
esac
}
# 配置虚拟主机
setup_virtual_host() {
local DOMAIN=$1
local DOCUMENT_ROOT=${2:-"/var/www/$DOMAIN"}
mkdir -p "$DOCUMENT_ROOT"
echo "<h1>Welcome to $DOMAIN</h1>" > "$DOCUMENT_ROOT/index.html"
# 创建虚拟主机配置文件
cat > /etc/httpd/conf.d/$DOMAIN.conf <<EOF
<VirtualHost *:80>
ServerName $DOMAIN
DocumentRoot $DOCUMENT_ROOT
<Directory $DOCUMENT_ROOT>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/$DOMAIN-error.log
CustomLog /var/log/httpd/$DOMAIN-access.log combined
</VirtualHost>
EOF
systemctl reload httpd
print_status "虚拟主机 $DOMAIN 配置完成"
}
# 主函数
main() {
print_info "开始部署LAMP环境..."
# 默认安装
install_lamp "7.4"
# 可选:创建虚拟主机
read -p "是否创建虚拟主机?(y/n): " CREATE_VHOST
if [ "$CREATE_VHOST" = "y" ]; then
read -p "请输入域名: " DOMAIN
setup_virtual_host "$DOMAIN"
fi
print_status "LAMP部署成功完成!"
}
# 运行主函数
main
使用说明
基本使用
# 给脚本执行权限 chmod +x lamp_deploy.sh # 运行脚本 ./lamp_deploy.sh
安全注意事项
# 运行MySQL安全配置脚本 mysql_secure_installation
验证安装
# 检查服务状态 systemctl status httpd systemctl status mysqld # 测试PHP curl http://localhost/info.php
快速部署命令(一行命令)
# CentOS系统 curl -sSL https://raw.githubusercontent.com/your-repo/lamp-setup/main/centos.sh | bash # Ubuntu系统 curl -sSL https://raw.githubusercontent.com/your-repo/lamp-setup/main/ubuntu.sh | bash
这些脚本提供了快速部署LAMP环境的解决方案,您可以根据实际需求选择使用,记得在生产环境中修改默认密码并关闭PHP信息页面。