├── .nojekyll
├── README.md
├── _coverpage.md
├── _sidebar.md
├── dic.md
├── favicon.ico
├── index.html
├── link.md
└── tutorial
├── README.md
├── _sidebar.md
├── course1.md
├── course2.md
├── course3.md
├── course4.md
├── course5.md
├── course6.md
├── course7.md
└── course8.md
/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ImoutoTech/tutorial/c5b59deeebd813ab7b564a57b5a35445bbc928ed/.nojekyll
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Hi,这里是**博客新手村**,在这里你可以学习到从概念到操作的一系列博客搭建教程。教程是零基础的,但是不是说就随便看看就完事了,也还是希望能尽量仔细地从头看一遍。这样一来,你不仅习得了建站的技术,也学会了其背后的一些原理。
2 |
3 | 那么开始学习吧。
4 |
5 |
6 | ### 第一部分-理论篇
7 |
8 | 1. [写在前面](/tutorial/)
9 | 2. [关于博客系统于运行环境](/tutorial/course1)
10 | 3. [你的网站是怎么被访问的](/tutorial/course2)
11 |
12 | ### 第二部分-VPS实操篇
13 |
14 | 1. [Linux火速上手](/tutorial/course4)
15 | 2. [为你的VPS配置网站环境(宝塔篇)](/tutorial/course3)
16 | 3. [为你的VPS配置网站环境(Oneinstack篇)](/tutorial/course5)
17 | 4. [在你的VPS配置你的网站](/tutorial/course6)
18 | 5. [安装博客程序](/tutorial/course7)
19 |
20 |
21 | ### 第三部分-虚拟主机实操篇
22 |
23 | 1. [EasyPanel面板火速上手](/tutorial/course8)
24 | 2. 在虚拟主机中搭建网站
25 | 3. 虚拟主机的其他功能
26 |
27 | ### 第四部分
28 |
29 |
30 | 待补充..
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/_coverpage.md:
--------------------------------------------------------------------------------
1 |
2 | # 博客新手村QwQ
3 |
4 | > 为博客新手准备的系列教程
5 |
6 | [GitHub](https://github.com/ImoutoTech/tutorial)
7 | [开始吧!](#main)
8 |
9 | 
--------------------------------------------------------------------------------
/_sidebar.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | * [首页](/)
4 | * [教程](/tutorial/)
5 | * [小白词典](/dic)
6 | * [相关链接](/link)
--------------------------------------------------------------------------------
/dic.md:
--------------------------------------------------------------------------------
1 | 这里是一些圈内用语的小白解释QWQ ,善用`ctrl`+`F`
2 |
3 | ### 词典
4 |
5 | | 原词 | 解释 |
6 | | -------------- | ------------------------------------------------------------ |
7 | | 玉米 | 域名 |
8 | | 良心云 | 腾讯云 |
9 | | 套路云 | 阿里云 |
10 | | IDC | 互联网数据中心,一般指卖服务器,VPS的商家 |
11 | | affman | 一般的IDC会有拉人返利的机制(aff),而有些人以此获利被称为affman,一般为贬义词 |
12 | | (小)鸡 | (配置比较低的)服务器,VPS |
13 | | DD | 通过无人监控脚本安装windows |
14 | | DDOS | 分布式拒绝服务攻击,一种服务器的攻击手段 |
15 | | 母鸡 | 独立服务器 |
16 | | 探针 | 一种可以查看vps的各项参数性能的程序,多为PHP |
17 | | 大水管,小水管 | 指服务器带宽大小 |
18 | | | |
19 | | | |
20 | | | |
21 | | | |
22 | | | |
23 | | | |
24 | | | |
25 | | | |
26 |
27 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ImoutoTech/tutorial/c5b59deeebd813ab7b564a57b5a35445bbc928ed/favicon.ico
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 博客新手村
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 | NPC赶路中
19 |
20 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/link.md:
--------------------------------------------------------------------------------
1 | ### IMOUTO TECH相关
2 | [GITHUB主页](https://github.com/ImoutoTech)
3 |
4 | ### 优秀的博客项目
5 | [个站商店](https://storeweb.cn)
6 | [Travelling](https://github.com/volfclub/travellings)
--------------------------------------------------------------------------------
/tutorial/README.md:
--------------------------------------------------------------------------------
1 | ### 何为博客
2 |
3 | 博客似乎已经成为了一个过时的上世纪上世纪产物,正在渐渐走出人们的视野。现在越来越少人知道博客的存在,更别说了解。再加上微博等更加方便快捷的快节奏平台的出现,博客的群地位在持续下降。
4 |
5 | > 同学:“诶诶,听说你是做网站的欸,好厉害,做的是啥网站?”
6 | >
7 | > 我:“啊...我就写写博客这样子的。”
8 | >
9 | > 同学:“欸?博客?那是啥?是大一点的微博吗?”
10 |
11 | 以上对话对于我来说貌似已经习以为常了。
12 |
13 | 所幸的是,并不是博客界就没有新鲜血液了。凭借着一些优秀博客给人们留下的印象及博客本身的魅力,我还是能经常看到新生博客在不断冒出。但问题也应运而生,由于博客主的群体中还是编程及互联网小白居多,所以经常会出现一些共性问题,这也是博客新手村成立的原因。
14 |
15 | 说回博客本身,在我看来,博客是一种载体,承载着我的不同阶段的思想与情感。每当我回看自己的文章时,都会有不一样的感觉。或是喜或是悲。但不可置否的是,这些被博客记录下的情感在我成长的过程中具有或多或少的促进作用。他们是非常具有纪念价值的,不论过了多久,我都希望他们能一直保留着。而博客本身的存在指明了这些东西不只是给我自己看的,是我与路人们,与好友们一同分享的情感。所以我更愿意将其视为一种桥梁,一种纽带,将大家的情感连接在了一起。我会因为友链的朋友遇到好事而感到开心,也会因为他们有时的不走运而感到失落。这正是博客的意义。
16 |
17 |
18 |
19 | ### 阶段与分类与内容
20 |
21 | 可能大多数人在接触博客时会经历这些阶段。
22 |
23 | 1. 第一层,被博客高自由度与各种好看的主题与特效吸引。花费大量时间于此,相应的,其博客中文章也大部分为这些内容。
24 | 2. 第二层,发觉网站的外观是有极限的,博客实质性的内容果然还是重要一些。
25 | 3. 第三层,内容为王。
26 |
27 | ~~啥?你说你不是?难道只有我这样吗?~~
28 |
29 | 而在此过程中,就会出现各种分类。有些博主开始仔细钻研网站的技术及代码层面,文章也从入门的小白发展为更加专业的理解。也有些博主则开始分享自己的所思所想,生活体验等。而有些杂食性的博主秉承着“我全都要”的理念将两者有机融合,也是非常好的。给博客分类不是说有个谁上谁下的区分,这些博客都毫无疑问地为博客圈做出了贡献。没有好的样式,内容再好也要降低一些印象分;没有好的内容,再好的样式也失去了灵魂。只是看君如何选择吧。
30 |
31 |
32 |
33 | ### 关于评论
34 |
35 | 前文也有谈到交流的问题,而交流的基础应该就是博客的评论功能。~~什么?你说你们能通过文字间的某种羁绊进行念力交流?~~而交流也正是初期能使你坚持继续写作的重要因素之一。~~什么?你不在乎?~~
36 |
37 | 当你写完一篇千字长文发到博客上时,我想你此时希望得到的是网友们的热心交流。例如,根据文章内容引发的思考及建设性建议,一些合适的梗与玩笑等。这样既能使你有满足感,也能使你更有动力。所以当你评论他人时,也要将心比心,这样才能相互促进,共同成长。
38 |
39 |
40 |
41 | 那么我的下一篇文章就要正式开始更新教学内容啦。欢迎留言!
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/tutorial/_sidebar.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | * [写在前面](/tutorial/)
4 | * [关于博客系统与运行环境](/tutorial/course1)
5 | * [你的博客是怎样被访问的?](/tutorial/course2)
6 | * [为你的VPS配置网站环境(宝塔篇)](/tutorial/course3)
7 | * [Linux火速上手](/tutorial/course4)
8 | * [为你的VPS配置网站环境(Oneinstack篇)](/tutorial/course5)
9 | * [在你的VPS上配置你的网站](/tutorial/course6)
10 | * [安装博客程序](/tutorial/course7)
11 | * [EasyPanel面板火速上手](/tutorial/course8)
12 |
--------------------------------------------------------------------------------
/tutorial/course1.md:
--------------------------------------------------------------------------------
1 | 一个博客肯定要放在大家都看得见的地方——网上。那么我们就有很多选择方式了。这篇文章给大家介绍一下如何在网络上建立起一个属于自己的博客,一个属于自己的小窝。
2 |
3 | ### 基础知识
4 |
5 | 自建博客就需要用到博客系统了。这里介绍几种常见的博客系统,例如[Wordpress](https://cn.wordpress.org/),[Typecho](http://typecho.org),[HEXO](https://hexo.io/),[ Jekyll](https://jekyllcn.com/),[Solo](https://solo.b3log.org/),[Emlog](http://www.emlog.net/)
6 |
7 | 我们不妨将博客按照语言分个类。
8 |
9 | - PHP类 (Wordpress , Typecho , Emlog)
10 | - 静态类 (HEXO , Solo)
11 | - JAVA类 (Solo)
12 | - 其他语言...
13 |
14 | 首先我们需要了解一个常识。**相应类别的博客系统需要在相应的语言环境下运行**。当然这里的语言环境不是指中文、英文什么的,是指编程语言。什么意思呢?就比如Typecho,他是一个基于PHP的博客系统,那么你就需要在对应的PHP环境下才能运行它。一样的,Solo作为一个基于Java的博客系统,自然需要在Java环境中运行。值得一提的是,静态类是不需要任何语言环境的。
15 |
16 | 
17 |
18 | 我们还可以按照 动态/静态 为博客系统分个类。
19 |
20 | **动态博客**指需要依托各类语言环境来运行的,其内容并不是固定的而是可变的。这类博客通常包括完整的后台系统,方便使用。而静态恰恰相反,它不需要任何环境~~(咦?好耳熟)~~,主要依靠一种名为`生成器`的程序,将你的原始文章渲染成`.html`文件,再上传至服务器。其内容大多是固定的,写死的。且一般无后台,也没有自带的评论系统。对新手较不友好。
21 |
22 | 那么我们怎么判断一个博客系统需要什么环境呢?很简单,你在哪里下载的就在哪里找,或者直接百度其官网查看信息。或者通过观察文件后缀来判断基于哪种语言。举个栗子,PHP对应的文件后缀为`.php`,Java对应的则为`.java`,而静态类的呢则为`.html`。
23 |
24 | ### 运行环境
25 |
26 | 说完博客系统再来谈谈运行环境。主要有两大类运行环境
27 |
28 | - 服务器
29 | - 虚拟主机
30 |
31 | 服务器可细分为独立服务器和VPS等,这一类机子就像是一台放在云端的电脑,你拥有极高的自由度及操作权限,而其环境也相对原始,一般为Linux系统。我们在这类主机上安装博客时需要安装一系列支持博客运行的软件(Nginx,Apache等 / PHP,JAVA等),这样我们才能将我们的博客安放于此。而虚拟主机就方便得多,不需要你自己安装上述软件,直接在虚拟主机的面板上操作即可,非常的简单。但是相对的,虚拟主机的功能也会受限,一般来说虚拟主机是只能够运行网站程序的,且不能像服务器一样随心所欲地操控机器。
32 |
33 | 是不是有点枯燥乏味听不懂?打个比方吧,服务器就像是一个毛坯房,没有任何装修,这个时候你就需要自己去刷油漆,摆家具等,也就是安装软件的过程。而虚拟主机则像是一个精装的房子,什么都帮你搞好了,但是分给你的只有一个小房间。这就是它们的区别。
34 |
35 | 是不是听出来什么?没错,其实两者本质上都是一间房子,也就是说虚拟主机实际上也是基于服务器的。下面给张图感受一下
36 |
37 | 
38 |
39 | 两者的区别还体现在了价格上。虚拟主机的价格大多在0~20元/月,而VPS和独立服务器则在以二三十起步,上不封顶的价位。所以各位想安心做博客的话还是比较建议买虚拟主机吧。
40 |
41 |
42 |
43 | 以上就是本节内容,欢迎在评论区留言讨论!
44 |
45 |
--------------------------------------------------------------------------------
/tutorial/course2.md:
--------------------------------------------------------------------------------
1 | 现在你已经知道了你的博客是放在什么地方的,基于什么运行的。那么接下来再看看读者包括你自己是如何访问到你的网站的。先来一张简略的图片:
2 |
3 | 
4 |
5 | 由图可知,用户要做的只需要输入域名就完事了。那么域名是什么呢?
6 |
7 | ### 域名是什么呢?
8 |
9 | > **域名**(英语:**Domain Name**),又称**网域**,是由一串用点分隔的名字组成的[Internet](https://baike.baidu.com/item/Internet)上某一台[计算机](https://baike.baidu.com/item/计算机/140338)或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
10 | >
11 | > 由于[IP地址](https://baike.baidu.com/item/IP地址/150859)具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统([DNS](https://baike.baidu.com/item/DNS),Domain Name System)来将域名和[IP地址](https://baike.baidu.com/item/IP地址)相互[映射](https://baike.baidu.com/item/映射/20402621),使人更方便地访问[互联网](https://baike.baidu.com/item/互联网/199186),而不用去记住能够被机器直接读取的[IP地址](https://baike.baidu.com/item/IP地址)数串。
12 |
13 | 是不是头都大了,我也大了。举个栗子,`baidu.com`就是百度的域名,`taobao.com`就是淘宝的域名。基本上形如`ab.cd`的就是域名了,我们也称之为一级域名。其一般分为两段,用`.`划分。前一段`ab`可以根据我们的喜好自己随意注册,当然也要符合一定的规则而且先前没有人注册过。后一段`cd`则是固定的,你可以在众多后缀中挑选一个自己喜欢的。一般我们可以选择`.com`这种国际化的通用域名,也可以使用`.cn`这类国别域名。
14 |
15 | ### 域名的作用是啥
16 |
17 | 正如引用所说,域名的出现解决了IP地址等东东干涩难记的痛点。假设现在我们有了一台服务器,上面有你的博客。但是现在别人想要访问你的博客只能直接访问你的服务器IP,很麻烦。但是你又刚好买了一个域名并且把它解析到了你的服务器。那别人想访问你的博客直接就输入域名就好了。所以我们搭建自己的博客的时候也要注意域名的问题。毕竟域名也是博客一张名片,尽量有特色,或者简单鲜明。最好不要让别人输一大串意义不明的英文字符来访问你的博客。
18 |
19 | 
20 |
21 | ### 那么我们可以去哪里购买域名呢?
22 |
23 | 我们可以选择国内或者国外的厂家。国内的以阿里,腾讯为代表;国外厂家以狗爹godaddy为代表。两者各有各的优劣。国内商家的域名相对便宜且天天做活动。国外商家域名可选择的比较多。还有一点,国外商家注册的域名不需要**实名认证**,而国内大多数商家都需要**实名认证**。
24 |
25 | 
26 |
27 |
28 |
29 | 那么,去购置一个你的域名吧!在这之后,博客的搭建的物资准备就完成啦!下一篇将开始搭建属于你的博客。
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/tutorial/course3.md:
--------------------------------------------------------------------------------
1 | 之前的教程中,我们把VPS类比成毛胚房,要想让我们的博客“住”进去,还得家具,装修。而家具就是运行环境了。我们首先来搞明白,我们要安装什么,以及为什么要安装它们。
2 |
3 | 从第一节课中我们知道,博客系统的运行是基于一定的语言环境的,所以我们需要安装网站的**语言环境**,例如`PHP`。而大多数博客的数据是储存在数据库中的,意味着我们需要安装**数据库**软件,例如`MYSQL`。那么到现在博客的运行是没有问题了,但是想要让人们能访问它,我们还得安装一个**WEB服务器**,例如Nginx。这就是一般个人网站环境的“三大件”。
4 |
5 | 然而,我们一个个手动安装的话,不仅耗时费心,还容易踩坑出错。好在有免费的外包公司,免去了我们的麻烦。而今天的主角就是外包公司的其中之一——宝塔面板。
6 |
7 | ### 安装宝塔
8 |
9 | 宝塔的安装十分方便。首先用SSH连接上你的服务器,在[宝塔安装说明](https://bt.cn/bbs/thread-19376-1-1.html)处找到你对应的系统,获得安装指令,复制到你的服务器执行即可。
10 |
11 | 
12 |
13 | 例如我的服务器系统为debian9,那么将debian对应的命令复制去服务器执行,不过记得先新建一个窗口先,避免中途掉线。
14 |
15 | ```bash
16 | screen -S bt
17 | wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
18 | ```
19 |
20 | 
21 |
22 | 按下回车,剩下来的就等他自己慢慢运行了。安装的速度是根据服务器性能决定的,通常不会太久。一般等个个把分钟就好了。安装完成后会得到面板信息
23 |
24 | ```bash
25 | Bt-Panel: http://服务器IP:8888/079cd700
26 | username: k4fdgams
27 | password: 4f0708cc
28 | If you cannot access the panel,
29 | release the following panel port [8888] in the security group
30 | 若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
31 | ```
32 |
33 | 接下来按照所给的地址与用户名密码登录面板即可。
34 |
35 | 
36 |
37 | 第一次登录时会建议你安装一些套件,这里有两个选择无非是WEB服务器的区别。而至于两者的区别,不用过于探究,毕竟在我们这个访问量来说是没什么去别的。哪个顺眼就使哪个吧。如果要细究两者的区别的话,可以看看这个[提问](https://www.zhihu.com/question/19571087/answer/12313829)。
38 |
39 | 之后呢,宝塔就会自动帮我们安装辣,我们可以通过面板左上角的通知气泡来查看安装情况。
40 |
41 | 
42 |
43 | 当任务列表提示“无任务”之后,就安装完啦。
44 |
45 | 
46 |
47 |
48 |
49 | 至此,网站环境的安装就大功告成,下一节就开始配置网站!
--------------------------------------------------------------------------------
/tutorial/course4.md:
--------------------------------------------------------------------------------
1 | > 使用虚拟主机的玩家可以跳过这一章节
2 |
3 | 在搭建网站之前,我们需要知道的是,目前大多数的服务器都是使用Linux系统。简单理解一下Linux是什么,Linux就是一种没有桌面的系统(还是个别版本会有),我们一般只能通过输入命令来使用它。它相比于Windows在服务器上的优势是,它系统本身占用的资源非常少,一个1h512mb的Linux服务器可以妥妥地运行几个网站;然而同等配置的Windows服务器系统自己可能就占了大部分内存资源,这是十分不划算的。这使得Linux在服务器领域相当吃香(原因远不仅如此)。
4 |
5 |
6 |
7 | 这将是我们以后经常要打交道的东西,所以我们还是要尽量掌握它,毕竟它也不难。首先,我们需要连接上你的服务器
8 |
9 | ### 工具
10 |
11 | 工欲善其事,必先利其器。我们一般通过`SSH协议`与我们的服务器进行连接,而SSH需要一些软件支持。例如`XShell`,`FinalShell`。这里我将使用`XShell`来进行教学。各个SSH软件的使用方法都是大同小异的,无需担心。
12 |
13 | 打开XShell,可以看到如下界面
14 |
15 | 
16 |
17 | 这个时候我们点击左上角的文件夹(📂)图标,`新建连接`(会话),可以看到如下界面。
18 |
19 | 
20 |
21 | 这里可以按照以下指示填写
22 |
23 | > 名称 -> 随便起名
24 | >
25 | > 协议 -> 默认SSH
26 | >
27 | > 主机 -> 你的服务器IP地址
28 | >
29 | > 端口号 -> 默认22
30 | >
31 | > 说明 -> 随意,可留空
32 |
33 | 接下来再点击左侧树状栏的`用户身份验证`一项,填写你的用户名(一般为`root`)与密码
34 |
35 | 
36 |
37 | 再点击连接即可,期间可能会弹出关于**主机密钥**的弹窗,点击“一次性保存”即可。连接之后,就可以看到一个跳动的光标在等着你辣。
38 |
39 | 
40 |
41 | ### 界面
42 |
43 | 没错,这就是你的操作空间,枯燥而乏味的命令行。当然,不同的Linux版本在界面方面会有些许不同。但大体是一样的,不必担心作者使用的Linux版本与你不一样而引发一些问题。如果有区别的话,我在文中指出的。
44 |
45 |
46 |
47 | ### 基本指令
48 |
49 | #### ls指令
50 |
51 | 功能:列出当前目录下的内容
52 |
53 | 
54 |
55 | #### cd指令
56 |
57 | 功能:前往指定目录。
58 |
59 | 这里有一些指定写法在这里列举一下。
60 |
61 | ```bash
62 | #格式
63 | #cd+空格+(绝对路径/相对路径)
64 |
65 | #返回上一级
66 | cd ..
67 |
68 | #返回上一级的某一文件夹(假设为home)
69 | cd ../home
70 |
71 | #返回根目录
72 | cd /
73 |
74 | #前往指定路径
75 | cd /home/soft/xxx
76 | ```
77 |
78 | 从上面的例子可以知道两个英文的点(`..`)就是上一级。什么是绝对路径呢?绝对路径就是从你的服务器根目录到指定文件夹的路径,相对应的,相对路径就是目标文件夹相对于你当前所处位置的路径。打个比方,现在有三个文件夹ABC。其中C文件位于B文件夹中,而B文件夹位于A文件夹中。而**A直接处于根目录中**。
79 |
80 | 
81 |
82 | **我们现在处于A文件夹**,我们想要到达文件夹C有几种方式呢?
83 |
84 | ```shell
85 | #方法一:绝对路径
86 | cd /A/B/C
87 |
88 | #方法二:相对路径
89 | cd B/C
90 | ```
91 |
92 | 聪明的你应该发现了,一般绝对路径是以`/`起头的,而相对路径则没有。
93 |
94 | 再举个例子,**假设我们现在处于C文件夹中**,我们想要到达文件夹A有几种方法呢?
95 |
96 | ```shell
97 | #方法一:绝对路径
98 | cd /A
99 |
100 | #方法二:相对路径
101 | cd ../..
102 | ```
103 |
104 | 欸嘿!是不是很神奇。
105 |
106 |
107 |
108 | #### mkdir指令
109 |
110 | 功能:建立文件夹
111 |
112 | ```shell
113 | #在当前目录建立hi文件夹
114 | mkdir hi
115 |
116 | #在指定路径(/root/jojo)建立文件夹(jostar)
117 | mkdir /root/jojo/jostar
118 | ```
119 |
120 |
121 |
122 | #### 其他常用指令
123 |
124 | 因为网上有比较完善的教程了,我就不重复写了,这里[贴出来](https://www.runoob.com/linux/linux-command-manual.html)可以去看一下。不用掌握太多,但至少掌握[`cp`](https://www.runoob.com/linux/linux-comm-cp.html),[`mv`](https://www.runoob.com/linux/linux-comm-mv.html),[`zip`](https://www.runoob.com/linux/linux-comm-zip.html),[`vi`](https://www.runoob.com/linux/linux-vim.html),`wget`,[`rm`](https://www.runoob.com/linux/linux-comm-rm.html)指令。
125 |
126 | ~~我才不是偷懒呢~~
127 |
128 |
129 |
130 | ### 附加课
131 |
132 | 有些时候我们常常会因为某些原因被迫突然与服务器中断连接。如果当时我们正在安装某程序或者编译一些东西的时候,该进程就会被打断,直接莫得了,这是非常难受的。再例如有些时候安装一个网站环境可能要个把钟,我们需要让他自己在后台跑怎么办呢?
133 |
134 | 当当当,隆重介绍`screen`
135 |
136 | 我们可以使用`screen -S 会话名`指令来新建一个窗口。当我们想让他后台运行时按`ctrl+a+d`即可返回原始窗口。当我们想看看进程时,可以使用`screen -r 会话名`重新连接回去。
137 |
138 | 使用场景:中午11:30,网络条件不好的王花花同学连上了服务器,打算搭建一下网站环境
139 |
140 | ```shell
141 | #首先新建一个窗口(install)
142 | screen -S install
143 |
144 | #开始搭建
145 | ...
146 |
147 | #牙白!这个时候网断了,王花花同学切换成了5G重新连接服务器,并重新访问install窗口
148 | screen -r install
149 |
150 | #还在默默安装...
151 | ...
152 |
153 | #喜玛达!要吃饭了,王花花同学主动断开连接,程序转为后台运行
154 | `ctrl+a+d`
155 | ```
156 |
157 | 由此可见,screen确实是十分的方便。不过有些用户可能会出现提示`command not found`提示,这是因为系统本身没有自带screen功能。那就需要我们自己安装了。
158 |
159 | ```shell
160 | #centos执行
161 | yum install screen
162 |
163 | #debian执行
164 | apt-get install screen
165 | ```
166 |
167 |
168 |
169 | ### 结束
170 |
171 | 至此,相信你已经能稍微使用一下Linux系统了,刚开始上手可能会有些不适应,但是一定要多加练习,迎难而上,这样你的问题很快就能解决了。
172 |
173 |
174 |
175 |
--------------------------------------------------------------------------------
/tutorial/course5.md:
--------------------------------------------------------------------------------
1 | [Oneinstack](https://oneinstack.com/)是一种懒人式的web环境一键安装脚本,与此类似的呢还有[lnmp](https://lnmp.org/),[lamp](https://lamp.sh/)等。那么它们与宝塔这类面板的区别主要就在于这类一键安装包没有WEB的后台界面,主要是靠我们直接通过命令行来操作。不过它们也因此更加的轻量,便捷。
2 |
3 | 那么我们如何安装及使用呢?
4 |
5 | ### 安装
6 |
7 | 首先我们来到oneinstack的官网 https://oneinstack.com 。在上方的导航栏中我们选中自动安装。
8 |
9 | 
10 |
11 | 这里可能大家会看得有点眼花缭乱了。但是我们不用担心,直接复制安装指令即可。如果你想再详细了解一下可以看一下下面的说明。
12 |
13 | 我们之前提到过,WEB环境主要由WEB服务器,语言环境和数据库组成,对应图中的`nginx`,`PHP`,`数据库`。也就是说这三个我们是必须安装的,而PHP这里呢又有个`PHP拓展`的选项。这个主要是通过给PHP安装一些拓展来使它能够实现更多功能,例如`imagick`可以让PHP进行图片编辑的操作。一般来说呢,我们搭建博客是不需要什么PHP拓展的,所以我们基本上不用关这些配置什么的。对于需要几个PHP这个问题呢,对于一般用户来说一个PHP环境足矣,版本呢建议就在7.2以上吧。
14 |
15 | 数据库这边,因为博主涉猎不深,对此没有太大的理解,所以就不发表意见了。不过一般来说安装`mysql`是适用性最广的,可以放心安装。
16 |
17 | 再看到下面的一小排选择框,这里呢需要给大家一一解释一下。
18 |
19 | > #### Pure-FTPd
20 | >
21 | > 这个用于搭建FTP服务器,让用户可以通过FTP协议链接服务器进行文件管理。其多用户系统可以非常好的划分每一位用户可浏览的目录,不会相互干扰。
22 | >
23 | > 使用场景:多人共用一台服务器时可以使用,例如虚拟主机。
24 | >
25 | > #### phpMyAdmin
26 | >
27 | > 神器级别的数据库管理系统。由于数据库一般是通过代码行直接操作,需要学习~~大量的~~一些指令,而phpMyAdmin简化了这一过程,为我们提供了可视化的界面,从此数据库不再是烦恼。
28 | >
29 | > 使用场景:都可
30 | >
31 | > #### redis
32 | >
33 | > Redis 是一个高性能的key-value数据库,博客基本用不上,不过可能会有一些插件支持,所以还是可以勾上的。
34 | >
35 | > #### memcached
36 | >
37 | > memcached是一套分布式的快取系统,与redis相似。
38 | >
39 | > #### HHVM
40 | >
41 | > 基本没啥用。
42 | >
43 | > #### iptables
44 | >
45 | > “防火墙”,更多解释可以看一下[朱双印](http://www.zsythink.net/archives/1199)大佬的博文。
46 |
47 |
48 |
49 | 到这里就基本解释完了。**总结**,一般的博主们不需要配置什么东西,直接到下面复制安装指令即可。
50 |
51 | 那么现在去安装吧。
52 |
53 | 打开XSHELL,连接服务器。将复制好的安装指令粘上去执行,铁汁们,我这么做对吗?虽然没错,但是是不是少了点什么?对了!我们之前讲到过,为了防止各种突发情况,我们需要Screen来保证安装过程顺利进行。
54 |
55 | ```shell
56 | #首先
57 | screen -S oneinstack
58 |
59 | #执行安装指令
60 | wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --php_option 7 --phpcache_option 1 --phpmyadmin --db_option 2 --dbinstallmethod 1 --dbrootpwd oneinstack --pureftpd --redis --memcached --reboot
61 | ```
62 |
63 | 接下来呢就可以关闭XSHELL,边喝茶边看书慢慢等即可。
64 |
65 | 过了一段时间之后,我们重新连接服务器。我们可以使用`screen -r oneinstack`指令重新连接回去。如果这个时候还在满屏刷一些不知道什么的鬼东西,而且还刷个不停,就是还在安装,再多等会就好。安装时间与服务器性能是挂钩的,机器越好,装得越快。
66 |
67 | 有过了一段时间再次连接回去,使用`screen -r oneinstack`时,却提示`There is no screen to be resumed matching oneinstack.`
68 |
69 | 
70 |
71 | 那么恭喜,终于安装完啦!这个时候去浏览器,直接访问你服务器的ip地址试试看。
72 |
73 | 
74 |
75 | 这里时oneinstack的引导页面,通过侧边栏的这些教学,你可以学习一下如何添加网站,如何自动备份等。那么,网站环境的安装到这里就结束啦!下节课开始就是网站的新建与安装咯。
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/tutorial/course6.md:
--------------------------------------------------------------------------------
1 | 前面我们已经搭建好了网站运行环境,那么现在我们就可以新建我们的网站啦。
2 |
3 | ### 域名解析
4 |
5 | 这里以阿里云的DNS控制面板来做个示范,来到解析控制台,点击按钮增加解析。
6 |
7 | 
8 |
9 | 
10 |
11 | 这里的各项都给个解释吧。
12 |
13 | > **记录类型**
14 | >
15 | > 常见的有两种类型,分别是`A`,`CNAME`。
16 | >
17 | > `A`记录是直接解析到IP的,一般我们自己用VPS建站的时候会用到
18 | >
19 | > `CNAME`记录是解析到另一个域名,一般我们使用虚拟主机或者其他托管服务时会遇到
20 | >
21 | > **主机记录**
22 | >
23 | > 就是指你的域名前缀,例如我这里填的`blog`,代表说我正在把`blog.hk416.space`解析到目标地址。如果我想解析`www.hk416.space`要怎么办呢?对啦,主机记录这里就填上`www`就好了。
24 | >
25 | > P.S 如果我们想直接解析整个根域名(`hk416.space`),那么我们需要填写的主机记录值为`@`,我们称之为`泛解析`
26 | >
27 | > **解析路线**
28 | >
29 | > 暂时与我们没什么关系
30 | >
31 | > **记录值**
32 | >
33 | > 就是你要解析到的地方啦,这里我们填上我们的服务器IP即可。
34 |
35 | 都填写完成之后,我们点击确认来保存。接下来就可以去服务器那里新建网站了。
36 |
37 |
38 |
39 | ### Oneinstack命令行操作
40 |
41 | 在我们安装好oneinstack之后,进入Oneinstack的文件夹,输出一下文件夹下的内容,我们可以看到
42 |
43 | 
44 |
45 | > #### 知识拓展
46 | >
47 | > 这里不同的颜色高亮表示不同的文件类型或者文件夹。一般这些绿色的以`.sh`结尾的为可执行的脚本文件。蓝色的则表示文件夹,而没有高亮的惨白色的则为普通的文件。
48 |
49 | 我们添加网站需要用到的就是右下角被水印挡住的`vhost.sh`了。但是在这之前,为了能让我们搭建网站的过程中能够顺利申请到SSL证书,我们需要先将域名解析至我们的服务器。记得哦!
50 |
51 | 回到XSHELL,在**Oneinstack目录下**,运行`vhost.sh`来新建网站
52 |
53 | ```shell
54 | #进入Oneinstack文件夹
55 | cd /path/to/oneinstack
56 | #运行脚本
57 | ./vhost.sh
58 | ```
59 |
60 | 这里我们可以看到他的一个欢迎界面,然后就会开始一系列的选择,这里我会把所有选项的含义与注意事项标注出来。
61 |
62 | ```shell
63 | #######################################################################
64 | # OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+ #
65 | # For more information please visit https://oneinstack.com #
66 | #######################################################################
67 |
68 | What Are You Doing?
69 | 1. Use HTTP Only #只使用http新建网站
70 | 2. Use your own SSL Certificate and Key #新建网站,并使用自己的SSL证书与密钥
71 | 3. Use Lets Encrypt to Create SSL Certificate and Key #新建网站,顺便帮我使用Lets Encrypt来创建一个免费的证书
72 | q. Exit #打扰了
73 | Please input the correct option: 3
74 | #这里建议选择3选项,除非你有更好的SSL证书选择
75 |
76 | Please input domain(example: www.example.com): blog.hk416.space
77 | #请输入你的域名,这里填写刚刚解析的域名,要加上前缀
78 |
79 | domain=blog.hk416.space
80 |
81 | Please input the directory for the domain:blog.hk416.space :
82 | (Default directory: /data/wwwroot/blog.hk416.space):
83 | #请输入网站数据的根目录,这里我们直接回车就好了
84 | Virtual Host Directory=/data/wwwroot/blog.hk416.space
85 |
86 | Create Virtul Host directory......
87 | set permissions of Virtual Host directory......
88 |
89 | Do you want to add more domain name? [y/n]: n
90 | #你想要为这个网站添加更多域名吗?
91 |
92 | Do you want to redirect all HTTP requests to HTTPS? [y/n]: y
93 | #你想让你的网站强制https🐎?
94 |
95 | #填写完这里之后,脚本就会自动帮你申请SSL证书,如果我们一开始没有解析的话,这里就会失败噢
96 | .....
97 | [Mon Sep 7 17:45:22 CST 2020] Your cert is in /root/.acme.sh/blog.hk416.space/blog.hk416.space.cer
98 | [Mon Sep 7 17:45:22 CST 2020] Your cert key is in /root/.acme.sh/blog.hk416.space/blog.hk416.space.key
99 | [Mon Sep 7 17:45:22 CST 2020] The intermediate CA cert is in /root/.acme.sh/blog.hk416.space/ca.cer
100 | [Mon Sep 7 17:45:22 CST 2020] And the full chain certs is there: /root/.acme.sh/blog.hk416.space/fullchain.cer
101 | nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
102 | nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
103 | #申请完成
104 |
105 | Do you want to add hotlink protection? [y/n]:y
106 | #你需要热链保护吗?这个地方随意吧,不过多一个防护总不是坏事
107 |
108 | Allow Rewrite rule? [y/n]: y
109 | #允许网址重写吗?这里为了以后我们的博客网址能比较自由美观,可以开一下。但是不开也不会有什么问题。
110 | wordpress,opencart,magento2,drupal,joomla,codeigniter,laravel
111 | thinkphp,pathinfo,discuz,typecho,ecshop,nextcloud,zblog,whmcs rewrite was exist.
112 | (Default rewrite: other): typecho
113 | #选择y后会给你一些自带的选项。这里对我们比较有用的无非wordpress,zblog,typecho了,看自己要选择什么博客程序来填写吧,这里我选择typecho
114 |
115 | Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
116 | #最后一个问题,你需要网站的访问记录吗?当然需要
117 | You access log file=/data/wwwlogs/blog.hk416.space_nginx.log
118 |
119 | nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
120 | nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
121 | Reload Nginx......
122 |
123 | #######################################################################
124 | # OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 14+ #
125 | # For more information please visit https://oneinstack.com #
126 | #######################################################################
127 | Your domain: blog.hk416.space
128 | Virtualhost conf: /usr/local/nginx/conf/vhost/blog.hk416.space.conf
129 | Directory of: /data/wwwroot/blog.hk416.space
130 | Rewrite rule: /usr/local/nginx/conf/rewrite/typecho.conf
131 | Let's Encrypt SSL Certificate:/usr/local/nginx/conf/ssl/blog.hk416.space.crt
132 | SSL Private Key: /usr/local/nginx/conf/ssl/blog.hk416.space.key
133 | ```
134 |
135 | 到这里,你的网站就建立好啦。去访问试试看吧。
136 |
137 | 
138 |
139 | 可以访问了!不过因为网站的根目录还没有文件。所以会显示403错误,这个不是大问题,等到我们安装博客系统的时候就会自动消失啦。到这里,我们已经能够让所有人在浏览器输入我们的域名(`blog.hk416.space`)就能访问我们的网站了。但对于一个博客系统来说,还少了一样东西——数据库。没错,我们还需要新建一个数据库!
140 |
141 | 打开你的浏览器,在地址栏输入`http://你的IP/phpMyAdmin`,输入用户名与密码(安装Oneinstack时设置的)。我们会看到这样的画面。
142 |
143 | 
144 |
145 | 聪明的你一定发现了,左侧的侧边栏有一个新建选项。没错,那确实是一个可以新建数据库的地方。不过出于安全考虑,我们选择上方的`账户`,新建一个子用户。
146 |
147 | 
148 |
149 | 
150 |
151 | 只需要填写红框中的字段就可以了,记得勾上`创建与用户同名的数据库并授予所有权限。 `这个选项。完成这一步之后呢,我们就可以避免直接使用root账户连接数据库而造成一些潜在的安全隐患,毕竟这个账号只能操作这一个数据库。
152 |
153 | 到这里网站的添加就完成啦!是不是还不错呢?
154 |
155 |
156 |
157 | ### 宝塔
158 |
159 | 宝塔就简单的多啦,在宝塔的首页,我们点击左侧栏的`网站`,然后选择`添加站点`。
160 |
161 | 
162 |
163 | 按照提示添加就好了
164 |
165 | 
166 |
167 | 数据库字符集这里我们可以选择适用性更加广的`utf8mb4`,以满足日后日益增加的需求。点击提交,然后我们的网站这里就会多一条啦。
168 |
169 | 
170 |
171 | 其实到这里我们已经基本完成了,不过我们还要精益求精,为我们的网站加上个`https`。宝塔也是相当方便,直接点击那个橙色的`未部署`按钮,选择`Let's Encrypt`就可以自动部署了。
172 |
173 | 
174 |
175 | 
176 |
177 | 记得把强制https点上噢。
178 |
179 | 
180 |
181 |
182 |
183 |
--------------------------------------------------------------------------------
/tutorial/course7.md:
--------------------------------------------------------------------------------
1 | 终于到了最后一步,安装博客程序。前面已经介绍过了不同的博客程序,这里我们举两个最有代表性的`typecho`和`wordpress`来举个栗子。
2 |
3 | ### 1.下载博客程序
4 |
5 | 来到对应博客系统的官网->[typecho](https://typecho.org/),[wordpress](https://wordpress.org/download/)。
6 |
7 | 不过需要注意,wordpress的官网在大陆访问奇慢无比,可能需要借助一些科学手段。没有条件的同学可以直接点这个[链接](https://mofile.own-cloud.cn/#/s/3k4vcy),我这里提供一份`5.5.1`版本的wordpress以便没有t的同学下载。
8 |
9 | 
10 |
11 | 下载下来我们得到的是包含博客源码的压缩文件。但从压缩包体积来看两者的不同就体现出来了。但不是说谁文件大谁就好,轻量有轻量的优势,wordpress也有别人无法企及的功能性的优势。下一步就是将压缩包上传到服务器了。
12 |
13 |
14 |
15 | ### 2.1安装Wordpress
16 |
17 | 将我们的wordpress压缩文件上传至网站目录。在哪里上传?以宝塔为例,点击左侧**网站**选项,找到根目录点进去。
18 |
19 | 
20 |
21 | 
22 |
23 | 这里就是你的网站的根目录了,我们点击上传,将我们的Wordpress压缩包上传上去,顺便将它自带的`404.html`和`index.html`删掉。当我们把鼠标移到压缩包上面时,那一列的右侧会出现一系列的选项,我们选择把它解压。
24 |
25 | 
26 |
27 | 解压完成后会发现,我们根目录下会多出一个wordpress的文件夹,我们进去把所有文件移出来。不然的话你就得用`https://你的域名/wordpress`来访问你的网站了。移出来之后,我们还可以顺手把压缩包和原本wordpress这个空文件夹给删了。
28 |
29 | 好了!现在我们访问我们的域名。
30 |
31 | 
32 |
33 | 现在我们就可以开始配置安装了。选择到中文(在最下面)进行下一步。会先看到一个简单的介绍,然后我们点击**现在就开始!**进行下一步操作。
34 |
35 | 
36 |
37 | 数据库密码用户名是什么呢?我们回到宝塔,左侧点击**数据库**就可以看到啦。
38 |
39 | 
40 |
41 | 我们将信息填到wordpress里面,这里需要注意的是
42 |
43 | 我们只需要填写`数据库名`、`用户名`、`密码`三项即可,数据库主机正常情况下都是localhost。而最后一项前缀则是允许你**自定义**的,但是不要太长了。如果信息没有出错的话,提交之后就可以开始自动安装了。
44 |
45 | 
46 |
47 | 
48 |
49 | 这里就是自由发挥时间惹,填写完后,点击安装wordpress。至此,你的wordpress博客就安装完成啦!
50 |
51 | 
52 |
53 |
54 |
55 |
56 |
57 | ### 2.2 安装typecho
58 |
59 | 还是一样的步骤,将压缩包上传至根目录,解压之后发现多出来个`bulit`文件夹,还是老样子,全部移出来之后删掉原本的bulit文件夹。打开浏览器访问你的域名。
60 |
61 | 
62 |
63 | 也是差不多的界面,我们按照引导来走。
64 |
65 | 
66 |
67 | 一样的,我们只需要填写`数据库名`、`用户名`、`密码`三项即可,数据库主机正常情况下都是localhost,端口一般都是3306,前缀也可以自定义。而第一项数据库适配器则是他自动匹配的,无需选择。接着在下面创建管理员账号这里填写你的自定义的信息就完成了。
68 |
69 | 
70 |
71 | **不过还没结束!**我们还需要回到网站根目录,将`install`文件夹与`install.php`删除,以绝后患。到这里,typecho的搭建才算真正的完成了。
72 |
73 | ### 3.完结
74 |
75 | 到这里,搭建博客的教学系列基本完成了,接下来会时不时更新一些相关的技巧与资源。祝大家的博客之路一路顺风!
--------------------------------------------------------------------------------
/tutorial/course8.md:
--------------------------------------------------------------------------------
1 | EasyPanel是一种非常常见的虚拟主机面板,你在各种~~个人~~~~小~~主机商处都能见到。其安装成本低,维护方便,而且基本功能完备,深受各种商家的好评。~~(虽然大多数是oneman)~~ 拿这个来讲虚拟主机的基本操作真是太适合不过了。
2 |
3 |
4 |
5 | ### 材料准备
6 |
7 | 首先,我们需要一个域名,一台easypanel面板的虚拟主机,你的网址源码。这里IMOUTO TECH给大家提供了免费的[练手机器](https://shop.imouto.tech/store/zzgogogo)。
8 |
9 | 
10 |
11 | 那么现在开始教学。
12 |
13 | ### 购买后
14 |
15 | 首先我们购买之后,在你的用户界面可以看到这样子的信息
16 |
17 | 
18 |
19 | > 对于不同商家使用的不同销售系统(whmcs,swapidc...)经常会有不同的界面。不过都是大同小异,这里选择比较有代表性的来教学一下。
20 |
21 | 这个时候我们点击进去,可以来到虚拟主机的管理面板。
22 |
23 | 
24 |
25 | 观察一下,在左侧,我们可以 `更改密码` 与 `要求撤销` 两项。 ~~功能也如其名,是更改密码和取消服务。~~而在中间的主要区域,我们可以看到基本的账单信息。例如购买日期,价格,到期日期等。而在下面的 **虚拟主机信息**才是我们要关注的。
26 |
27 | > 这里说明一下各个数据
28 | >
29 | > 网址:你在购买虚拟主机的时候输入的,或者是商家赠送的免费二级域名。
30 | >
31 | > 账号:虚拟主机控制面板登录的用户名
32 | >
33 | > 服务器名称:嗯。服务器名称
34 | >
35 | > IP地址:虚拟主机的IP地址
36 | >
37 | > SSL Status:这个是一个检测域名所对应网站有无安装SSL证书的功能,不是所有的面板都有。
38 |
39 | 再看看下面两个大按钮。直接登录和打开登录地址。这里的登录就是指登录到虚拟主机的控制面板。直接登录的话就可以无需输入账号密码直接登录到主页。而登陆地址呢,也就是为了提供给大家一个不需要一次次打开主机商的网站,直接登录到控制面板。
40 |
41 | 这个时候你可能会好奇。
42 |
43 | *“欸?为什么只有用户名没有密码呢?”*
44 |
45 | 其实是有的噢,打开注册时的邮箱,你就会发现你的主机商给你发来了这么一条邮件。
46 |
47 | 
48 |
49 | 这里就包含了你的初始密码。
50 |
51 |
52 |
53 | ### 打开控制面板
54 |
55 | 
56 |
57 | 这里呢我们就只介绍一下搭建网站需要的功能。那么回顾一下我们搭建一个网站需要的东西。
58 |
59 | 首先是域名,我们点击域名绑定按钮,将域名解析到所给的IP或cname。
60 |
61 | 
62 |
63 | 其次呢,就是你的网站源码。这里呢我准备了一个itorr大佬的图片编辑[源码](https://github.com/itorr/vaporwave)。这里有两种上传方式,第一种是通过控制面板里的在线文件功能来上传你的源码。第二种就是根据面板提供的FTP信息使用FTP软件来传输。这个我们之后再讲。
64 |
65 | 这里我们点开在线文件,然后点开wwwroot目录,点击上传,将包含源码的压缩包上传后解压即可。
66 |
67 | 
68 |
69 | 
70 |
71 | 这个时候,我们打开浏览器,输入我们的域名。
72 |
73 | 
74 |
75 |
76 |
77 | 至此,我们完成了简单的网站搭建。但是这个只是最简单的网站的搭建,因为他甚至没有涉及到数据库。所以当我们要使用数据库的时候就要回到面板,打开数据库管理
78 |
79 | 
80 |
81 | 这个时候可能会让你输入用户名和密码,这个就是和控制面板的用户名密码是一致的了。
82 |
83 | 
84 |
85 | 欸!这不就到了之前文章讲到的phpMyadmin页面了吗。详细的安装博客时的数据库使用都在前文有提及,这里就不再赘述了。
86 |
87 |
88 |
89 | ### 结束
90 |
91 | 至此,一个简单的搭载于easypanel的网站已经搭建完成。赶紧试试叭!
92 |
93 |
--------------------------------------------------------------------------------