Linux中怎么一键LAMP安装脚本

发布时间:2022-01-27 14:48:38 作者:iii
来源:亿速云 阅读:187
# Linux中怎么一键LAMP安装脚本

## 一、LAMP环境简介

LAMP是Linux + Apache + MySQL/MariaDB + PHP的缩写,是当前最流行的Web开发环境组合之一。它具有以下优势:

- **开源免费**:所有组件均为开源软件
- **跨平台性**:可在多种Linux发行版上运行
- **高性能**:能够承载高并发Web请求
- **灵活性**:支持多种Web开发框架和CMS系统

传统的LAMP环境搭建需要逐个安装配置各个组件,过程繁琐且容易出错。通过编写一键安装脚本,可以极大提高部署效率。

## 二、准备工作

### 2.1 系统要求

- Linux操作系统(推荐CentOS 7+/Ubuntu 18.04+)
- 至少1GB内存(建议2GB以上)
- 10GB以上磁盘空间
- root权限或sudo权限

### 2.2 脚本设计思路

一个完善的LAMP一键安装脚本应包含:

1. 系统环境检测
2. 软件依赖检查
3. 组件安装配置
4. 安全加固设置
5. 安装结果验证

## 三、CentOS系统一键安装脚本

### 3.1 完整脚本代码

