说在前面:
很多读计算机专业的大学生小码农想拥有自己的一个网站,但是最后都搞不定,其中可能的一个问题就是资金问题。今天码农哥分享个适合学生实战搭建网站的廉价组合方式。配置是:之前租西部数码虚拟主机送的域名,阿里云学生机,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源:
$ 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工具
$ 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安装,避免版本冲突和依赖关系的问题)
安装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的所有文件一键git push到Github仓库里,然后在服务器端进行git clone就好啦。
发表评论