Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

这篇具有很好参考价值的文章主要介绍了Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我的Hexo博客地址

有问题可以留言相互讨论,我的hexo博客地址,请勿频繁访问或者攻击,仅供学习和参考。

主要在腾讯云服务器Centos7.9版本,利用宝塔搭建Hexo博客站点,Windows本地上搭建Hexo博客项目,实现本地一键自动化部署到服务器上,拥有属于自己的博客网站

Centos 安装git并进行配置,利用宝塔配置站点

查看git 版本

git --version

安装依赖

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker

卸载旧版本git

yum remove git

打开文件夹

用于存放下载的git包

cd /usr/local/src/

下载最新版git压缩包

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.xz

解压

tar -xvf git-2.32.0.tar.xz

切换到解压后的文件目录

cd git-2.32.0

编译

make prefix=/usr/local/git all

会显示一堆.o类型的文件,表示正在从源码编译。
未显示错误直接跳到“安装”步骤

如果出现错误collect2: error: ld returned 1 exit status.
Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

原因是gcc版本较低所致,与所需编译条件不匹配。

升级gcc版本(可选)

  • 安装scl源
yum install centos-release-scl scl-utils-build -y
  • 列出scl可用的列表
yum list all --enablerepo='centos-sclo-rh' | grep "devtoolset-"
  • 安装8版本的gcc、gcc-c++、gdb工具链(toolchian)
yum install devtoolset-8-toolchain -y

  • 启动gcc8
scl enable devtoolset-8 bash    

报错:bash: __vsc_prompt_cmd_original: command not found

bash: __vsc_prompt_cmd_original: command not found

借用stackoverflow上的Solution

You can test the following method.

Using an editor such as nano or vim, Add the line unset PROMPT_COMMAND to your .bashrc file, and it will take effect on the next session.
To apply the change immediately for the life of the current shell session, type unset PROMPT_COMMAND in your terminal window.

vi ~/.bashrc  

用于在行尾添加unset PROMPT_COMMAND

source ~/.bashrc  

表示重新加载文件.bashrc

执行完毕后再次启动gcc8

scl enable devtoolset-8 bash    

通过scl命令启动gcc,这个只是暂时的,当你的shell关闭后或者重启就会恢复原来的版本,要想一直使用升级后的版本可以使用如下命令:

echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile

再次执行编译命令发现又报错:

reftable/libreftable.a(block.o): In function `block_reader_init':
/usr/local/src/git-2.37.3/reftable/block.c:218: undefined reference to `uncompress2'
collect2: error: ld returned 1 exit status
make: *** [Makefile:3077: t/helper/test-tool] Error 1

暂时解决不了这个问题先搁置。
可能是由于git版本比较新,用到了一些新的函数。建议安装旧版本git

安装

make prefix=/usr/local/git install

配置环境变量

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile && source /etc/profile

也可以将该语句直接写入相应的文件中,再执行source命令使生效。

vim /etc/profile

将下面两行命令添加到profile文件末尾

PATH=$PATH:/usr/local/git/bin   # git 的目录
export PATH

按i进入编辑模式,按esc退出,再按:wq保存编辑。
使写入语句生效:

 source /etc/profile

查看安装的git版本

git --version

成功出现git version 2.32.0即表示安装成功。

配置Git

创建git用户

adduser git

设置用户密码(可选)

passwd git

分配权限

chmod 740 /etc/sudoers
vim /etc/sudoers

按 i 键进入文件的编辑模式,找到如下字段
root ALL=(ALL) ALL
在其后面增加一句:

git     ALL=(ALL)       ALL

按 Esc 键退出编辑模式,输入:wq 保存退出。
退回权限:

chmod 400 /etc/sudoers

生成Windows本地密钥

这部分很简单,百度搜索git的ssh配置即可。

配置密钥

  • 打开本地端,也就是自己Windows主机C盘目录下的用户文件夹下的用户名文件夹下的.ssh文件文件夹,打开id_isa.pubCentos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

