记录第一次建站过程
本文最后更新于 2024-10-16,文章内容距离上一次更新已经过去了很久啦,可能已经过时了,请谨慎参考喵。
title: 记录第一次建站过程
tags:
- 建站
- Hexo
- 阿里云ECS
- Nginx
categories:
- 随笔
top_img: false
cover: '/upload/cdn0files/20200721091707.jpg'
abbrlink: a658961f
date: 2019-09-10 15:59:39
updated: 2019-09-10 15:59:39
记录心情:
我很菜,甚至非常菜,刚学前端不久,就迫不及待的想建成自己的第一个站。应该算是还没学会走就想跑的那种,刚开始第一次尝试是去找的模板,然后在此基础上自己去魔改,敲敲打打,然后注册了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服务器了。
目前我知道的几种方法有:
- GithubPage
优点:免费,好管理
只支持静态站点
- 虚拟主机
优点:价格便宜,非常方便管理
缺点:功能少,可自定义的非常少,上传方法单一,对数据库、PHP等有版本要求
- 本地服务器(废旧安卓手机、树莓派等)
优点:完全自定义化,想干什么就能干什么
缺点:难管理,需要一定的知识储备和解决问题能力,且需要内网穿透或者公网IP
- 云服务器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源:
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
再执行安装:
$ yum install -y nginx
启动:
$ systemctl restart nginx
添加开机自启:
$ systemctl enable nginx.service
关闭二连:
$ systemctl stop nginx.service
$ systemctl disable nginx.service
安装过程中的问题
- 开启Nginx却无法访问服务器
检查nginx状态:
$ ps aux|grep nginx
检查端口是否开启:
$ netstat -ntlp
如果80端口启动了nginx服务,剩下的八成都是防火墙问题,开启80端口入方向安全组策略:
$ firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:
$ systemctl restart firewalld.service
okk,阿里云ECS服务器可以去控制台面板添加安全组策略,在入方向开启http和https放行就可。
- 关于Nginx目录配置问题
系统版本:CentOS7.x
Nginx版本:nginx-release-centos-7-0.el7
这三个路径自己找一下
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
/etc/nginx/default.conf
测试
首先请保证自己的服务器开启并运行了nginx服务,且在入方向开启了80端口
在本机浏览器直接输入localhost即可,在其他浏览器输入你云服务器的公网IP就可以看到nginx的欢迎页面啦
一般情况下,这个页面存放在
/usr/share/nginx/html/
/var/www/html/
这两个目录下,你可以去更改default.conf文件来更改这个位置,具体nginx怎么配置,请移步百度
安装Hexo
请务必注意,务必确认您要在服务器上安装接下来的步骤(推荐安装在本地机器)
注意:系统版本:Centos7.x
首先请务必确保您的系统安装了git工具(注:Debian可以使用 sudo apt install nodejs
命令安装)
$ yum install -y git
- 安装基础编译环境
$ yum install gcc-c++
- 下载nodeJS源码包
或者去官网下载
$ wget https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0.tar.gz
- 解压源码包,并进入解压后的文件夹中
$ tar -zxf node-v11.0.0.tar.gz
$ cd node-v11.0.0
- 开始进行编译,注意编译时间很长,我这垃圾配置用了大概一个小时。。。。
$ ./configure && make
- 开始进行安装
$ make install
- 检查版本
$ node -v
$ npm -v
- 如果
node -v
没有版本信息,可进行一下设置环境变量再进行测试
$ 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
- 执行命令生效环境变量后再次重新尝试获取版本信息。
$ source /etc/profile
$ node -v
$ npm -v
- 安装cnpm
$ npm install cnpm -g
- 更换国内淘宝镜像
$ npm install cnpm -g --registry=https://r.npm.taobao.org
(从这里开始接下来的请用cnpm安装,避免版本冲突和依赖关系的问题) ————这个注释更新于2019.12.9.20:38
- 安装hexo
$ npm install -g hexo-cli
$ hexo -v
安装到此告一段落。
预览阶段
Hexo的使用
官方文档在这里: https://hexo.io/zh-cn/docs/
我们只需要记住几个最常用的命令即可:
- 在指定文件夹中新建所需要的文件。
$ hexo init <folder>
$ cd <folder>
$ npm install
完成后,指定文件夹的目录如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
文件夹的功能与作用请移步官方文档参考。
- 生成静态文件
$ hexo g
- 清除缓存和生成的文件
$ hexo clean
- 预览
$ hexo s
执行预览之后就可以在本地浏览器地址输入
localhost:4000
进行预览生成的静态站点。
发布阶段
既然已经生成了站点了,当然就要部署到自己的服务器上了
有很多很多的方法,但是我都看不明白 当然是我很菜的原因 ,所以我就选择了一个非常非常简单粗暴的方法
Hexo生成的站点文件都在public文件夹里,那么我就可以在Github新建一个仓库,然后把public的所有文件一键 hexo deploy
到Github仓库里,然后在服务器端进行 git clone
就好啦
2020.7.21前来考古,觉得自己写的好羞耻,,,
很多东西已经过时了,ε=(´ο`*)))唉