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

目录

一.前提介绍

二.环境介绍

三.自述(脚本)

四.关于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.mzph.cn/pingmian/2343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fawawf

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

【Linux】文件目录及路径表示

1. Linux目录结构 在 Linux 系统中&#xff0c;有几个目录是比较重要的&#xff0c;平时需要注意不要误删除或者随意更改内部文件。 /etc&#xff1a; 这个是系统中的配置文件&#xff0c;如果更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr…

java泛型介绍

Java 泛型是 JDK 5 引入的一个特性&#xff0c;它允许我们在定义类、接口和方法时使用类型参数&#xff0c;从而使代码更加灵活和类型安全。泛型的主要目的是在编译期提供类型参数&#xff0c;让程序员能够在编译期间就捕获类型错误&#xff0c;而不是在运行时才发现。这样做提…

小程序AI智能名片S2B2C商城系统:解锁内容深耕新境界,助力品牌企业高效定制内容策略

在数字化时代&#xff0c;内容营销已成为品牌企业获取市场份额、增强用户黏性的关键武器。然而&#xff0c;面对海量的互联网信息和复杂多样的社交媒体平台&#xff0c;如何有效地深耕内容&#xff0c;成为众多品牌企业面临的难题。 传统的内容分类与识别方式&#xff0c;往往依…

【数据分析面试】28. 20个Python问答题 (入门级考察:基础操作、数据处理与分析统计)

今天的20个问题考察了 Python 的基础能力&#xff0c;包括数据结构、基本操作、数据处理、数据分析和统计等方面。无论是从事数据分析、机器学习还是其他数据相关工作&#xff0c;这些都是必不可少的基础技能。 数据结构与基础操作&#xff1a; 什么是 Pandas 库&#xff1f;它…

中兴5G随身wifi怎么样?中兴5G随身wifiVS格行5G随身wifi对比测评!公认最好的随身WiFi的格行随身WiFi真实测评!随身WiFi哪个品牌好?

随着各大品牌5G随身wifi的横空出世&#xff0c;其中中兴和格行5G随身wifi的呼声越来越高&#xff0c;那么性能上谁更胜一筹&#xff1f;套餐费用谁更亲民&#xff1f;售后保障谁更到位&#xff1f;今天就来一个全方位测评对比&#xff01; 一&#xff0c;首先是设备的整体外观&…

uniapp:小白1分钟学会使用webSocket(可无脑复制)

uni.connectSocket() uni.$emit页面通信 项目中使用uni.connectSocket()创建webSocket的总结&#xff0c;代码可无脑复制&#xff0c;直接使用。 1、main.js 引入vuex import store from ./store; Vue.prototype.$store store;vuex中封装webSocket 2、vuex的&#xff1a;index…

linux autogroup

一&#xff1a;概述 对于linux autogroup的作用&#xff0c;很多同学可能是听说过&#xff0c;但&#xff0c;并未验证过。 考虑下面场景&#xff0c;开两个terminal&#xff0c;T1和T2&#xff0c;在T1中运行进程P1&#xff0c;P1开启9个线程编译代码&#xff0c;在T2中运行…

yield函数怎么理解?

目录 白话系列&#xff1a; 例子&#x1f330;&#xff1a; 什么叫暂停 yield和next搭配使用 例子&#x1f330;&#xff1a; 白话系列&#xff1a; 可以暂停&#xff0c;可以生成&#xff0c;next一个&#xff0c;yield一个 例子&#x1f330;&#xff1a; def generat…

CUDA线程管理

核函数在主机端启动时&#xff0c;执行会转移到设备上&#xff0c;并且将控制权转移回主机。当核函数在GPU上运行时&#xff0c;主机可以运行其他函数。因此&#xff0c;主机与核函数是异步的。 此时&#xff0c;设备端也就是GPU上会产生大量的线程&#xff0c;并且每个线程都…

(七)小案例银行家应用程序-申请贷款-some方法和every方法

some方法 ● 我们先回顾一下includes方法 console.log(movements.includes(-130));只要数组中存在-130这个值&#xff0c;就会返回true&#xff0c;否则就会返回flase ● 而some方法只要达成某一个条件就会返回true&#xff0c;否则就返回flase const someMethod movement…

stm32开发之threadx之modulex模块文件的生成脚本项目

前言 为了保证在window上运行&#xff0c;且体积小的问题&#xff0c;所以采用c语言编写生成脚本,将相关路径由json文件进行配置,使用了一个cjson库进行解析项目构建使用的是cmake 项目代码 CMakeLists文件 cmake_minimum_required(VERSION 3.27) project(txm_bat_script C…

Day13-Java进阶-IO字节流及其练习题

1. IO流介绍 2. IO 流体系结构 字节流读取纯文本文件会出现乱码问题 2.1 FileOutputStream 字节输出流 package com.itheima.stream.output;import java.io.FileOutputStream; import java.io.IOException;public class FileOutputStreamDemo3 {/*IO流的异常处理方式: jdk7版本…

socket编程——tcp

在我这篇博客&#xff1a;网络——socket编程中介绍了关于socket编程的一些必要的知识&#xff0c;以及介绍了使用套接字在udp协议下如何通信&#xff0c;这篇博客中&#xff0c;我将会介绍如何使用套接字以及tcp协议进行网络通信。 1. 前置准备 在进行编写代码之前&#xff…

C语言学习/复习30--结构体的声明/初始化/typedef改名/内存对齐大小计算

一、自定义数据类型 二、结构体 1.结构体的定义&#xff08;与数组相对比&#xff09; 2.结构体全局/局部变量的定义 3.typedef对结构体改名 4.匿名结构体类型的声明 注意事项1&#xff1a; 匿名后必须立即创建结构体变量 、 5.结构体与链表节点定义 注意事项1&…

Datawhale ChatGPT基础科普

根据课程GitHub - datawhalechina/hugging-llm: HuggingLLM, Hugging Future. 摘写自己不懂得一些地方&#xff0c;具体可以再到以上项目地址 LM&#xff1a;这是ChatGPT的基石的基石。 Transformer&#xff1a;这是ChatGPT的基石&#xff0c;准确来说它的一部分是基石。 G…

nodejs工具模块学习

util 是一个Node.js 核心模块&#xff0c;提供常用函数的集合&#xff1b; util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换 为字符串的方法&#xff0c;通常用于调试和错误输出&#xff1b; 如果只有一个参数 object&#xff0c;是要转换的对象&…

英伟达AI系列免费公开课

英伟达公开课官网地址 Augment your LLM Using Retrieval Augmented Generation Building RAG Agents with LLMs langchain的workflow: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c90cb157c9c84bb5b3da380ec56f5c2a.png Generative AI Explained

函数的使用

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面已经介绍了函数的创建以及调用&#xff0c;下面就通过范例学习函数的使用 创建一个函数&#xff0c;如果是偶数则计算其平方&#xff0c;如果是奇数则计算其平方根 分…

如何在 Flutter 中制作多种颜色的 TextField

TextField widget 本身并不施加任何样式。相反&#xff0c;它会要求 TextEditingController 生成一个样式化的 TextSpan 对象&#xff0c;即一段带有样式的文本。 TextField 将其样式传递给 TextEditingController &#xff0c;默认实现只是将其放入 TextSpan 对象中&#xff0…