复制里面的内容。

  • 返回Linux服务器端,创建.ssh文件夹
    su git
    mkdir ~/.ssh
    
  • 创建.ssh/authorized_keys文件,打开authorized_keys文件并将刚才在本地机器复制的内容拷贝其中并保存
    vim ~/.ssh/authorized_keys
    

按i进入编辑模式粘贴完按 Esc 键退出编辑模式,输入:wq 保存退出。

  • 修改权限
    chmod 755 ~
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

测试连接

yourIp为远程服务器的ip地址,腾讯云轻量云服务器一般是公网IP:12X.XXX.XXX.XX

ssh -v git@yourIp     //yourIp为你的服务器ip

如果设置有密码,输入密码即可连接到远程终端。

创建远程博客目录

  • 切换到远程Linux服务器端
  • 切换到root用户,创建一个目录用于存储网站的根目录/home/hexo并赋给相应权限
    su root
    mkdir /home/hexo
    chown git:git -R /home/hexo
    

Linux自动化部署设置

Linux服务器配置

所要达到的实际效果是本地创建博客后能一键部署到服务器上,后续再修改博客的时候可以一键同步到服务器上,这就是自动化部署。
首先要在远程服务器上配置相应文件。

  • 获取root权限
    su root
    
  • 建立git仓库并初始化
    cd /home/git
    git init --bare blog.git
    
  • 修改blog.git的权限(-R 是递归,即文件夹下的所有文件夹或文件都会递归修改权限)
    chown git:git -R blog.git
    
  • 在 /home/git/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个新的 git 钩子 post-receive,用于自动部署。
    vim blog.git/hooks/post-receive
    
  • 按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录。
     #!/bin/bash 
     git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f 
    

按 Esc 键退出编辑模式,输入:wq 保存退出。

  • 修改文件的执行权限
    chmod +x /home/git/blog.git/hooks/post-receive
    

宝塔配置

这里采用宝塔的一键LAMP配置,然后就可以很方便的使用一些功能。

