Ubuntu系统使用LAMP架构搭建wordpress
Ubuntu系统使用LAMP架构搭建wordpress

Ubuntu系统使用LAMP架构搭建wordpress

Ubuntu系统使用LAMP架构搭建博客系统

#!/bin/bash
#-----------------------------------------------
# 脚本名称:        LAMP_BLOG_SYSTEM.sh
# 作者:                   whao
# 创建时间:       2025-04-23
# 版本:             v0.1
# 描述:   Ubuntu系统使用LAMP架构搭建博客系统
#------------------------------------------------

#颜色定义
G="\e[32m"
W="\e[0m"
R="\e[31m"
Y="\e[33m"
B="\e[34m"
P="\e[35m"


#更新源
echo -e "$R===============进入服务安装阶段==============$W"
read -t1

apt update &>/dev/null
    if [ $? -eq 0 ]; then
        echo "软件包列表更新成功"
    else
        echo "软件包列表更新失败"
        exit
    fi

apt install firewalld -y &>/dev/null
        if [ $? -eq 0 ]; then
            echo "防火墙下载安装完成"
            systemctl stop firewalld
            systemctl disable firewalld

          else
            systemctl disable firewalld
        fi


#下载服务软件
apt install apache2 -y &>/dev/null
    if [ $? -eq 0 ]; then
        echo "Apache下载安装完成"
         systemctl start apache2
          if [ $? -eq 0 ]; then
              echo "Apache2启动成功"
          else
              echo "Apache2启动失败"
              echo "注意查看端口等服务知否被占用"
          fi
    else
        echo "Apache下载失败"

    fi


apt install php -y &>/dev/null
    if [ $? -eq 0 ]; then
    VERSION=$(php -v | head -n1 | awk '{print $2}' | awk -F"." '{print $1"."$2}')

        echo "PHP下载安装完成"
       # systemctl start php${VERSION}-fpm.service
       #   if [ $? -eq 0 ]; then
       #       echo "PHP${VERSION}启动成功"
       #   else
       #     echo "PHP${VERSION}启动失败"
       #   fi
    else
        echo "PHP下载安装失败"
    fi

apt install mysql-server -y &>/dev/null
  if [ $? -eq 0 ]; then
     echo "MySQL下载安装完成"
         systemctl start mysql
          if [ $? -eq 0 ]; then
              echo "MySQL启动成功"
          else
              echo "MySQL启动失败"
          fi

    else
        echo "MySQL下载失败"

  fi

 which wget &>/dev/null
                if [ $? -eq 0 ];then
                        echo "wget 命令已有"

                else
                        apt install wget -y &>/dev/null
                        echo "wget 命令下载完成"
                fi
which unzip &>/dev/null
                if [ $? -eq 0 ];then
                        echo "unzip 命令已有"

                else
                        apt install unzip -y &>/dev/null
                        echo "unzip 命令下载完成"
                fi

 which curl &>/dev/null
                if [ $? -eq 0 ];then
                        echo "curl 命令已有"

                else
                        apt install curl -y &>/dev/null
                        echo "curl 命令下载完成"
                fi

which net-tools &>/dev/null
                if [ $? -eq 0 ];then
                        echo "ifconfig 命令包已有"

                else
                        apt install net-tools -y &>/dev/null
                        echo "net-tools 命令包下载完成"
                fi



echo -e "$R===========进入PHP服务定制阶段===============$W"


echo "VERSION=$(php -v | head -n1 | awk '{print $2}' | awk -F"." '{print $1"."$2}')
export VERSION" >> /etc/apache2/envvars

echo "PFM_PHP_DEPLOY=$(curl -s ${ip}/index.php |head -n 45 |tail -n1 |awk -F">" '{print $5}' |awk '{print $1}')N
export PFM_PHP_DEPLOY" >> /etc/apache2/envvars

#定制PHP

ls /etc/apache2/sites-enabled/000-default.conf
    if [ $? -eq 0 ]; then
        echo "目录下已文件,跳过步骤"
    else
      ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/
      echo "已设置软链接"
    fi

#步骤确认
echo '<?php phpinfo(); ?>' > /var/www/html/index.php

  systemctl restart apache2

  apt install curl -y &>/dev/null