```bash
#!/bin/bash

# LAMP Auto Install Script for CentOS 7+
# Author: Your Name
# Date: $(date +%F)

# 检查root权限
if [ "$(id -u)" != "0" ]; then
   echo "错误:此脚本必须以root权限运行" 1>&2
   exit 1
fi

# 定义颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 安装日志
LOG_FILE="/var/log/lamp_install.log"
echo "LAMP安装日志 - $(date)" > $LOG_FILE

# 系统信息
OS_NAME=$(cat /etc/redhat-release | awk '{print $1}')
OS_VERSION=$(cat /etc/redhat-release | grep -oE '[0-9]+\.[0-9]+')

# 组件版本
APACHE_VERSION="2.4"
MARIADB_VERSION="10.5"
PHP_VERSION="7.4"

# 安装函数
function install_apache() {
    echo -e "${YELLOW}[INFO] 开始安装Apache...${NC}"
    yum install -y httpd httpd-devel >> $LOG_FILE 2>&1
    
    systemctl start httpd
    systemctl enable httpd
    
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=https
    firewall-cmd --reload
    
    echo -e "${GREEN}[SUCCESS] Apache安装完成${NC}"
}

function install_mariadb() {
    echo -e "${YELLOW}[INFO] 开始安装MariaDB...${NC}"
    
    # 添加MariaDB官方仓库
    cat > /etc/yum.repos.d/MariaDB.repo <<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/$MARIADB_VERSION/centos$OS_VERSION-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

    yum install -y MariaDB-server MariaDB-client >> $LOG_FILE 2>&1
    
    systemctl start mariadb
    systemctl enable mariadb
    
    # 运行安全脚本
    echo -e "${YELLOW}[INFO] 正在执行MySQL安全配置...${NC}"
    mysql_secure_installation <<EOF

y
your_password
your_password
y
y
y
y
EOF

    echo -e "${GREEN}[SUCCESS] MariaDB安装完成${NC}"
}

function install_php() {
    echo -e "${YELLOW}[INFO] 开始安装PHP...${NC}"
    
    # 添加EPEL和Remi仓库
    yum install -y epel-release >> $LOG_FILE 2>&1
    yum install -y http://rpms.remirepo.net/enterprise/remi-release-${OS_VERSION}.rpm >> $LOG_FILE 2>&1
    yum-config-manager --enable remi-php$PHP_VERSION >> $LOG_FILE 2>&1
    
    yum install -y php php-common php-opcache php-mcrypt php-cli php-gd php-curl \
    php-mysqlnd php-xml php-mbstring php-json php-zip php-pear php-fpm >> $LOG_FILE 2>&1
    
    # 配置PHP
    sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/php.ini
    
    systemctl restart httpd
    echo -e "${GREEN}[SUCCESS] PHP安装完成${NC}"
}

function test_installation() {
    echo -e "${YELLOW}[INFO] 测试安装结果...${NC}"
    
    # 创建测试页面
    cat > /var/www/html/info.php <<EOF
<?php
phpinfo();
?>
EOF

    # 检查Apache
    apache_status=$(systemctl is-active httpd)
    mariadb_status=$(systemctl is-active mariadb)
    
    echo -e "Apache状态: $apache_status"
    echo -e "MariaDB状态: $mariadb_status"
    
    echo -e "${GREEN}请访问 http://your_server_ip/info.php 查看PHP信息${NC}"
}

# 主安装流程
echo -e "${GREEN}
###########################################
#         开始安装LAMP环境                #
#         系统: $OS_NAME $OS_VERSION       #
#         Apache: $APACHE_VERSION         #
#         MariaDB: $MARIADB_VERSION       #
#         PHP: $PHP_VERSION               #
###########################################
${NC}"

# 更新系统
echo -e "${YELLOW}[INFO] 正在更新系统...${NC}"
yum update -y >> $LOG_FILE 2>&1

install_apache
install_mariadb
install_php
test_installation

echo -e "${GREEN}
###########################################
#         LAMP安装已完成                  #
#         安装日志: $LOG_FILE             #
###########################################
${NC}"

3.2 脚本使用说明

  1. 将脚本保存为install_lamp.sh
  2. 添加执行权限:chmod +x install_lamp.sh
  3. 执行脚本:./install_lamp.sh

3.3 关键配置说明

  1. MariaDB安全配置:脚本中预设了root密码为”your_password”,生产环境应修改
  2. PHP时区设置:默认设置为Asia/Shanghai,可根据需要调整
  3. 防火墙配置:自动放行HTTP(80)和HTTPS(443)端口

四、Ubuntu系统一键安装脚本

4.1 完整脚本代码

#!/bin/bash

# LAMP Auto Install Script for Ubuntu 18.04+
# Author: Your Name
# Date: $(date +%F)

# 检查root权限
if [ "$(id -u)" != "0" ]; then
   echo "错误:此脚本必须以root权限运行" 1>&2
   exit 1
fi

# 定义颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 安装日志
LOG_FILE="/var/log/lamp_install.log"
echo "LAMP安装日志 - $(date)" > $LOG_FILE

# 组件版本
APACHE_VERSION="2.4"
MYSQL_VERSION="8.0"
PHP_VERSION="7.4"

# 安装函数
function install_apache() {
    echo -e "${YELLOW}[INFO] 开始安装Apache...${NC}"
    apt-get install -y apache2 apache2-utils >> $LOG_FILE 2>&1
    
    ufw allow 'Apache Full'
    systemctl start apache2
    systemctl enable apache2
    
    echo -e "${GREEN}[SUCCESS] Apache安装完成${NC}"
}

function install_mysql() {
    echo -e "${YELLOW}[INFO] 开始安装MySQL...${NC}"
    
    apt-get install -y mysql-server mysql-client >> $LOG_FILE 2>&1
    
    systemctl start mysql
    systemctl enable mysql
    
    # 运行安全脚本
    echo -e "${YELLOW}[INFO] 正在执行MySQL安全配置...${NC}"
    mysql_secure_installation <<EOF

y
your_password
your_password
y
y
y
y
EOF

    echo -e "${GREEN}[SUCCESS] MySQL安装完成${NC}"
}

function install_php() {
    echo -e "${YELLOW}[INFO] 开始安装PHP...${NC}"
    
    apt-get install -y php libapache2-mod-php php-mysql php-common php-gd \
    php-curl php-json php-zip php-mbstring php-xml php-pear php-fpm >> $LOG_FILE 2>&1
    
    # 配置PHP
    sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/php/$PHP_VERSION/apache2/php.ini
    
    systemctl restart apache2
    echo -e "${GREEN}[SUCCESS] PHP安装完成${NC}"
}

function test_installation() {
    echo -e "${YELLOW}[INFO] 测试安装结果...${NC}"
    
    # 创建测试页面
    cat > /var/www/html/info.php <<EOF
<?php
phpinfo();
?>
EOF

    # 检查服务状态
    apache_status=$(systemctl is-active apache2)
    mysql_status=$(systemctl is-active mysql)
    
    echo -e "Apache状态: $apache_status"
    echo -e "MySQL状态: $mysql_status"
    
    echo -e "${GREEN}请访问 http://your_server_ip/info.php 查看PHP信息${NC}"
}

# 主安装流程
echo -e "${GREEN}
###########################################
#         开始安装LAMP环境                #
#         系统: Ubuntu                     #
#         Apache: $APACHE_VERSION         #
#         MySQL: $MYSQL_VERSION           #
#         PHP: $PHP_VERSION               #
###########################################
${NC}"

# 更新系统
echo -e "${YELLOW}[INFO] 正在更新系统...${NC}"
apt-get update -y >> $LOG_FILE 2>&1
apt-get upgrade -y >> $LOG_FILE 2>&1

install_apache
install_mysql
install_php
test_installation

echo -e "${GREEN}
###########################################
#         LAMP安装已完成                  #
#         安装日志: $LOG_FILE             #
###########################################
${NC}"

五、脚本优化与安全建议

5.1 安全性增强

  1. 修改默认密码:安装后立即修改MySQL/MariaDB的root密码
  2. 禁用PHP危险函数:在php.ini中禁用exec、system等函数
  3. 配置Apache安全
    
    ServerTokens Prod
    ServerSignature Off
    TraceEnable Off
    

5.2 性能优化

  1. 启用Apache缓存
    
    a2enmod cache
    a2enmod expires
    
  2. 配置OPcache:在php.ini中启用并优化OPcache设置
  3. MySQL性能调优:根据服务器配置调整my.cnf中的缓冲池大小等参数

六、常见问题解决

6.1 安装失败排查步骤

  1. 检查日志文件:tail -f /var/log/lamp_install.log
  2. 验证服务状态:
    
    systemctl status httpd
    systemctl status mariadb
    systemctl status php-fpm
    
  3. 检查端口监听:
    
    netstat -tulnp | grep -E '80|3306'
    

6.2 常见错误解决方案

  1. 端口冲突:确保80、443端口未被其他程序占用
  2. 依赖问题:尝试手动安装缺失的依赖包
  3. SELinux阻止:临时设置为宽容模式setenforce 0或配置正确策略

七、总结

本文提供了针对CentOS和Ubuntu系统的完整LAMP一键安装脚本,具有以下特点:

  1. 自动化程度高:从安装到配置全自动完成
  2. 灵活可定制:可根据需要修改版本号和配置参数
  3. 日志记录完善:便于排查安装过程中的问题
  4. 安全基础配置:包含基本的安全设置

建议在生产环境使用前先在测试环境验证,并根据实际需求调整脚本参数。对于更复杂的环境,可以考虑使用Ansible、Docker等更专业的部署工具。

注意:本文脚本适用于大多数标准环境,对于特殊配置需求,请参考各组件官方文档进行手动调整。 “`

推荐阅读:
  1. 一键实现基于LAMP架构的zabbix基本安装
  2. 使用Shell脚本一键部署基础LAMP架构

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux lamp

上一篇:Linux下怎么传输文件

下一篇:jstat命令怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》