[TOC]

Typora

1.下载安装

官网下载新版

2.修改文件–参考

激活

打开安装路径下文件夹

1
typora\resources\page-dist\static\js

修改一个LicenseIndex开头的文件(.chunk)

1
2
3
4

e.hasActivated = "true" == e.hasActivated
替换为
e.hasActivated = "true" == "true"

已激活弹窗

1
resources\page-dist\license.html
1
2
3
4
5
在结尾
</body></html>
中插入js
<script>window.onload=function(){setTimeout(()=>{window.close();},100);}</script>
如果有异常,可以把100ms设置久一点

软件左下角未激活提示

1
resources\locales\zh-Hans.lproj\Panel.json
1
2
3
"UNREGISTERED":"未激活"
替换为
"UNREGISTERED":" "

3.设置图片存储相对路径–参考

Typora-文件-偏好设置

图像-插入图片时-复制到指定路径

1
../img/${filename}

勾选优先使用相对路径

image-20241026151808242

4.Typora修改快捷键–参考

偏好设置-通用-打开高级设置

image-20241207231534940

修改conf.user.json,位置一般在

1
C:\Users\User\AppData\Roaming\Typora\conf

keyBinding添加快捷键

1
2
3
4
5
6
"keyBinding": {
// for example:
// "Always on Top": "Ctrl+Shift+P"
// All other options are the menu items 'text label' displayed from each typora menu
"Code": "Ctrl+`"
},

其中键可以从这里找到,值填写自己想要修改的快捷键

image-20241207231954453

本地安装Hexo并配置git

1.准备工作

安装nodejs

打开官网下载(v20.18.0)

验证安装成功

1
2
node -v
npm -v

image-20241026152413349

配置npm包位置

1
npm config ls	

npm切换镜像源

1
npm config set registry https://registry.npmmirror.com

修改npm默认全局安装路径

1
2
npm config set prefix "xxx\node_global"
npm config set cache "xxx\node_cache"

还需要将以下位置加入环境变量

1
2
3
\nodejs
\nodejs\node_modules
\xxx\node_global

安装git

官网下载,默认安装

1
git --version

配置用户名和邮箱

1
2
git config --global user.name abc
git config --global user.email abc@qq.com

[!TIP]

签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。

Git 首次安装必须设置一下用户签名,否则无法提交代码。

2.安装Hexo

官网文档

1
npm install hexo-cli -g

初始化博客

1
2
3
hexo init <folder>
cd <folder>
npm install

博客操作

1
2
3
hexo clean  #清除缓存
hexo generate #生成静态页面
hexo delopy #将本地静态页面目录部署到云服务器

也可以在package.json 中添加 npm 脚本,这样就可以直接npm run dd一下执行

1
2
3
4
5
6
7
8
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"dd": "hexo clean && hexo g -d",
"server": "hexo server",
"ss": "hexo clean && hexo g && hexo s"
},

注意

如果npm install未添加任何文件(包括node_modules文件夹),很可能是npm install安装路径问题(默认安装在全局路径中)

解决办法

1
2
查看npm的配置
npm config list

如果global=true,则需修改配置文件

1
npm config set global=false

若不起作用,找到.npmrc文件路径,修改内容

1
global=false

3.本地配置测试

完成服务器部署123后

修改本地Hexo博客文件夹中的_config.yml文件

1
2
3
4
deploy:
type: git
repo: git@server:/home/git/repos/6hua.git
branch: master
1
npm run dd

新-服务器部署–参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#新建git用户
adduser git
#切换git,默认位置/home/git
su git
#新建.ssh
mkdir /home/git/.ssh
#粘贴公钥
vim /home/git/.ssh/authorized_keys
#测试连接
ssh -v git@xxx.xxx.xxx.xxx

#root
#git仓库
chown -R git:git /home/git/
chmod -R 755 /home/git/
cd /var/repo
git init --bare {仓库名}.git
#托管文件
chown -R git:git /var/www/hexo
chmod -R 755 /var/www/hexo

#git
#新建钩子
vim /home/git/{仓库名}.git/hooks/post-receive
#添加代码
git --work-tree=/var/www/hexo --git-dir=/home/git/{仓库名}.git checkout -f
#修改权限
chmod +x /home/git/{仓库名}.git/hooks/post-receive

#本地
git clone git@{云服务器IP}:/home/git/{仓库名}.git
#(如果之前配置了直接)修改_config.yml
url: https://{云服务器IP}/
deploy:
type: git
repo: git@xxx.xxx.xxx.xxx:/home/git/{仓库名}.git

#本地部署
hexo clean && hexo g -d
上传需要填git用户密码

旧-服务器部署(Linux)

1.准备工作

查看是否安装了Git

1
git --version

查看是否安装了nodejs

1
2
node -v
npm -v
1
2
3
4
apt-get update
apt install curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
apt install -y nodejs

查看nginx

1
2
3
4
apt update
apt install nginx -y
systemctl start nginx
systemctl restart nginx

查看nginx状态

1
systemctl status nginx

一般启动nginx后打开80端口可以看到welcom to nginx!

2.搭建git仓库–参考

