部署Blog到Ubuntu
部署Blog到Ubuntu
Jessica Gracewell部署Blog到Ubuntu服务器并启用HTTPS (没用root用户)
一、本地安装Git后注意事项
【git】报错unsafe repository xxx is owned by someone else解决方法
可以通过加通配符为*
,忽略所有文件夹。需要注意,该处理方法一般适用于只有本人一个用户使用的电脑,确保无其它用户,否则存在安全问题。见下方详述。
git config --global --add safe.directory "*" |
二、服务器端操作
参考链接:https://www.jianshu.com/p/16b89f4f7136
1. 安装Git和Nginx
Git 用于版本管理和部署,Nginx 用于静态博客托管。
sudo apt-get update |
2. 创建Git仓库
在/var/repo/
下创建名为hexo_static
的裸仓库。使用如下命令:
sudo mkdir /var/repo/ |
3. 配置Nginx托管文件目录
创建/var/www/hexo
目录,用于Nginx托管,修改目录所有权和权限。
sudo mkdir -p /var/www/hexo |
随后修改Nginx的default
设置,使root
指向hexo
目录.
sudo vim /etc/nginx/sites-available/default |
注意一定要加sudo
,否则会提醒default
是只读文件.
修改文件中对应的项
... |
Vim的操作方法比较特殊,可以在网上查查
重启Nginx服务,使得改动生效
sudo service nginx restart |
4. 创建Git钩子
不清楚钩子是什么
在自动生成的 hooks 目录下创建一个新的钩子文件:
vim /var/repo/hexo_static.git/hooks/post-receive |
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
!/bin/bash |
保存并退出文件,并让该文件变为可执行文件。
chmod +x /var/repo/hexo_static.git/hooks/post-receive |
5. 修改Hexo的默认配置
在站点config.yml
中修改博客的地址url
# URL |
6. 通过Git部署
先在任意位置处打开powershell, 从服务器上把hexo_static仓库克隆下来, 以此来将服务器地址添加到受信任的站点中。
git clone ubuntu@X.X.X.X:/var/repo/hexo_static.git |
再编辑Hexo的config.yml
文件,找到Deployment,修改为
deploy: |
最后记得安装Hexo部署到Git仓库的包.
npm install hexo-deployer-git --save |
于是就可用hexo d
命令来部署了。大功告成。
三:开启https
参考链接:https://developer.aliyun.com/article/761236
备注:配置目录在 /etc/nginx/sites-enabled
下
1.配置SSL证书
我这里用的是有限期一年的ssl证书 腾讯云nginx根据域名下载两个文件 1.pem 1.key
2.配置ca证书 :
2.1配置文件上传
进入nginx的安装目录/etc/nginx/
,增加cert/
文件夹,把刚刚下载的两个文件上传到cert/
文件夹中。
2.2 配置nginx文件
在/etc/nginx/sites-enabled/
下,增加jessicagracewell.top
文件。内容如下:
说明:下面的配置是对443
端口和80
端口进行监听,443
端口要启用ssl
。监听443
端口的server配置可以仿照上面ca认证页面的nginx配置示例进行配置。
server { |
2.3 检查并启用nginx配置
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
nginx -t // 检查nginx配置文件 |
配置正确后,重新加载配置文件使配置生效:
nginx -s reload // 使配置生效 |
至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。
如需重启nginx,用以下命令:
service nginx stop // 停止 |