您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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}"
install_lamp.sh
chmod +x install_lamp.sh
./install_lamp.sh
#!/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}"
ServerTokens Prod
ServerSignature Off
TraceEnable Off
a2enmod cache
a2enmod expires
tail -f /var/log/lamp_install.log
systemctl status httpd
systemctl status mariadb
systemctl status php-fpm
netstat -tulnp | grep -E '80|3306'
setenforce 0
或配置正确策略本文提供了针对CentOS和Ubuntu系统的完整LAMP一键安装脚本,具有以下特点:
建议在生产环境使用前先在测试环境验证,并根据实际需求调整脚本参数。对于更复杂的环境,可以考虑使用Ansible、Docker等更专业的部署工具。
注意:本文脚本适用于大多数标准环境,对于特殊配置需求,请参考各组件官方文档进行手动调整。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。