#  ip=$(ifconfig |grep -w "inet" |head -n1|awk '{print $2}')

 # index=$(curl -s $ip/index.php)
  #if [ $index == '<?php phpinfo(); ?>' ];then
   # echo "PHP成功连接到/var/www/html"
   # echo "进入FPM方式部署PHP"
  #else
   # echo "PHP可能安装有问题,中断脚本"
   # exit

 # fi

#FPM方式部署PHP

apt install php-fpm -y &>/dev/null

VERSION=$(php -v | head -n1 | awk '{print $2}' | awk -F"." '{print $1"."$2}')
FPM=$(ls /etc/php/${VERSION} |grep -w fpm)
    if [ $FPM = 'fpm' ];then
      echo "fpm配置下载成功"

    else
      echo "fpm配置下载失败"
    fi

ln -sv /etc/apache2/mods-available/proxy_fcgi.load  /etc/apache2/mods-enabled/proxy_fcgi.load
    if [ $? -eq 0 ]; then
        echo "proxy_fcgi.load设置软链接成功"
    else
        echo "proxy_fcgi.load软链接已设置"

    fi

ln -sv /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
    if [ $? -eq 0 ]; then
        echo "proxy.conf设置软链接成功"
    else
        echo "proxy.conf软连接已设置"

    fi

ln -sv /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
    if [ $? -eq 0 ]; then
        echo "proxy.load设置软链接成功"
    else
        echo "proxy.load软连接已设置"

    fi
  #验证软链接设置成功

  PROXY=$(ls  /etc/apache2/mods-enabled/ |grep -E "^proxy*" |xargs)

  if [ "${PROXY}" = "proxy.conf proxy_fcgi.load proxy.load" ]; then
      echo "软链接全部设置成功!!!!"
  else
      echo "软链接设置有问题,中断脚本查看原因"
  fi


echo -e "$G===============定制php功能访问==============$W"

VERSION=$(php -v | head -n1 | awk '{print $2}' | awk -F"." '{print $1"."$2}')

echo -e '<FilesMatch ".+\.ph(ar|p|tml)$">\n    SetHandler "proxy:unix:/run/php/php${VERSION}-fpm.sock|fcgi://localhost"\n </FilesMatch>' > /etc/apache2/mods-enabled/proxy.conf

#重启Apache2
systemctl restart apache2
    if [ $? -eq 0 ]; then
        echo "Apache2重启成功"
    else
        echo "Apache2重启失败"
        exit
    fi



echo -e "$G===========验证fpm-php是否部署完成==========$W"

ip=$(ifconfig |grep -w "inet" |head -n1|awk '{print $2}')
PFM_PHP_DEPLOY=$(curl -s ${ip}/index.php |head -n 45 |tail -n1 |awk -F">" '{print $5}' |awk '{print $1}')


  if [ "${PFM_PHP_DEPLOY}" = "FPM/FastCGI" ]; then
      echo "fpm-php部署成功!!!!"
  else
      echo "fpm-php部署失败!!!!"
      exit
  fi



#mysql部署
echo -e "$G==============进入MySQL部署阶段=============$W"

#安装php和mysql的模块
apt install php-fpm php-mysqlnd php-json php-gd php-xml php-mbstring php-zip -y &>/dev/null
    if [ $? -eq 0 ]; then
        echo "连接模块安装成功"
    else
        echo "连接模块安装失败"
        exit
    fi

mkdir /var/www/html/blog.com/ -p
echo '<?php echo "hello world"; ?>' > /var/www/html/blog.com/test.php
TEST_PHPa=$(cat /var/www/html/blog.com/test.php)
    if [ "${TEST_PHPa}" = '<?php echo "hello world"; ?>' ]; then
        echo "虚拟主机文件创建成功"
        echo "写入数据完成"
    else
        echo "虚拟主机文件有问题,请注意!!!"
        exit
    fi


rm -rf /etc/apache2/sites-enabled/000-default.conf
    if [ $? -eq 0 ]; then
        echo "默认配置文件已删除"
    else
        echo "默认文件删除失败"
        exit
    fi


  touch /etc/apache2/sites-enabled/blog.com.conf

 VERSION=$(php -v | head -n1 | awk '{print $2}' | awk -F"." '{print $1"."$2}')
