惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Engineering at Meta
Engineering at Meta
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
D
Docker
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
DataBreaches.Net
IT之家
IT之家
V
V2EX
人人都是产品经理
人人都是产品经理
F
Fortinet All Blogs
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
雷峰网
雷峰网
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
F
Full Disclosure
P
Proofpoint News Feed
B
Blog RSS Feed
T
Tor Project blog
T
The Blog of Author Tim Ferriss
B
Blog
Webroot Blog
Webroot Blog
腾讯CDC
T
Troy Hunt's Blog
T
Tailwind CSS Blog
H
Heimdal Security Blog
AWS News Blog
AWS News Blog
G
Google Developers Blog
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
A
About on SuperTechFans
SecWiki News
SecWiki News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
InfoQ
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
美团技术团队
L
LangChain Blog

Mereith's Blog

记一次代理转发问题的排查与解决 PVE DataCenter Manager 端口号跳转错误修复 k8s + jenkins + gitlab 触发器 【转载】没有编程生产力这样的东西 【后续】居然被 ddos 了 居然被 ddos 了 Tagger - 让版本标签管理更简单 openclash 开启后端口转发失效 nextjs 启动时执行代码 买了太多VPS不知道干什么,干脆做个网站 juhost Level-1 测评 VMISS CN - Hong Kong VMISS JP - Tokyo - BGP 测评 VMISS CN - Hong Kong - BGP HomeLab 的终点是 最近在做的事情 因为选择艰难症,自己写了一套开源博客系统 手撸一个nodejs分布式爬虫,还要可视化 HomeLab 分享 我的个人工作流——开源项目推荐 动手写一个超简单的编译器 safari 插件开发 Safari Extensions Preferences 按钮无响应 设置移动端软键盘回车按钮文案 nginx proxy manager 非标准端口反代 Host 不对 监控 k8s ingress 自动添加域名 DNS 解析 使用 ingress 注解给 traefik ingress 添加中间件 使用流水线功能为文章添加固定结尾 为 VanBlog 添加一个小挂件 基于React/umi/egg自建博客系统 如何正确停止 NodeJS 子进程 k8s pod 替换策略 让威联通、pve 共享 ups 实现断电关机 Ubuntu 配置 samba 混合云部署k3s集群(基于wireguard) pve 无法启动 grub lvmid not found error antd Password 关闭自动补全 code-server node not found pve no quorum 错误 || 无法登录 pve Cannot Initiate CMAP Service pve 节点删不干净 PVE 指针(鼠标)漂移 pve 重启网络 Proxmox VE 直通显卡 ProxmoxVE (PVE) 7.0 换源升级 用 SOCAT 端口转发 git 无法 pull 仓库refusing to merge unrelated histories 用 vuepress 搭建私人知识库 js 防抖节流中的 this 与箭头函数 Dockerfile 给 Ubuntu 换源 docker 内访问宿主机 docker 删除无用镜像 css 实现展开收起动画 nginx 301 问题 Node.js 流式编程 关于我重写了三次博客项目这件事 css flex 布局超出隐藏 css 隐藏滚动条 css 文字超出隐藏并显示省略号 css 填充 svg 颜色 css 黑白滤镜 nginx 反代丢端口 docker-compose 部署 matomo 分析系统 基于 strapi 开发应用 strapi 关闭 Content Security Policy nginx 反代 rewite url ssh 通过跳板机访问目标机器 Cent os 7 安装 zsh 5.6 以上版本 win11 任务栏不合并 bash 数组操作 vim 修改文件格式为 unix k8s 集群 control-plane-endpoint 主机名 git https 保存密码 Bash 判断命令存在 & 重定向 python 导出项目依赖 cent os 7 安装 gcc 版本 9 System limit for number of file watchers reached cent os 7 安装 git 2.x css 下划线中间向两边滑动效果 linux 挂载 SMB/CIFS linux 清除 ACL windows 命令行安装 inf 驱动 css 文字不可选择 iperf3 网络测速工具 cent os 换源 k8s 1.21.3 从 docker 迁移到 containerd 解决Nginx安装错误:No package nginx available 问题 从pve的硬盘里导出数据 Errors were encountered while processing adguardhome配合clash pve中使用LXC容器安装OMV LXC直通硬盘 nginx反代模版 docker常用开启容器的命令 PVE的LXC容器中安装Docker ProxmoxVE系统分区相关 基于clash搭建旁路网关 Portainer添加节点 linux声卡设置及录音音 OpenWrt用VLAN PVE换源及去掉订阅提示和改端口
Hexo + Github(Vps)部署你的个人博客
wanglu@mereith.com (mereith) · 2018-12-08 · via Mereith's Blog

