Hexo错误:spawn failed的解决方法
昨天部署的时候突然spawn failed,怎么部署都部署不上。后来折腾了好一会终于解决了这个报错问题。今天又发现群友有这个问题,所以写个文章来复盘一下。
网络问题
可以说明的是这个问题99%由于网络问题造成的,我们的目标就是为了解决网络问题。
重启电脑
有的时候可能是因为网络波动产生的错误,请首先尝试。
科学上网问题
如果你使用git走了代理,可能是因为代理软件问题导致无法连接。请检查代理软件是否正常和代理端口是否正确。
设置git代理命令:
1 | git config --global http.proxy http://127.0.0.1:1080 |
如果你没有使用代理,那么可以取消git代理:
1 | git config --global --unset http.proxy |
修改DNS
可以将你的电脑dns设置为国际dns,再尝试。
1 | 8.8.8.8 |
服务器无法连接
如果你的Hexo是部署在服务器时,请注意以下方法
首先检查服务器是否能被ssh跑通,SERVER填写自己的云主机ip,以git用户为例:
1 | ssh -v git@SERVER |
服务器部署
请一定要检查公钥pub文件是否输入正确
切换至指定用户,以git用户为例:
1 | su git |
将pub文件内容在i编辑模式下粘贴进去,请特别检查开头和结尾。
按esc
后输入:wq
退出
服务器文件权限问题
如果你部署的账户没有文件夹权限,则可能会出现权限问题,以git用户为例
1 | chown -R git:git /var/repo/ |
使用Github部署
如果使用GitHubPage,可以尝试是否能跑通GitHub
1 | ssh -T git@github.com |
修改配置文件
打开_config.yml配置文件
修改以下内容
1 | deploy: |
其中的repo修改为
1 | repo: git@github.com:yourname/yourname.github.io.git |
本地文件产生的问题
如果你是本地文件产生错误无法上传,可以考虑以下方式。
重置git的deploy文件夹
huahua提供的方法,删除博客文件夹中的.deploy_git
文件夹,然后在终端cd这个文件夹后输入git config --global core.autocrlf false
多系统混合编写导致的问题
silver提供的方法,cd进.deploy_git
文件夹,输入git config –global core.autocrlf false。
删除lock文件
小青提供的方法:找到.deploy_git
文件夹中的index.lock
文件,删除就好了。
强制推送(不推荐)
cd进.deploy_git
文件夹,然后使用git push -f
强制推送
回滚版本
Perry提供的方法
打开.deploy_git\.git\logs
路径下的HEAD
查看最近一次正确的那次的commitId
然后用git reset --hard commitId
回滚
大功告成!
然后可以直接hexo clean && hexo g && hexo d
,发现就可以部署上了。
- 感谢你赐予我前进的力量