# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。