网盘_游戏_博客自动化部署(Nginx多项目部署)

embedded/2024/11/14 5:01:04/

目录

一.前提介绍

二.环境介绍

三.自述(脚本)

四.关于Nginx多项目部署


一.前提介绍

在我之前的博客里详细介绍了上述项目的部署,那么如何使用简单脚本自动部署和使用Nginx多项目部署是本文来介绍的基础篇章。

二.环境介绍

CentOS Linux release 7.9.2009 (Core)

nginx version: nginx/1.24.0

5.5.68-MariaDB

PHP 7.1.33 

三.自述(脚本)

在无影响版本条件限制下本脚本都会运行成功,各版本会略有不同,原理都是相通的。

首先准备一个虚拟机,要求开启网卡,并可以ping通外网,例如可以ping通百度等。

脚本运行中,会提示让你输入你的静态ip,这里不明白的可以看下文,这里你使用远程工具链接的虚拟机最好输入当前ip作为静态ip的选择,避免执行时,断开连接,所以先记下自己的ip在后续中输入。若不配固定IP可在配固定ip那整快注释掉。

Vm ware虚拟机设置静态IP的方法_vmware虚拟机如何设置静态ip-CSDN博客

代码如下:

#!/bin/bash
# **********************************************************
# * Filename      : install.sh
# * Author        : Elk
# * Email         : zzdict@gmail / elk_deer@foxmail.com
# * Create time   : 2024-04-18 10:30
# * Description   : 选择一个初始话的虚拟机,启动网卡有网即可。
# **********************************************************
start_time=$(date +%s)echo "1.开始配置YUM源并安装基础包"
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache  > /dev/null 2>&1
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
yum install -y ntpdate vim lresz net-tools wegt tree psmisc bash-completion unzip epel-release  > /dev/null 2>&1
ntpdate time.windows.comecho "2.开始你的配置静态IP"
sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/' /etc/sysconfig/network-scripts/ifcfg-ens33
read -p "***请输入你的想设置的静态IP: " ip
read -p "***请输入你的子网掩码    : " ym
read -p "***请输入你的网关        : " wg
read -p "***请输入你的DNS1     : " dns1
cat >>/etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
IPADDR=$ip
PREFIX=$ym
GATEWAY=$wg
DNS1=$dns1
EOF
systemctl restart network
ifup ens33echo "3.在安装新版Nginx"
yum install yum-plugin-priorities -y > /dev/null 2>&1
cat >/etc/yum.repos.d/nginx.repo <<'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
priority=1
EOF
echo "3.1检查是否正确"
cat /etc/yum.repos.d/nginx.repo
yum install nginx -y > /dev/null 2>&1echo "4.使用我提供的php包安装php与相关插件"
rpm -e $(rpm -qa|grep php)
unzip -o php*.zip  > /dev/null 2>&1
yum localinstall *.rpm -y > /dev/null 
systemctl start php-fpm
systemctl enable php-fpm
echo "4.1开始检查当前PHP服务用户默认配置情况"
grep "apache" /etc/php-fpm.d/www.conf
sed -i 's#apache#nginx#g' /etc/php-fpm.d/www.conf
echo "4.2检查修改后情况如下:"
grep "nginx" /etc/php-fpm.d/www.confecho "5.安装数据库并进行配置"
yum install -y mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb
mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
mysql -u root -p1234 -e "CREATE DATABASE IF NOT EXISTS wordpress;"echo "6.1开始部署小霸王游戏"unzip -o html.zip -d /usr/share/nginx/  > /dev/null 2>&1systemctl start nginx
systemctl enable nginxecho "6.2解决游戏站点不能访问问题"
cat >/etc/nginx/conf.d/01_game.etiantian.org.conf<<'EOF' 
server {server_name game.etiantian.org;listen 80;root /usr/share/nginx/html;index index.html;
}
EOFsystemctl restart nginxecho "7.1开始部署网盘"cat >/etc/nginx/conf.d/pan.etiantian.org.conf<<'EOF' server {server_name pan.etiantian.org;  ## 临时域名。正式搭建需要购买域名。listen 80;                      ## 网页服务端口。root /data/pan;                 ## 程序存放目录。index index.php index.html;     ## 首页,网页总入口。##符合php扩展名结尾抛给PHP服务处理location ~ \.php$ {             ## 以.php结尾的程序发给PHP服务(9000)处理。fastcgi_pass   127.0.0.1:9000;  ##发给PHP服务处理。fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}}
EOFcat /etc/nginx/conf.d/pan.etiantian.org.conf
echo "7.2检查语法,正确标志是syntax is ok"nginx -t
systemctl restart nginxecho "7.3创建网盘站点目录"mkdir /data/pan -p
unzip -o k*.zip -d /data/pan  > /dev/null 2>&1echo "7.4授权【nginx用户】访问网盘/data/pan目录"chown -R nginx /data/pan;chmod -R 777 /data/pan/echo "8.1开始部署博客"cat >/etc/nginx/conf.d/03_blog.etiantian.org.conf<<'EOF'server {server_name blog.etiantian.org;  ## 博客域名配置。listen 80;                       ## 网站的端口。root /data/blog;                 ## 程序目录。index index.php index.html;      ## 首页文件。location ~ \.php$ {                  ## 以.php结尾的所有文件都发给PHP服务(9000)处理。     fastcgi_pass   127.0.0.1:9000;   ##把PHP程序抛给PHP服务处理。fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}}
EOFcat /etc/nginx/conf.d/03_blog.etiantian.org.conf
echo "8.2检查nginx配置语法,并重启nginx"
nginx -t
echo "成功标志 结尾successful"
systemctl restart nginx
echo "8.3创建博客目录并解压"
mkdir -p /data/blog
unzip -o wordpress*.zip -d /data/blog > /dev/null 2>&1
echo "8.4授权nginx服务和PHP服务得对应nginx用户管理博客目录/data/blog"
mv /data/blog/wordpress/* /data/blog/
chown -R nginx /data/blog/;chmod -R 777 /data/blog/echo "9.1开始部署博客新增主题"
unzip -o zhutibao.zip > /dev/null 2>&1
cd wordpress主题
unzip -o kratos-main.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o lolimeow-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o L-Talk-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o origami-master.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o sakura-3.x.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o Sakurairo.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
unzip -o Sakurairo-main.zip -d /data/blog/wp-content/themes/ > /dev/null 2>&1
cd end_time=$(date +%s)
execution_time=$((end_time - start_time))
clearcat <<EOF
执行耗时:$execution_time 秒,----, ,----,       ,----,                                      ,/   .\`| .'   .\`|     .'   .\`|    ,---,       ,---,  ,----..      ,\`   .'  : .'   .'   ;  .'   .'   ;  .'  .' \`\  ,\`--.' | /   /   \   ;    ;     / ,---, '    .',---, '    .',---.'     \ |   :  :|   :     :.'___,/    ,'  |   :     ./ |   :     ./ |   |  .\`\\  |:   |  '.   |  ;. /|    :     |   ;   | .'  /  ;   | .'  /  :   : |  '  ||   :  |.   ; /--\` ;    |.';  ;   \`---' /  ;   \`---' /  ;   |   ' '  ;  :'   '  ;;   | ;    \`----'  |  |   /  ;  /      /  ;  /    '   | ;  .  ||   |  ||   : |        '   :  ;   ;  /  /--,   ;  /  /--,  |   | :  |  ''   :  ;.   | '___     |   |  '   /  /  / .\`|  /  /  / .\`|  '   : | /  ; |   |  ''   ; : .'|    '   :  |   
./__;       :./__;       :  |   | '\` ,/  '   :  |'   | '/  :    ;   |.'    
|   :     .' |   :     .'   ;   :  .'    ;   |.' |   :    /     '---'      
;   |  .'    ;   |  .'      |   ,.'      '---'    \   \ .'                 
\`---'        \`---'          '---'                  \`---\`
EOFcat <<EOF
===========================================================================================
Successful!
数据库用户名:root
数据库密码:1234
请在你的Windows中用记事本管理员身份打开去编辑C:\Windows\System32\drivers\etc\hosts
这个路径文件新增如下内容,本机进行域名解析后再访问下述域名
$(hostname -I | awk '{print $1}') game.etiantian.org pan.etiantian.org blog.etiantian.orgEOF

注:在这里复制的去配置域名解析的要把 $(hostname -I | awk '{print $1}')替换成你的IP,这段在liunx中执行后就是显示的你的IP

脚本链接:https://pan.baidu.com/s/1U0MRxGmV_m3KrH-JiOJQEg?pwd=ewgb 
提取码:ewgb

四.关于Nginx多项目部署

我这个项目中是把游戏的html替换到nginx的html目录里,然后把博客和网盘的页面挂载到/data里,在data文件夹里分别放着博客的程序和网盘的程序。

在这之上,需要在/etc/nginx/conf.d目录(没有则新建)里挂载着三个项目的server如下图:

这是一个 Nginx 的服务器配置文件片段,它定义了一个服务器块(server block),用于处理来自于 blog.etiantian.org 域名的 HTTP 请求。

同理,在部署多项目时进行相同的原理,做一些引用路径的修改即可。 确保你的文件以 .conf 结尾,并且在修改后检查 Nginx 的配置文件以确保没有语法错误。完成后,重新加载 Nginx 配置使修改生效。

至此就结束啦。


http://www.ppmy.cn/embedded/7048.html

相关文章

Qwen1.5大语言模型微调实践

在人工智能领域&#xff0c;大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;的兴起和广泛应用&#xff0c;为自然语言处理&#xff08;NLP&#xff09;带来了前所未有的变革。Qwen1.5大语言模型作为其中的佼佼者&#xff0c;不仅拥有强大的语言生成和理…

基于R语言实现的负二项回归模型【理解与实现】-理解负二项回归模型和泊松回归模型之间的区别

前言 我们可以在R语言中使用MASS包中的glm.nb函数来拟合负二项模型&#xff0c;以及使用glm函数来拟合泊松模型。以下是一个详细的过程&#xff0c;包括模拟数据的生成、模型的拟合、结果的比较和解释。 需要的包 if (!require("MASS")) install.packages("M…

【数学建模】优劣解距离法Topsis模型(含MATLAB代码)

TOPSIS法&#xff0c;全称 Technique for Order Preference by Similarity to an Ideal Solution&#xff0c;是由C.L.Hwang和K.Yoon于1981年首次提出的 。这是一种多目标决策分析中常用的有效方法&#xff0c;也被称作优劣解距离法 。 TOPSIS法的基本原理是通过检测评价对象与…

asp.net core mvc 路由

在ASP.NET Core MVC中&#xff0c;路由是一项核心功能&#xff0c;它负责将进来的HTTP请求映射到相应的控制器和动作方法上。ASP.NET Core支持两种路由方式&#xff1a;传统的基于模板的路由&#xff08;约定路由&#xff09;和属性路由。 1. 基于约定的路由 在Startup.Confi…

简单了解 HTTP 基础知识

HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于在网络上传输数据的一种协议&#xff0c;对于网络开发人员来说&#xff0c;理解这一协议是至关重要的。由于其广泛的应用&#xff0c;除了在网页应用传输数据之外&#xff0c;它还被应…

Linux应用开发(8):Linux进程间通信(IPC):管道

Linux应用开发&#xff08;7&#xff09;&#xff1a;Linux进程间通信&#xff08;IPC&#xff09;&#xff1a;POSIX消息队列https://blog.csdn.net/tecsai/article/details/137879465 1. 简述 我们在前面已经介绍了进程间通信&#xff08;IPC&#xff09;常用的“消息队列”…

微服务分布式缓存:无法反序列化 Cannot deserialize;

问题描述 在拆分SpringBoot项目搭建微服务的过程中&#xff0c;需要配置分布式缓存&#xff0c;对redis进行配置&#xff0c;配置完成后&#xff0c;在启动Knife4j文档界面时报错&#xff0c;发现是redis无法反序列化的问题&#xff0c;但是报错中所指出的类com.jhin.jhinoj.m…

GO环境及入门案例

文章目录 简介一、win GO开发环境安装二、Linux go运行环境二、GO代码入门2.1 导包案例2.2 赋值2.3 变量、函数2.4 三方库使用 简介 go不是面向对象语言&#xff0c; 其指针、结构体等比较像C&#xff0c;知名的go 开源项目有docker k8s prometheus node-exporter等 一、win …