echo -e '<virtualhost *:80>\n  DocumentRoot /var/www/html/blog.com/\n  ServerName blog.sswang.com\n  <FilesMatch \.php$>\n    SetHandler "proxy:unix:/run/php/php${VERSION}-fpm.sock|fcgi://localhost"\n  </FilesMatch>\n  <Directory /var/www/html/blog.com/>\n    Require all granted\n  </Directory>\n</virtualhost>' > /etc/apache2/sites-enabled/blog.com.conf

    if [ $? -eq 0 ]; then
        echo "定制网站关联php配置编写完成"
    else
        echo "定制网站关联php配置编写失败"
        exit
    fi

    systemctl restart apache2.service
    if [ $? -eq 0 ]; then
        echo "apache2.service重启成功"
    else
        echo "apache2.service重启失败"
        exit
    fi

    ip=$(ifconfig |grep -w "inet" |head -n1|awk '{print $2}')
    TEST_PHPb=$(curl -s ${ip}/test.php)
    if [ "${TEST_PHPb}" = "hello world" ]; then
        echo "php配置测试成功"

    else
        echo "php配置测试失败"
        exit
    fi



#设置mysql配置允许外部访问


sed -i "/^bind-address/s#127.0.0.1#${ip}#" /etc/mysql/mysql.conf.d/mysqld.cnf

TESTC=$(grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf |awk 'NR==1 {print $3}')
    if [ "${TESTC}" = "$ip" ]; then
        echo "MySQL配置ip设置成功"

    else
        echo "MySQL配置ip设置失败"

    fi


#重启MySQL
systemctl restart mysql.service
    if [ $? -eq 0 ]; then
        echo "MySQL.service重启成功"
    else
        echo "MySQL.service重启失败"
        exit
    fi


ss -tan |grep ${ip}:3306
    if [ $? -eq 0 ]; then
        echo "MySQL配置ip验证成功"
    else
        echo "MySQL配置ip验证失败"
        echo "请检查具体配置"
        exit
    fi


echo -e "$G==============进入MySQL定制阶段=============$W"

#设定MySQL登录信息
MYSQL_USER="root"
MYSQL_PASSWORD="123456"

#设定MySQL命令
MySQL_COMMANDS="
create database wordpress;
create user 'wordpresser'@'10.0.0.%' identified with mysql_native_password by '123456';
grant all on wordpress.* to 'wordpresser'@'10.0.0.%';
flush privileges;
"

#执行MySQL命令
mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" <<< "$MySQL_COMMANDS"



echo -e "$G==============安装博客系统=============$W"



mkdir /data/softs -p

wget -P /data/softs/ https://cn.wordpress.org/latest-zh_CN.zip
    if [ $? -eq 0 ]; then
        echo "博客系统安装包下载完成"
    else
        echo "博客系统安装包下载失败"
        exit
    fi


unzip -q /data/softs/latest-zh_CN.zip -d  /data/softs/
        if [ $? -eq 0 ]; then
                echo "安装包解压完成"
        else
                echo "安装包解压失败"
                exit
        fi

mv /data/softs/wordpress/* /var/www/html/blog.com/
        if [ $? -eq 0 ]; then
                echo "解压包转移完成"
        else
                echo "解压包转移失败"
                exit
        fi


chown -R www-data:www-data /var/www/html/blog.com
    if [ $? -eq 0 ]; then
        echo "属性定制完成"
    else
        echo "属性定制失败"
        exit
    fi



#清屏
clear

#结束语
echo -e "$P             至此,脚本之行已毕。                     $W"
read -t1
echo -e "$P    仿若一场幽梦初醒,诸般指令皆如仙履轻踏,有序而终。$W"
read -t1
echo -e "$P       望此脚本如良驹,能为君驱驰于数字之野;         $W"
read -t1
echo -e "$P           似灵舟,可载君遨游于信息之洋。             $W"
read -t1
echo -e "$P         他日若有新需,再启征程,共赴胜境             $W"
read -t1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注