1.添加git用户

1
2
3
4
adduser git   #添加git用户

groupadd gitg
useradd -d /home/git -m -s /bin/rbash -r git -g gitg

2.为git用户授予权限

1
2
3
4
在/etc/sudoers.d目录下,新建usergit文件
vim /etc/sudoers.d/usergit
添加以下内容并保存
git ALL=(ALL) NOPASSWD:ALL

3.为git用户添加SSH密钥

本地计算机在任意位置打开终端

1
ssh-keygen

进入C:\Users\用户名\.ssh目录,里面的id_rsa.pub就是我们需要的文件

如果之前生成过密钥,则本次可能命名为id_edxxxxx.pub

/home/git目录下新建

1
2
3
cd /home/git
mkdir .ssh
vim .ssh/authorized_keys

id_rsa.pub内容粘贴进去

本地计算机测试是否可以用ssh免密登录服务器

1
ssh -v git@xxx.xxx.xxx.xxx     #git@后填写服务器的公网ip

但此时可能出现权限问题或者目录遍历,可以限制用户只允许访问某个目录–参考

1
2
3
4
apt install acl
setfacl -m u:git:rwx /home/git
setfacl -m u:git:-x /home/
setfacl -m u:git:-x /

4.创建Git仓库

1
2
3
4
mkdir /home/git/repos    #新建目录,这是git仓库的位置
cd /home/git/repos
git init --bare 6hua.git #初始化一个名叫6hua的仓库
注意:使用--bare会生成裸仓库,其只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作

5.配置钩子实现自动部署–参考

/home/git/repos/6hua.git/hooks/post-update.sample内容修改为

1
2
3
4
git --work-tree=/home/git/hexo --git-dir=/home/git/repos/6hua.git checkout -f
其中work-tree为hexo的部署目录,git-dir为Git仓库的目录

git --work-tree=/www/wwwroot/hexo --git-dir=/home/git/repos/6hua.git checkout -f #宝塔nginx

并重命名为post-update

1
mv post-update.sample post-update

给权限

1
2
3
4
5
chmod +x post-update  #赋予其可执行权限
chown -R git:gitg /home/git/repos/ #仓库所有者改为git
##chown -R git:gitg /home/git/hexo/ #站点文件夹所有者改为git

chown -R git:gitg /www/wwwroot/hexo/ #宝塔nginx

6.测试Git仓库是否可用

1
2
在本地git clone git@server_ip:/home/git/repos/6hua.git
如果能将仓库拉下来,说明Git仓库搭建成功

配置Nginx反向代理

进入/etc/nginx,修改nginx.conf

1
2
3
4
5
6
7
8
9
10
在http{}中添加
server {
listen port;
# 服务器公网IP
server_name localhost;
# 项目的部署地址
root /home/git/hexo/;
location /{
}
}
1
nginx -s reload

放开防火墙端口后,就可以访问博客网站了

注意

设置部分端口会无法访问,即使它并没有和已用端口冲突

尤其注意

1
6000 6666

[!IMPORTANT]

这个问题实际上是由 Chrome 默认的非安全端口限制导致的,除了上文说的 6666,还有其他端口也无法在 Chrome 、Firefox 以及 Safari 中访问,但是可以用IE访问

这些无法访问的端口大部分都是小于 1024,小于 1024 的端口大家应该会很少使用,基本上不会在这个上面栽跟头。大于 1024 的端口也并非每一个都可以使用,这才是容易犯错的地方。

解决办法

1.修改项目端口

2.修改浏览器配置

1
2
3
4
5
Chrome 修改办法如下:
右键单击Chrome快捷方式 -> 目标 -> 末尾添加参数:--explicitly-allowed-ports=6666

Firefox 修改办法如下:
浏览器地址栏输入 about:config 打开配置页面,然后搜索 network.security.ports.banned.override ,将其值设为 6666 即可(如果没有则右键单击新建即可)。

受限端口

端口 原因
1 tcpmux
7 echo
9 discard
11 systat
13 daytime
15 netstat
17 qotd
19 chargen
20 ftp data
21 ftp access
22 ssh
23 telnet
25 smtp
37 time
42 name
43 nicname
53 domain
77 priv-rjs
79 finger
87 ttylink
95 supdup
101 hostriame
102 iso-tsap
103 gppitnp
104 acr-nema
109 pop2
110 pop3
111 sunrpc
113 auth
115 sftp
117 uucp-path
119 nntp
123 NTP
135 loc-srv /epmap
139 netbios
143 imap2
179 BGP
389 ldap
465 smtp+ssl
512 print / exec
513 login
514 shell
515 printer
526 tempo
530 courier
531 chat
532 netnews
540 uucp
556 remotefs
563 nntp+ssl
587 stmp?
601 ??
636 ldap+ssl
993 ldap+ssl
995 pop3+ssl
2049 nfs
3659 apple-sasl / PasswordServer
4045 lockd
6000 X11
6665 Alternate IRC [Apple addition]
6666 Alternate IRC [Apple addition]
6667 Standard IRC [Apple addition]
6668 Alternate IRC [Apple addition]
6669 Alternate IRC [Apple addition]