记录心情:

我很菜,甚至非常菜,刚学前端不久,就迫不及待的想建成自己的第一个站。应该算是还没学会走就想跑的那种,刚开始第一次尝试是去找的模板,然后在此基础上自己去魔改,敲敲打打,然后注册了Github,按照网上百度的教程,想去部署GithubPage,结果第一关就把我难住了。

我不知道怎么把写好的网站上传到Github的仓库里 (这个时候还不知道git这个工具) ,只能在Github上在线一个一个上传文件、图片等 (为此还百度了一次怎么在Github仓库里新建文件夹) ,然后让舍友在手机上访问了我的网站,那个时候真的是成就感满满,更加坚定了自己后面建站的决心。

我隔壁宿舍在学Java的舍友也有建站的想法,但是我什么都不会,只会Ctrl+C和Ctrl+V (那个时候我也才下定决心用大部分精力来学习编程,哦对了,我的专业是化学工程与工艺,当时大一第一学期,我自己的故事慢慢讲) ,舍友是在校外报的培训班,然后我们就商量一起干。他租了一个虚拟主机 (当时我还不知道虚拟主机和ECS服务器的区别) ,是西部数码最便宜的一种,只有68RMB一年,域名是附赠的。然后趁着暑假,他做好备案等工作,我写主页。我只会HTML,而且CSS也都不会写多少,然后我们最简单最简单的一个网站就那么搭建好了 (虽然只有一个导航栏,之后暑假完了增加了一些内容)

暑假的时候我潜心学习Linux,当时了解到除了win10之外电脑也可以装其他操作系统,还是很新奇的,就买了一本《鸟哥的Linux私房菜》,这个时候就萌生了做自己博客记录笔记和生活的想法。然后就把一个暑假整理的笔记什么的都放在了舍友的网站里:http://www.tocoyo.top (写这篇文章的时候还可以访问的) ,但是由于他后来转向学建模和视频动画渲染了,就搁置了,所以开学后大概在9月20号左右我也租了一个虚拟主机 (还不知道阿里云学生机的活动) ,然后注册域名、备案、上线一气呵成,现在用来放笔记了,就在友链里的第一个,有兴趣的朋友可以去看看,不过非常简陋,都是我自己写的 (当然也有一部分Copy的,如果有什么错误或者问题的话,请务必及时联系我删除)

这个站的配置是:之前租西部数码虚拟主机送的域名,阿里云学生机,CentOS7.x,Nginx,Hexo,Butterfly。

准备阶段

不要按照文章的来啊,这只是当时瞎写的,留着只是为了回忆

服务器

部署网站的目的就是不仅让自己要访问到,还要让别人也访问到嘛,就要用到web服务器了。
目前我知道的几种方法有:

1. GithubPage

    优点:免费,好管理
    缺点:只支持静态站点

2. 虚拟主机

    优点:价格便宜,非常方便管理
    缺点:功能少,可自定义的非常少,上传方法单一,对数据库、PHP等有版本要求

3. 本地服务器(废旧安卓手机、树莓派等)

    优点:完全自定义化,想干什么就能干什么
    缺点:难管理,需要一定的知识储备和解决问题能力,且需要内网穿透或者公网IP

4.云服务器ECS实例

    优点:相对虚拟主机来说自由度很高,可以按照自己的想法来,不仅可以建站,更可以拓展非常多的功能
    缺点:价格相对昂贵,需要一定基础
    我选择了阿里云服务器,因为阿里云有学生机优惠,仅9.9RMB一个月(原价100+RMB一个月),配置可观,完全够用。当然也可以选择腾讯云、西部数码等等这些云计算服务商。
    哦对了,购买服务器的时候记得选择Linux或者WindowsServer,根据自己的需要来吧,我因为对Linux比较熟悉,所以选择CentOS7

域名

    有了服务器还得有一个响当当的域名,不然总不能让朋友们用IP来访问网站吧,那样就太粗糙了。
    尽量选择 .com、.cn等这些常见的,当然价格也是非常的承受不起啦
(还好我有租虚拟主机赠送的一个域名) ,不过我另一个域名是在阿里云买的,ltd作为后缀的,57RMB买了五年,哈哈哈

域名解析

    在阿里云控制台里记得要对自己的域名和服务器IP进行解析哦,不然域名是无法访问到服务器的呢

备案

    我们身在中华大地,就要做一个遵纪守法的好公民啦,不论是个人还是商业网站都是要进行ICP备案哦。备案的时候一定要仔细阅读相关条例,不要一眼扫过就点了个同意协议。
    备案的时间大概在15天左右,服务商审核在2-3天,管理局审核在5-15天左右,依据所处的地域不同而不同。
    如果嫌麻烦或者不想备案也可以租国外的服务器和域名哦,不过价格就稍微昂贵很多。

开始阶段

