🌒

Stack Pub

使用 hugo + nginx 服务器搭建个人博客

blog搭建小记。

基础环境搭建

最初由于使用 root 账号+简单密码 ssh 服务器,导致第二天收到tx云报警,该服务器已被暴力破解,最终无奈重装系统。

不要使用 root 用户 ssh 服务器,创建一个全新的用户,且加大密码复杂度。(关于构建一套个人密码管理系统,有望后续撰写一篇blog,此处留坑。)

sudo su //切换root用户获取创建用户的权限

useradd hello
passwd world

usermod -s /bin/bash hello   //为用户指定shell
usermod -d /home/hello hello //为用户指定用户目录

cat /etc/passwd //查看用户属性

su hello        //切换用户

go语言环境搭建

go语言官网下载对应安装包。

wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz

解压到/usr/local目录下,进入该目录下的go目录里,检查是否能正常执行显示go版本。

tar -C /usr/local -zxf go1.14.4.linux-amd64.tar.gz

cd /usr/local/go

bin/go version
go version go1.14.4linux/amd64

配置环境变量

使用vim /etc/profile命令打开profile文件,在文件末尾处添加环境变量。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

source /etc/profile

在对应用户目录下配置go语言工作环境,go nev查看配置。

mkdir go
export GOROOT=/usr/local/go
export GOPATH=$home/go
export PATH=$PATH:$GOROOT/bin:$GOPATH
export GOPROXY=https://goproxy.cn //添加国内代理
source .profile

go env

Nginx搭建及基本使用

安装依赖库

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libtool
sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev openssl

安装nginx

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar -zxvf nginx-1.14.2.tar.gz

cd nginx-1.14.2

./configure --prefix=/usr/local/nginx

make && make install

nginx启动与停止

cd /usr/local/nginx/sbin
./nginx
ps -aux |grep nginx
netstat -nltp
./nginx -s stop
./nginx -s quit
kill nginx 主进程pid
killall nginx

创建软连接后在任意目录下使用nginx

echo $PATH
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

Hugo从入门到会用

下载 Hugo (建议带extended的安装包)对应安装包。
解压拷贝至/usr/local/bin目录下

tar -zxvf hugo_extended_0.72.0_linux-64bit.tar.gz
cp hugo /usr/local
hugo version //验证是否安装成功

建站

hugo new site myblog

添加一个主题

cd myblog
git clone https://github.com/olOwOlo/hugo-theme-even themes/even

编辑主题配置文件config.toml,在主题的exampleSite里有主题相关的配置,可以拷贝出来,自定义修改。
开始写作,文件开头一般有draft: true表示,该文件当前为草稿,如需发布,需要将true改为false即可。

hugo new post/1-first.md

一般情况下执行hugo server -D开启内置服务器,即可在http://localhost:1313/开启了。由于我们是在云服务器上,使用hugo server --baseURL=http://atticuslab.com --bind= -w该命令动态查看网站效果。

设置nginx访问配置文件

hugo执行hugo命令后,博客相关的文件都保存在对应的/public/目录下,我们需要配置 nginx 可访问 public 目录即可。修改/usr/local/nginx/conf/nginx.conf配置文件,如果是root权限启动,需要添加user root;,对/xxxx/myblog/public文件添加可访问权限chmod -R 777 /*,重启nginxnginx -s reload,在浏览器里访问你的blog吧。

user root;
...
http {
	...
	server{
		listen 80;
		server_name xxxx;
		rewrite ^(.*) https://$server_name$1 permanent;
	}

	server{
	  listen 443;
		server_name xxxx;
		charset utf-8;

		ssl_certificate xxx.crt;
		ssl_certificate_key xxxx.key;
		ssl_session_timeout 5m;

		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

		ssl_ciphers xxxxxxxxxxxxxxx;
		ssl_prefer_server_ciphers on;

		location / {
		  root /xxx/xxx;
			index index.html index.htm;
		}
	}
}

, , — Jun 2, 2020

GitHub RSS