前言
哈喽又是我~最近斥巨资购买了服务器(vps),所以顺便带来了这篇建站教程。
前排观前提醒,动态网站建站需要一点服务器花销,而且管理运营没有静态网站那么省心,如果你需要的是静态网站的搭建,请移步静态网站搭建教程
前期准备
首先,你需要一台电脑,还有电,剩下的材料如图所示:
当然,你也可以选择其他的软件和平台搭建网站,这里只是这篇教程会涉及的内容。
正式开工
购买主机
一个正经的网站,肯定是24小时在线的,这就需要一个稳定的服务器。服务器是需要花钱租赁的,价格从几十块到几十万都有选择。在百度云、阿里云打折的时候,最便宜的主机只需要1块一年。
我们以阿里云为例:阿里云主机购买
当然,腾讯和百度也是一种选择,我这里使用的是国外的VPS,~~(因为懒得备案)~~大家有需要的话,直接在网上搜索即可,建议选择知名品牌,以防跑路。
氪金流程在各大官网上明明白白,就不再赘述了。
准备ssh工具和sftp工具
我这里主要推荐的工具以win平台为主,Linux和macOS用户请自行上网搜索工具。
ssh连接工具需要是用来操作主机,远程连接并执行命令,我这里使用的是Termius:termius官网
然后,我们还需要一个稳定好用的文件传输工具,连接本地电脑和远端主机,这里推荐经典的xshell:xshell官网
当然,也有懒癌患者希望一键搞定,那么我推荐MobaXterm:mobaxterm官网,这个软件虽然不如xshell稳定,但是胜在功能强大,界面漂亮。颜值即使战斗力。
安装基本的Linux编译环境
在购买主机或者VPS时,一般商家会预先装好一个操作系统,通常是centos,别问,问就是免费。
个人不建议转Redhat或者ubantu,没那个必要,服务器只要稳定好用就足够了,不需要太花哨。
然后就是安装gcc编译器,命令如下:
yum install gcc-c++
yum install -y openssl openssl-devel
如果你因为各种原因重装了系统没有yum的话,请先安装yum
其次,我们搭建网站需要jdk环境运行网站框架,这里使用jdk11.
centos7仅需要一条指令
sudo yum -y install java-11-openjdk-devel
但是,如果你和我一样悲催的使用老版本的centos的话,就要使用压缩包安装大法了
首先,去oracle官网下载压缩包:oracle官网下载jdk
或者去各大高校镜像网站(推荐)下载:清华大学镜像源
然后你需要使用xshell等工具将压缩包传到主机上,并解压(tar -zxvf)到/usr/local/java目录下面。
然后是配置环境变量
vi /etc/profile
在文件中输入
export JAVA_HOME=/usr/local/java/jdk-11.0.5(你自己的版本)
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile
记得检查安装结果。
安装个人网站(博客)框架
我们这里使用的是halo的框架,当然,使用wordpress等其他方式也是可以的。
这里提供halo的下载地址:halo
安装的过程和之前的centos6an安装过程大同小异,使用sftp工具将jar包上传到主机,然后解压运行即可。
nohup java -jar (这里加上jar包名字) &
稍等片刻,你的halo启动完毕,就可以使用公网IP地址访问到你的网站了,但是,此时的端口默认为8090,如果你的端口没有打开或者被占用,那是不行的。
vim /etc/sysconfig/iptables
(编辑文件)
service iptables restart
或者
iptables -I INPUT -p tcp --dport 8090 -j ACCEPT
service iptables status #查看
service iptables save
至于网站的外观风格,可以直接通过halo官网获得主题包,十分方便。
那么恭喜你,现在已经拥有了一个可以从公网IP访问的网站,接下来要做的,就是让他变得更加正经。
安装nginx
很显然,我们不希望暴露端口和IP,这样毕竟不太雅观。
这里我们使用常见的nginx作为代理服务器直面用户。
安装nginx的步骤如下:
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
mkdir /usr/local/nginx
下载并解压nginx包
./configure
进入sbin目录
./nginx
nginx默认启动在80端口。
进入配置nginx.conf,基本配置如下:
upstream blog{
server x.x.x.x:8090;
}
server {
listen 80;
server_name zhaolingxi.com(你的域名);
location / {
proxy_pass http://blog;
proxy_set_header HOST $host;
proxy_set_header X_Forwarded-Proto $scheme;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X_Forwarded-For $proxy_add_x_forwarded_for;
}
}
申请ssl,配置https
到此为止,你的网站可以使用你自己的域名进行访问了。但还是差点什么,你不信可以用谷歌浏览器打开看看?
会发现根本看不了
因为许多浏览器会默认使用https进行访问
那我们就需要配置https了
配置https需要一张证书,即ssl证书,它可以通过氪金获得(不推荐,有点贵),也可以通过certbot等工具获取免费ssl,代价是90天有效,也不费事,重新跑一遍代码就行。
我这里使用了更懒得方法,去阿里云要饭
各大云服务商都会对自己名下的域名提供一些方便,由于我的域名是在阿里云买的,这里以阿里云为例:
进入阿里云官网,搜索ssl,点击免费证书,点击申领即可。好像一共可以拿20张,一年一期,到期重新申请即可
在配置阶段,先要安装nginx的ssl模块
(这里要进入解压缩的目录)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
(接下来使用新的nginx文件替换掉之前安装目录sbin下的nginx,注意这里的替换的时候可以先将之前的文件备份下,停掉nginx服务)
./nginx -s stop #停止nginx服务
cp /root/nginx/objs/nginx /usr/local/nginx/sbin
重启服务
将阿里云下载的.key和.pem文件上传到主机
进入nginx.conf,修改配置
server
{
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/cert/7476552_zhaolingxi.com.pem;
ssl_certificate_key /usr/local/nginx/cert/7476552_zhaolingxi.com.key;
# 注意检查上面证书的路径,live下的证书文件夹名是否含有www,如果没有,请在上面两行中删除 www.
location / {
proxy_pass http://x.x.x.x:8090;
}
}
server
{
listen 80;
#listen [::]:80;
server_name (你的域名,空格分开多个域名);
return 301 https://(你的域名)$request_uri;
}
后记
至于DNS解析之类的内容我这里默认大家是会的,在各大服务商的网页上也都是有详细说明,今天太晚了,祝各位晚安。
最后,恭喜新站长入住互联网!
Q.E.D.