添加站点

Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

  • 在域名中添加自己购买的域名,并确保已经解析IP到自己腾讯云服务器上了,这个步骤网上有很多教程,自行完成域名相关问题,证书SSL申请等,如果域名有解析可以直接勾上。
  • 证书的添加自行百度搜索,强制https开关打开,保证安全性。
  • 可以看到这时站点的目录在/www/wwwroot/所填写的域名,与我们实际的Hexo博客的根目录位置/home/hexo不符
  • 一个可行的解决办法是将/home下的hexo文件夹移到/www/wwwroot/所填写的域名文件夹下,这样就可以通过域名加上/hexo的方式来访问到我们的博客即
    www.domain.com/hexo
    这里的www.domain.com要改成自己购买的域名,下同
  • 修改方式如下:
  • 在 /home/git 下,有一个自动生成的 hooks 文件夹,进入该文件目录下,我们创建一个新的 git 钩子 post-receive,用于自动部署。
    cd /home/git
    vim blog.git/hooks/post-receive
    
  • 按 i 键进入文件的编辑模式,在该文件中重写原有的两行代码,改变工作树目录为宝塔站点目录(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录。
     #!/bin/bash 
     git --work-tree=/www/wwwroot/www.domain.com/hexo --git-dir=/home/git/blog.git checkout -f 
    
  • 按 Esc 键退出编辑模式,输入:wq 保存退出。
  • 注意重新修改git用户对该目录的访问权限
    chown git:git -R /www/wwwroot/www.domain.com/hexo
    


Windows搭建Hexo,配置自动化部署

Windows安装Git

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具,以后就用这个工具来使用git。
可以更改Git的安装目录到其他磁盘,环境变量一般安装的时候会自动配置,命令行界面如果输入git --version产生相应的git版本则表示成功安装。

Windows安装Node.js并初始化Hexo

  1. 下载node.js安装程序(windows.msi)(也可以安装在其他盘中) 同样,环境变量也会在安装程序的时候自动配置了。

  2. 命令行界面输入以下命令,安装Hexo

    $ npm install -g hexo-cli
    
  3. 一般Windows的cmd界面都是在C盘,如果想在其他盘建立博客的目录,可以先跳转的其他路径。键入下面命令可以在当前目录创建文件夹名为Blog的目录

    hexo init Blog
    
  4. 进入该文件夹并执行安装命令

    cd Blog 
    npm install
    

    新建完成后,指定文件夹目录下有:

    node_modules: 依赖包
    public:存放生成的页面
    scaffolds:生成文章的一些模板
    source:用来存放你的文章
    themes:主题
    _config.yml: 博客的配置文件

    安装部署包

    npm install hexo-deployer-git --save
    
  5. 本地启动Hexo服务

    hexo g
    hexo server
    

    在浏览器输入localhost:4000就可以看到生成的博客了。ctrl+c关掉服务

Windows本地端配置自动化部署

配置hexo

  • 配置 _config.yml 文件
    在Blog的文件夹下找到 _config.yml 文件并打开,找到文件末尾的deploy 做以下配置

    deploy:
    	type: git
    	repo: git@这里改为服务器公网IP:/home/git/blog.git
    	branch: master 
    

    保存并退出。
    到这里就要开始进行真正的部署环节了

    cd Blog
    hexo clean
    hexo generate
    hexo deploy
    
  • cmd进入命令行界面,先进入你的Blog文件夹下。

  • 执行hexo clean命令

  • hexo generate 命令可以简写成hexo g 正如前面的 hexo server可以简写成hexo s

  • hexo deploy 命令可以简写成hexo d

  • 正常情况下此时可以将本地的博客部署到远程服务器上,通过配置好的远程服务器的git用户登录来达到这一目的,但是可能会出现一些奇奇怪怪的错误,最主要的还是git用户对所要替换的远程目录权限上的问题,和一些配置文件的路径填写有问题。下面统一解决一些常见的错误。



常见问题

问题1

hexo自动化部署显示Permission denied或有权限问题

Solution 1:

通过在服务器端执行chmod命令,修改工作目录和git目录的文件权限
即类似

chown git:git -R /www/wwwroot/www.domain.com/hexo

最后一个参数为修改的文件夹目录,-R表示递归,即文件夹下所有的东西均修改权限。

Solution 2:

可以直接以root用户访问部署远程服务器,即在本地Blog文件夹下的_config.yaml中修改deploy的repo参数。

deploy:
	type: git
	repo: root@这里改为服务器公网IP:/home/git/blog.git
	branch: master 

问题2

服务器搭建好的页面没有图片,css等样式

Solution :

可以查看博客页面的源码,发现url引用的链接是什么example.com下的东西,很明显,这里需要改动一下,可以不直接改源码,改动本地博客的_config.yaml文件里的内容,再次部署上传即可。
Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

找到配置文件下的url参数,将内容修改为http://公网ip/hexo或者https://www.domain.com即可,这其实是访问的刚才宝塔添加的站点(/www/wwwroot/域名)下的/hexo文件夹下的资源。

url: https://www.domain.com/hexo

重新执行部署的三条命令
hexo clean
hexo g
hexo d
这时格式和图片就能正常显示在服务器上了。

问题3

Apache虚拟目录配置

由于本人修改配置过于频繁,很难记清现在将Apache配置文件改动成什么样了,所以大家可能在宝塔的Apache配置上会出现一些问题。
但我记得在宝塔上安装Apache是已经写好了虚拟目录有关的配置文件

Solution :

在宝塔面板->软件商店,Apache设置里点击配置修改,Ctrl+F查找,输入follow,可以看到下图位置
Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

将其修改成如图所示内容即可。

<Directory />
    Options FollowSymLinks
    AllowOverride none
    Require all granted
</Directory>

其中Options FollowSymLinks换成Options Indexes FollowSymLinks也能达到同样的效果,不过此时访问者同样能访问到该虚拟目录下的文件资源,相当于直接暴露了部分源码,不太推荐修改成带Indexes的配置。
之后就可以通过https://域名/hexo的方式在本机访问到服务器上搭建的博客了。

问题4

防火墙问题

Solution :

一般本机防火墙不需要任何的设置,只可能是服务器防火墙出现问题。
一般要在宝塔面板或命令行界面打开这些端口
Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器

实在解决不了端口放行的问题就先暂时关闭防火墙进行网站的访问测试。文章来源地址https://www.toymoban.com/news/detail-455608.html

到了这里,关于Centos7.9宝塔搭建Hexo博客,实现本地一键自动化部署到服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu宝塔面板本地部署Emlog博客网站结合内网穿透实现远程访问

    博客作为使用最广的个人在互联网的发声网站,在很长一段时间里,都被大家视作在互联网上发声的主要通道之一。虽然之后出现的即时聊天工具和朋友圈崛起,抢夺了不少博客的空间,但其仍占有不小的市场份额。也正因博客很重要,才吸引了不少开发者,制作出了各种各

    2024年02月03日
    浏览(65)
  • centos7搭建本地harbor仓库

            Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以需要安装Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker-ce版本不小于17.06.0,Docker-compose版本大于等于1.6.0         1、安装docker-ce 及基础环境    

    2024年02月07日
    浏览(38)
  • Hexo+Github搭建博客

    今天教大家搭建免费的个人博客,注意是 免费!免费!免费! 博客地址:https://1902756969.github.io/Hexo/ github地址:https://github.com/ 注册,注意是英文,因为是外链所以给大家推荐一款代理加速(不是翻墙)软件 FastGithub.UI:https://cloud.tsinghua.edu.cn/d/df482a15afb64dfeaff8/files/?p=%2Ffastgithu

    2024年02月01日
    浏览(45)
  • github+hexo 博客搭建

    环境:win11+wsl 打开终端安装以下软件 登录你的 GitHub 帐号,并创建一个新的仓库,仓库名是 username.github.io ,其中 username 是你的 GitHub 用户名。将该仓库设置为公开仓库。 设置ssh 创建一个新的文件夹,用于存储你的博客项目。 在终端中,进入该文件夹,并运行以下命令来初

    2024年02月10日
    浏览(52)
  • Hexo博客搭建

    换了一台电脑,于是从新搭建了一会博客,并且写下这篇博客进行记录,以便于以后使用 首先在电脑上安装node.js和git 然后可以在cmd处运行下列代码验证并更改淘宝源 在cmd处设置git的账号信息 注册一个github或者gitee账号,这里使用gitee,是国内网站,访问较快 之后按照以下步

    2024年02月05日
    浏览(42)
  • Hexo+Github博客搭建教程

    注意,这篇文章篇幅较长,主要针对新手,每一步很详细,所以可能会显得比较啰嗦,所以建议基础比较好小伙伴根据目录选择自己感兴趣的部分跳着看,不要文章没看,上来先喷一下!谢谢*[Math Processing Error]⊙o⊙*。 教程内容随意复制使用,引用的话请加一个参考链接,谢

    2024年01月16日
    浏览(50)
  • Hexo搭建个人博客(github)

    记录搭建个人博客的过程 本文使用Hexo+GitHub Page的方法搭建博客,下面是环境准备的步骤,包括nodejs的安装和git的安装(注:本教程仅适用于windows用户) 详情请参考这篇博客: NVM的安装使用与配置(node, npm, yarn 为了把本地的网页上传到git上,需要在系统上下载git,详情参考

    2024年02月21日
    浏览(49)
  • hexo&github 搭建博客(保姆级)

    安装 Hexo 相当简单,只需要先安装下列应用程序即可: Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本) Git 具备以上环境后我们安装hexo 配置系统环境变量 在选好的目录下运行 通过以上步骤,最简单的hexo网站就好了,可以直接访问http://localhost:4000/,来看h

    2024年02月05日
    浏览(77)
  • Hexo 搭建博客并推送GitHub

    浏览器访问: http://localhost:4000/ 1、首先要注册一个Github账号,新建一个name.github.io的仓库,也就是new repository。 因为博主之前创建好了现在就不能创建了。创建好后可以在你的仓库里新建一个index.html,里面可以随意输入几个字符,保存。 选择仓库的settings选项,在菜单栏找到

    2024年02月07日
    浏览(41)
  • Hexo+Github+Netlify博客搭建教程

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 博客系列 ✨特色专栏: MySQL学习 🥭本文内容:Hexo+Github+Netlify博客搭建教程 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家访

    2024年02月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包