选取web服务器

    我知道的就两种:Nginx和Apache,目前我了解的还不多,我摘抄一点百度百科给你们看吧:
      Nginx:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
      Apache:Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
    Apache非常优秀,所以我选择了Nginx,嘿嘿

安装nginx

    安装过程很是艰辛,难死我了
    我去 复制 一下我的笔记:(请务必注意系统版本和要安装的nginx版本)

安装

添加nginx的官方rpm源:

1
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

再执行安装:

1
$ yum install -y nginx

启动:

1
$ systemctl restart nginx

添加开机自启:

1
$ systemctl enable nginx.service

关闭二连:

1
2
$ systemctl stop nginx.service
$ systemctl disable nginx.service

安装过程中的问题

  1. 开启Nginx却无法访问服务器

检查nginx状态:

1
$ ps aux|grep nginx

检查端口是否开启:

1
$ netstat -ntlp

如果80端口启动了nginx服务,剩下的八成都是防火墙问题,开启80端口入方向安全组策略:

1
$ firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙:

1
$ systemctl restart firewalld.service

okk,阿里云ECS服务器可以去控制台面板添加安全组策略,在入方向开启http和https放行就可。

  1. 关于Nginx目录配置问题

系统版本:CentOS7.x
Nginx版本:nginx-release-centos-7-0.el7
这三个路径自己找一下

1
2
3
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
/etc/nginx/default.conf

测试

    首先请保证自己的服务器开启并运行了nginx服务,且在入方向开启了80端口
    在本机浏览器直接输入localhost即可,在其他浏览器输入你云服务器的公网IP就可以看到nginx的欢迎页面啦
一般情况下,这个页面存放在

1
2
/usr/share/nginx/html/
/var/www/html/

这两个目录下,你可以去更改default.conf文件来更改这个位置,具体nginx怎么配置,请移步百度

安装Hexo

请务必注意,务必确认您要在服务器上安装接下来的步骤(推荐安装在本地机器)

  注意:系统版本:Centos7.x
首先请务必确保您的系统安装了git工具(注:Debian可以使用 sudo apt install nodejs 命令安装)

1
$ yum install -y git
  1. 安装基础编译环境
1
$ yum install gcc-c++
  1. 下载nodeJS源码包
    或者去官网下载
1
$ wget https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0.tar.gz
  1. 解压源码包,并进入解压后的文件夹中
1
2
$ tar -zxf node-v11.0.0.tar.gz
$ cd node-v11.0.0
  1. 开始进行编译,注意编译时间很长,我这垃圾配置用了大概一个小时。。。。
1
$ ./configure && make
  1. 开始进行安装
1
$ make install
  1. 检查版本
1
2
$ node -v
$ npm -v
  1. 如果node -v没有版本信息,可进行一下设置环境变量再进行测试
1
2
3
4
5
6
7
8
9
$ vim /etc/profile
//在该文件底部增加下面两行
$ export NODE_HOME=node目录
$ export PATH=$NODE_HOME/bin:$PATH
$ export NODE_PATH=$NODE_HOME/lib/node_modules
//给root用户添加环境变量
$ vim /root/.bashrc
//文件末尾加入一行
$ source etc/profile
  1. 执行命令生效环境变量后再次重新尝试获取版本信息。
1
2
3
$ source /etc/profile
$ node -v
$ npm -v
  1. 安装cnpm
1
$ npm install cnpm -g
  1. 更换国内淘宝镜像
1
$ npm install cnpm -g --registry=https://r.npm.taobao.org

(从这里开始接下来的请用cnpm安装,避免版本冲突和依赖关系的问题)
      ————这个注释更新于2019.12.9.20:38

  1. 安装hexo
1
2
$ npm install -g hexo-cli
$ hexo -v

安装到此告一段落。

预览阶段

Hexo的使用

官方文档在这里: https://hexo.io/zh-cn/docs/
我们只需要记住几个最常用的命令即可:

  1. 在指定文件夹中新建所需要的文件。
1
2
3
$ hexo init <folder>
$ cd <folder>
$ npm install

完成后,指定文件夹的目录如下:

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

文件夹的功能与作用请移步官方文档参考。
2. 生成静态文件

1
$ hexo g
  1. 清除缓存和生成的文件
1
$ hexo clean
  1. 预览
1
$ hexo s

执行预览之后就可以在本地浏览器地址输入

1
localhost:4000

进行预览生成的静态站点。

发布阶段

既然已经生成了站点了,当然就要部署到自己的服务器上了

有很多很多的方法,但是我都看不明白 当然是我很菜的原因 ,所以我就选择了一个非常非常简单粗暴的方法

Hexo生成的站点文件都在public文件夹里,那么我就可以在Github新建一个仓库,然后把public的所有文件一键 hexo deploy到Github仓库里,然后在服务器端进行 git clone 就好啦

2020.7.21前来考古,觉得自己写的好羞耻,,,

很多东西已经过时了,ε=(´ο`*)))唉