请注意,本文编写于 2736 天前,最后修改于 2736 天前,其中某些信息可能已经过时。

经过踩坑+出坑,一系列循环,总算初步把博客网站建立起来了,因为遇到的坑太多了,所以记下来,怕忘了……各种参考地址在最后~

建站原理

本地搭建hexo的开发环境(node.js、git、npm),然后修改配置参数,本地生成网页git push到相应的github 仓库或者远程的vps服务器上,github page就不说了,傻瓜式操作, vps端是用的阿里的轻应用服务器(ubuntu 16.04 x64)+nginx,其中nginx的源代码编译遇到了一些坑…… 0—0

搭建本地环境

我用的是windows操作系统,实际上linux或者mac知道了原理后也都大同小异了。

前提准备

需要的安装包如下:

  • node.js (带npm)
  • git环境(网上很简单都可以找到)
  • Termius (跨设备的ssh客户端非常好用哦)
  • sublime (一个很好用的文本编辑器)
  • 下载地址:链接:https://pan.baidu.com/s/1HsxmeSwMqCdBI5v23JsK3w 提取码:rkl4

安装相应的安装包

需要注意的是都按照默认选项安装就可以了。其中git安装完需在shell中执行:

git config --global user.name "yourname" git config --global user.email "yourmail"

安装完node.js之后请执行如下命令检查可否运行:


如果一直卡住了,那么请检查 c:\user\ {你的账户}文件夹里有没有.npmrc文件,有的话删了就正常了

安装hexo

打开powershell,执行命令:

npm install hexo-cli -g hexo

看看是不是安装成功了呢 如果安装的时候出现了两个警告,什么fsevents之类的,不用在意。

初始化hexo文件夹

找个文件夹初始化你的博客吧~,下面博客路径用blog-path来替代。 在你找到的文件夹下,执行:

mkdir hexo-blog cd hexo-blog npm init hexo init myblog cd myblog npm install

执行本地的hexo项目

修改myblog下的package.json,在scripts下面仿照上面的格式加入下面两个脚本(记得上面的逗号)

验证成果

在myblog下执行:


在浏览器打开localhost:4000看一下效果吧~

修改myblog下的_config.yml即可,详细内容看官方文档吧~

修改完了保存,然后执行npm start即可在本地看到效果咯 至此,本地部署完成~

github端设置(如果你用的话)

注册github账号

直接去 github官网 注册就好了嘛

建立仓库,设置个人主页

登录之后点击New repository建立自己的仓库,仓库的名称请按照yourname.github.io来命名,并勾选README的那个选项 进入仓库,点设置找到github pages,看到your site is published at https://yourname.github.io/就证明你的个人主页创建完成了 接下来选择主题,随便选一个(反正一会咱们上传咱们的hexo生成的,和他没关系)

服务器端设置

初始化服务器的git环境

在服务器中 1.安装git,例如我的ubuntu,直接apt-get install git即可 2.创建用户并配置其仓库,执行如下命令

useradd git passwd git //设置密码 mkdir /home/git //创建git的目录 chown git:git /home/git //设置权限 su git //切换用户 cd /home/git mkdir -p progects/blog //创建项目的目录 mkdir repos && cd repos //创建仓库的目录 git init --bare blog.git //创建仓库 vim ./blog.git/hooks/post-receive //用vim创建钩子函数,不会vim的请百度一下

