前言
之前因为coding的便捷,把个人博客部署在coding page上,最近收到来自coding官方的短信,表示coding静态网站已经升级了,旧版即将在5月30日下线。新版的coding与腾讯云合并,部署page需要收费,想着反正也是要花钱,不如多花点心思和时间上手一个云服务器,选择自己部署网站,于是选择了阿里云。
搭建过程
首先,我们需要在阿里云购买服务器,这里的话,我选择的是阿里云的ECS共享性 n4,1核2G。性能无约束,对于我们这种简单的个人博客。完全足够,关键一年的费用也不算太贵,省下几顿饭的钱,选择用云服务器搭建个人网站,成功的那一刻也是很有成就感的。
话不多说,我讲一下我搭建的过程,我采用的是阿里云Centos下nginx+hexo方式搭建。
关于如何去配置云服务器,网上有相应的教程给到大家,找到最新的几篇文章,大家可以参照着去研究一下。
在使用之前,不要忘了先去阿里云控制台把你服务器的80端口打开,不懂可以百度,下面最基本的几个过程我讲一下:
一、建立博客安放的目录
举个例子,你打算把博客放到/home/www/blog
1 | cd /home |
二、安装nginx
输入yum install -y nginx
然后依次输入:
1 | systemctl start nginx |
之后你就可以用你的公网ip查看默认的网页了,阿里云的nginx默认页面可能是centos,这个没有关系,因为只要你能看见nginx默认页面或者阿里云centos欢迎页面基本上就表示的nginx安装成功,可以访问服务器内的网站了。
三、配置
到这一步,我发现网上有一些教程可能不是很可靠,会导致最后服务器访问不到你的hexo网页,只能访问nginx默认欢迎页,这个是一个大大的坑,说不定你就会踩到它,这个在后半部分我会介绍我的解决办法,先看大多数网友的操作:
(一)nginx默认网址重定向
①先在/etc/nginx/目录下创建一个文件夹 叫 vhost
1 | cd /etc/nginx |
②编辑 blog.conf配置文件,在里面增加下面的内容:
1 | server{ |
保存退出,按esc键,然后输入:wq
③打开/etc/nginx/目录下的nginx.conf文件vim /etc/nginx/nginx.conf
, 增加一行代码
1 | # Load modular configuration files from the /etc/nginx/conf.d directory. |
保存,并退出
(二)安装node.js以及git
安装node.js
1 | curl -sL https://rpm.nodesource.com/setup_10.x | bash - |
安装完成后执行node -v
和npm -v
如果打印版本号则安装成功
安装git:yum install git
配置git用户:adduser git
修改用户权限:chmod 740 /etc/sudoers
对sudoers文件作出修改:vim /etc/sudoers
然后增加一行git ALL=(ALL) ALL
1 | ## Allow root to run any commands anywhere |
保存并退出
设置git用户的密码:sudo passwd git
本地建立SSH信任关系
目前每次对git仓库进行操作都需要输入密码,不太方便。但是我们已经配置了SSH,就可以通过建立SSH信任关系来免去输入密码的步骤(没有配置ssh的话先在本地电脑里输入ssh-keygen -t rsa
,生成公钥文件):
切换到git用户,然后在~目录下创建.ssh文件夹
1 | su git |
修改它的权限
1 | chmod 600 ~/.ssh/authorized_keys |
回到电脑桌面,打开git bash
,输入以下代码:
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub git@server_ip # 建立信任关系 |
如果不能登录或者还是要输入密码,就说明前面的操作有误,再检查一下吧。
现在我们要创建一个git的仓库,并且新建一个post-receive文件,操作如下:
1 | cd ~ |
对post-receive文件添加如下内容:git --work-tree=/home/www/blog --git-dir=/home/git/blog.git checkout -f
保存并退出,授予该文件可执行权限chmod +x ~/blog.git/hooks/post-receive
至此我们就完成了所有关于服务器端的配置。
四、上传博客文件,完成部署
hexo博客搭建步骤这省略了,可以到网上参照教程去搭建。
在hexo主目录下(注意:不是主题目录),找到并打开_config.yml:
找到deploy做出如下修改:
1 | deploy: |
保存并退出
在主目录下,打开git bash,输入:
1 | hexo clean |
到此结束
开始踩坑
部署到这一步,按理讲应该可以访问我们的博客了,最后发现,还是只能访问nginx的欢迎页,我的解决办法是回到配置的第3步:root /usr/share/nginx/html
#改成你博客的地址
1 | server { |
如果配置好后网页打开提示403,这是权限不够的问题,如果你的博客放在/home/www/blog那么你就要 在/home目录下 使用chmod -R 777 ./www
检查配置文件/etc/nginx/nginx.conf,将第五行的user,做修改:
1 | # For more information on configuration, see: |
然后重启nginx:systemctl restart nginx
,再次刷新网页,问题解决。
如果可以访问了,恭喜你成功了!