草庐IT

【hexo博客搭建】将搭建好的hexo博客部署到阿里云服务器上面(下)

彩虹猫~喵ヾ(≧▽≦*)o 2023-03-28 原文

一.部署到阿里云服务器

既然博客也已经成功在本地部署,然后主题也成功安装,接下来就可以部署到服务器上面了,如果你也想要魔改matery主题,可以去各种博客上面找一找大佬的教程,或者联系我,也可以让你少走一些弯路(❁´◡`❁)。

1.部署到服务器需要做的事情

首先需要在阿里云上面购买一台服务器,然后购买域名,如果是买的国内的服务器需要完成备案,假设,到这个地方,你已经拥有了自己的服务器和域名。


2.生成ssh公钥

在本地Windows10上用管理员模式打开dos窗口(cmd),输入如下命令生成ssh公钥

生成ssh公钥

ssh-keygen -t rsa

如下图,红色箭头是输入的ssh公钥命令,划上红线的地方是公钥保存的地方,我这里保存的地方是C:\Users\Takagisan.ssh\id_rsa.pub,如果是在你的电脑上面应该就是C:\Users(用户)\你的用户名.ssh\id_rsa.pub

为什么要这样做?因为后面会用上呗。


3.配置_config.yml

这个操作也是在本地Windows10上面,这里是配置自动化部署,我们先进入我们的hexo博客文件夹,打开blog目录下的_config.yml,到底部找到deploy就在更换主题地方的下面,如下图设置

蓝色箭头是我们要打开的配置文件,黑色箭头是上面配置主题的地方,红色箭头是我们要修改的地方其中在倒数第二行的@server为你所购买的域名解析后的地址,或者是IP地址

例如?

deploy:
  type: git
  repo: git@blog.takagisan.top:/var/repo/hexoBlog.git #用户名@服务器Ip:git仓库位置
  branch: master

4.阿里云服务器上的hexo博客搭建和本地部署到服务器仓库

到了这里,就已经开始了,在服务器上的操作。

4.1安装宝塔面板

首先看你在阿里云上购买的是什么服务器,比如我购买的是Centos,在宝塔官网选择自己的版本,比如我的服务器是Centos版本的就输入如下命令。

Centos安装宝塔面板

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

因为我服务器已经装过宝塔面板了,不能重新装,所以这里只能打字说明了,安装完毕之后,在终端的下面会提示登录名和密码,还有宝塔登录地址,在浏览器上登录之后,选择LNMP即可,然后在左边侧边栏一栏选择。

网站--添加站点--输入解析后的域名(或者IP地址)--底部PHP版本选择纯静态,提交,然后网站创建完成。

如下图,红色箭头是第一个点击的地方,蓝色箭头是你的域名,黑色箭头选择纯静态即可。

这样做完之后,需要配置nginx了,点击网站名--配置文件,如下

server
{
listen 80;
server_name blog.takagisan.top;	\# server_name 填写自己的域名
index index.php index.html index.htm default.php default.htm default.html;
root /var/www/hexo;	\# 这里root填写自己的网站根目录,修改为/var/www/hexo

如下图,看箭头模仿修改

然后保存即可


4.2阿里云服务器部署仓库

如果你的服务器是一台新的机器我建议,输入如下命令,下面操作我建议是root用户操作

安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

安装编译工具

yum install gcc perl-ExtUtils-MakeMaker package

当然你服务器有了编译工具和依赖库就可以不用输入上面的命令

查看git版本,做这个操作的原因是如果git版本低,需要下载新版本的git,当然也可以不用下载,如果你不想更新git可以跳过删除旧版本git--下载新版本git的操作,直接到创建git账户的地方开始,当然我还是建议更新。

查看git版本

git version

删除git

yum remove git -y

下载并且解压最新版本git

cd /usr/local/src  #进入下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz    #下载最新版
tar -zxvf git-2.28.0.tar.gz   #解压到当前文件夹

编译并安装

cd git-2.28.0  #进入文件夹
make prefix=/usr/local/git all #编译源码
make prefix=/usr/local/git install    #安装路径

配置git环境变量

echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

刷新环境变量

source /etc/bashrc

查看版本号

git --version

创建git账户并且添加账户的权限

adduser git		#创建git账户
passwd git		#给git账户设置密码
chmod 740 /etc/sudoers

修改内容

vim /etc/sudoers  #打开需要修改的文件

在上面打开的文件里面找到如下内容

Allow root to run any commands anywhere
root 		ALL=(ALL)		ALL

添加如下内容

git		ALL=(ALL)		ALL

按下键盘上的Esc按键,然后进入进入编辑模式(shift+;),输入:wq即可保存退出,然后修改权限。

chmod 400 /etc/sudoers

切换到git用户,并且创建~/.ssh文件和~/.ssh/authorized_keys文件

su git		#切换到git账户
mkdir ~/.ssh	#创建~/.ssh文件
vim ~/.ssh/authorized_keys		#打开文件

然后把前面在Windows10中生成的id_rsa.pub文件中的公钥内容复制到authorized_keys里面去

给文件赋予权限

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

测试是否能免密登录git

ssh -v git@你的服务器IP地址

创建仓库目录

mkdir /var/repo  #repo作为git仓库目录
chown -R git:git /var/repo
chmod -R 755 /var/repo

创建网站目录

mkdir /var/www
mkdir /var/www/hexo
chown -R git:git /var/www/hexo
chmod -R 755 /var/www/hexo

创建一个裸的git仓库

su root #切换到root用户
cd /var/repo
git init --bare hexoBlog.git

同步网站根目录

vim /var/repo/hexoBlog.git/hooks/post-receive

然后按i进入编辑模式,在这个文件里面添加两行代码,就是下面的两行代码直接添加进去即可,作用是指定git工作树源代码和git目录。

# !/bin/bash

git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f

然后Esc,进入编辑模式:wq保存退出即可

修改文件权限使得可以运行

chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
chmod +x /var/repo/hexoBlog.git/hooks/post-receive

至此Git仓库搭建完毕。


4.3重启宝塔服务和推送本地文件到服务器

重启宝塔面板

service bt restart

然后回到本地Windows10系统

清理缓存并且推送到服务器

hexo clean #清理缓存
hexo g		#重构文件
hexo d		#推送到服务器

至此,就可以打开浏览器输入域名就可以访问到Hexo部署在阿里云上的博客了。


参考文献:

[1]:https://fuchenchenle.cn/2020/08/18/hexo%E9%83%A8%E7%BD%B2%E8%85%BE%E8%AE%AF%E4%BA%91/#Fuchenchenle

[2]:https://quefeixi.com/archives/18.html

[3]:https://developer.aliyun.com/article/764438

有关【hexo博客搭建】将搭建好的hexo博客部署到阿里云服务器上面(下)的更多相关文章

  1. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  2. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  3. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  4. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  5. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  6. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  7. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  8. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  9. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  10. ruby - 在好的 Ruby 代码中没有注释是否被认为是可以接受的? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我审查了一些用Ruby编写的专业代码,没有发现任何评论。代码读起来相当清晰,但没有self记录。我应该期望专业编写的Ruby代码有注释吗?或者,是否有一些Ruby原则认为注释不是必需的?

随机推荐