Hugo文档 - 7. 使用云服务器搭建个人网站
使用github pages访问网页的速度并不理想, 决定使用云服务器来搭建个人网站
准备工作
系统: 阿里云服务器 ubuntu 18.04
工具: xshell
思路: 1. 把本地的public
目录推送到云服务器中创建的仓库hugo.git
中, hugo.git
只存提交信息, 静态资源会存放在hugo
目录中, 2. 使用Nginx
访问静态资源, 当用户访问网站时, 先经过 Nginx, Nginx 把hugo
目录下的静态资源返回给用户
连接服务器
使用 xshell 或者 cmd 连接到云服务器, 如果使用 cmd
|
|
检查是否安装 git
|
|
新建用户
|
|
关于用户的其他指令, 这里暂时不用
|
|
创建"裸仓库"
|
|
注意
不要使用root用户, 否则新建目录或文件时, 权限属于root用户, 还要分配目录的拥有者:
chown -R hugo:hugo hugo.git
, 否则push时会出现权限问题, 导致推送不成功, 使用命令ll
可以看到目录属于哪个用户执行
git init –bare hugo.git
会生成一个名为hugo.git
的"裸仓库", 所谓的"裸仓库"是没有工作区的, 只会记录 git 提交的历史信息,git log
一下是可以看到各个版本信息的, 但是没办法进行版本回退或者切换分支的操作, 但是有一个好处是可以通过添加 hooks 钩子, 然后在同级目录下新建一个目录 hugo 用来存放项目源码, 也就是说将 git 仓库与项目源码分离如果不想在hugo的用户目录下存放项目, 可以在你想放的位置新建目录, 然后执行:
chown -R username:username 目录的绝对路径
配置钩子
post-receive
钩子在整个过程完结以后运行, 可以用来更新其他系统服务或者通知用户
|
|
把下面代码复制到里面
|
|
配置权限
|
|
配置Nginx
安装Nginx
|
|
修改Nginx默认的配置文件
|
|
重启服务
|
|
关于Nginx的其他指令, 这里暂时不用
|
|
建立连接
道理跟连接 GitHub 一样
先配置SSH公钥, 在本地电脑执行下面命令, 会在用户目录下生成一个 .ssh 的目录, 打开 id_rsa.pub 并复制内容
|
|
在服务器中创建 .ssh 目录, 再创建文件 authorized_keys 用来存放公钥
|
|
推送
如何配置站点和生成public目录就不多说了
在mysite下执行 hugo
后, 把 public
目录推送到服务器中的 hugo.git
仓库里面
|
|
在浏览器中输入你的域名( 如果没有购买域名, 就输入服务器IP地址)就能查看到网站了
附
初级篇
使用 xftp 把 public 目录传送到服务器上, 修改/etc/nginx/sites-available/default, 把 root /var/www/html 改成 public 目录的绝对路径, 重载服务器: systemctl reload nginx或nginx -s reload, 然后在浏览器中输入服务器ip地址访问