文件内容如下:

#!/bin/sh git --work--tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f

修改其权限,执行:

chmod +x ./blog.git/hooks/post-receive //添加执行权限 exit //回到root chown -R git:git /home/git/repos/blog.git //添加权限 ··· 3.可以在本地电脑找个空文件夹测试一下`git仓库`是不是能用,执行: ```bash git clone git@server_ip:/home/git/repos/blog.git

如果成功把空的仓库拉下来,就证明git仓库创建成功了

nginx网页服务器搭建

推荐直接编译源码

编译源码

执行:

cd /ure/local/src wget http://nginx.org/download/nginx-1.15.2.tar.gz tar -zxvf nginx-1.15.2.tar.gz cd nginx-1.15.2 ./configure //生成配置文件,如果像加上ssl协议就执行后面那一句 ./configure --prefix=/usr/local/nginx --with-heep_stub_status_module --with-http_ssl_module --with-file-aio --with-heep_realip_module //ssl就是https访问 make make install alias nginx='/usr/local/nginx/sbin/nginx' //别名,但是重启无效

错误处理 编译源码很容易出岔子,最常见的如下: 1.缺少pcre库,解决办法:

apt-get libpcre3 libpcre3-dev

2.缺少openssl

apt-get install openssl libssl-dev

3.缺少zlib

apt-get install zlib1g-dev

其余少啥装啥,apt-get找不到,就去下载编译源码~慢慢来可以解决的

nginx参数设置

通过编辑/usr/local/nginx/conf/nginx.conf文件来修改: 如下图,修改根目录为刚才咱们设置的项目目录,并把一开始的用户设置成root,其余的参数如想修改,查阅资料即可 如果你想绑定域名,就在第二个划线处输入你的网址就行

测试


然后在本地电脑的浏览器上打开你的服务器ip吧~ 看看能不能出现nginx的欢迎界面~

ssh信任关系建立

咱们走ssh协议通过git把本地hexo生成的网页推到服务器或者github上的,但是每次都输入密码很麻烦啊~,所以咱们通过ssh密钥来建立信任关系, 这样子就不用每次都输入密码了~ 本地电脑中 在powershell里执行:

ssh-keygen -t rsa -C "youremail"

然后输入不输入密码都行,我是直接按回车了 之后你生成的密钥就会保存在了你的用户目录\.ssh\目录下面,id_rsa是私钥,id_rsa.pub是公钥 私钥就在咱们电脑上,公钥可以放到github或者vps上哦,放上去就可以不用密码直接访问了

拷贝公钥到服务器

本地电脑中*

ssh-copy-id -i C:\Users\yourname\.ssh\id_rsa.pub git@server_ip ssh git@server_ip //测试是不是能登陆

此时应该不需要密码就能登陆,如果不行请查找原因,或者手动拷贝公钥到服务器git用户的.ssh目录下,chmod 600并改名为authorized_keys即可 此时服务器的环境就彻底ok了

把公钥放到github上

登录github,选择右上角用户头像下的setthings,找到SSH and GPG keys,添加你的公钥,直接复制过去就行了,名字随便起~ 然后可以在本地测试一下


如果不用密码,并出现了hello yourname字样,证明ok,至此github的配置也完成了

部署本地的网页到服务器 or github上

修改hexo配置

修改本地的myblog/_comfig.yml里面的deploy字段下面的内容如图,把cs3cx4g换成你的名字就行了,如果你想同时推送到服务器和github上,就把途中#注释的那个也加上换成你的服务器的ip地址就行了嘛 哦,对了,别用记事本,用sublime~

安装git部署插件

在本地的myblog下执行

npm install --save hexo-deployer-git

部署测试

在本地myblog下执行

npm run start //咱们那个之前添加过的脚本哦

然后打开你的服务器或者github地址看看吧~,是不是网页在上面了呢

next主题配置

具体参见本站的next主题优化

博客的配置和使用

具体参见本站的hexo博客简单配置和使用

markdown基本语法

具体参见本站的markdown在hexo中的基本语法

参考文章