本地部署可以前往我之前用Hexo搭建个人博客进行部署和搭建
在部署时我使用的时ubuntu(Ubuntu 22.04.3 LTS)+宝塔进行搭建
宝塔的安装 {#宝塔的安装}
首先我们可以先连接上服务器安装宝塔桌面环境
我们可以使用ssh工具连接上自己的服务器,或使用服务商自带的ssh网页共具来进行连接
这里我使用window自带的ssh工具来连接服务器
使用win+r建打开快捷运行栏,在其中输入
|-----------|--------------------------|
| 1
| ssh root@你的服务器地址
|
回车,这是会进入cmd界面,在root@你的服务器IP地址's password:后面输入你的服务器密码,注意在输入密码时是看不见的在输入完正确的密码后回车后即可
![ssh连接完成图片.png](https://image.mnchen.cn/2024/02/屏幕截图 2024-02-23 144714.png)
连接成功后复制对应的系统安装指令,回到ssh界面。
因为Linux的复制粘贴与window的不同,在Linux中是使用Shift+Insert进行粘贴的,在window自带的ssh中可以使用鼠标右键进行粘贴
可前往宝塔官网查看安装地址(https://bt.cn)
安装时一直回车就好了,或者有什么需要修改可以自行修改
在安装完成后可以看到面板的外网地址,在IP地址后有一串段口号,需要到对应的服务供应商去开启端口
开启后选中外网地址使用ctrl+Insert进行复制,到浏览器中打开,输入账号密码进入面板
nginx的安装 {#nginx的安装}
进入宝塔面板后我们就可以退出Windows自带的ssh工具了
在宝塔面板的左侧有一个终端工具,可以在那里进行输入,在安装完宝塔后我们首先安装nginx
在安装完宝塔后打开的第一时间就能看到两个环境安装,去安装nginx的就好了
如果之前安装过宝塔就进入软件商店中安装nginx
git配置 {#git配置}
在安装完nginx后,进入宝塔自带的终端在命令框输入
安装git {#安装git}
安装非常直接,仅仅以 sudo 权限用户身份运行下面的命令:
|-------------|----------------------------------------------|
| 1 2
| sudo apt update sudo apt install git
|
运行下面的命令,打印 Git 版本,验证安装过程:
|-----------|-----------------------|
| 1
| git --version
|
创建git用户 {#创建git用户}
1.在命令框输入(下面不做重复提示了)
|-----------|---------------------|
| 1
| adduser git
|
2.添加git账户权限
首先输入
|-----------|--------------------------------|
| 1
| chmod 740 /etc/sudoers
|
开启权限,在宝塔面板文件中打开**/etc/sudoers**
![屏幕截图 2023-08-27 113642.png](https://image.mnchen.cn/2024/02/屏幕截图 2023-08-27 113642.png)
双击进入文件中,找到以下代码
|-------------|------------------------------------------------------------------------------|
| 1 2
| ## Allow root to run any commands anywhere root ALL=(ALL) ALL
|
添加以下内容:
|-----------|-----------------------------------|
| 1
| git ALL=(ALL:ALL) ALL
|
改成
|---------------|-----------------------------------------------------------------------------------------|
| 1 2 3
| # User privilege specification root ALL=(ALL:ALL) ALL git ALL=(ALL:ALL) ALL
|
后就可以保存退出了
3.改回权限
|-----------|--------------------------------|
| 1
| chmod 400 /etc/sudoers
|
5.切换至git用户,创建 ~/.ssh 文件夹
|-------------|-----------------------------|
| 1 2
| su git mkdir ~/.ssh
|
配置本地ssh {#配置本地ssh}
在创建号.ssh文件夹后,先回到电脑配置本地ssh,如果之前配置过就直接复制位于C盘用户中.ssh文件夹里面的id_rsa.pub,用记事本打开,c全选复制就好了
在本地电脑打开聪明的输入
|-------------|---------------------------------------------------------------------------------------------|
| 1 2
| ssh-keygen -t rsa -C "your email@example.com" //引号里面填写你的邮箱地址,比如我的是mqer06328@163.com
|
之后会出现:
|---------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3
| Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): //到这里可以直接回车将密钥按默认文件进行存储
|
然后会出现:
|---------------|----------------------------------------------------------------------------------------------------------------|
| 1 2 3
| Enter passphrase (empty for no passphrase): //这里是要你输入密码,其实不需要输什么密码,直接回车就行 Enter same passphrase again:
|
接下来屏幕会显示:
|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6
| Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 这里是各种字母数字组成的字符串,结尾是你的邮箱 The key's randomart image is: ssh配置这里也是各种字母数字符号组成的字符串
|
运行以下命令,将公钥的内容复制到系统粘贴板上
|-----------|----------------------------------|
| 1
| clip < ~/.ssh/id_rsa.pub
|
在宝塔面板中打开根目录下的home文件中git的.ssh文件夹
在里面创建一个名为authorized_keys的文件
创建后双击打开,将配置在本地的ssh粘贴保存在其中
接着,输入一下命令,赋予权限
|---------------|---------------------------------------------------------------------------|
| 1 2 3
| chmod 600 /home/git/.ssh/authorized_keys chmod 700 /home/git/.ssh
|
在本地Git终端中测试是否能免密登录git,其中SERVER为填写自己的云主机IP,执行输入yes后输入你之前配置的git密码,无报错就说明好了,在电脑本地打开cmd,输入以下命令其中SERVER填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。
|-----------|---------------------------|
| 1
| ssh -v git@SERVER
|
仓库目录及相关配置 {#仓库目录及相关配置}
先返回root账号输入以下命令
|-----------|-----------------|
| 1
| su root
|
进入根目录
|-----------|--------------|
| 1
| cd ~
|
在根目录下创建hexo/repo作为Git仓库目录
|-----------|-----------------------------|
| 1
| mkdir -p /hexo/repo
|
赋予权限:
|-------------|-------------------------------------------------------------|
| 1 2
| chown -R git:git /hexo/repo chmod -R 755 /hexo/repo
|
接下来创建hexo目录作为网站根目录,并赋予权限:
|---------------|-------------------------------------------------------------------------------|
| 1 2 3
| mkdir /hexo/hexo chown -R git:git /hexo/hexo chmod -R 755 /hexo/hexo
|
接下来创建一个空白的git仓库
|-------------|------------------------------------------------|
| 1 2
| cd /hexo/repo git init --bare hexo.git
|
创建一个新的 Git 钩子,用于自动部署.
在 /hexo/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
在宝塔文件中打开/hexo/repo/hexo.git/hooks,在里面创建一个名为post-receive的文件
双击打开,将以下代码输入进去
|-------------|------------------------------------------------------------------------------------------|
| 1 2
| #!/bin/bash git --work-tree=/hexo/hexo --git-dir=/hexo/repo/hexo.git checkout -f
|
修改权限:
|-------------|-----------------------------------------------------------------------------------------------------------------|
| 1 2
| chown -R git:git /hexo/repo/hexo.git/hooks/post-receive chmod +x /hexo/repo/hexo.git/hooks/post-receive
|
将整个hexo文件夹权限给到git用户
|-------------|---------------------------------------------------|
| 1 2
| chown -R git:git /hexo chmod -R 755 /hexo
|
到这里Git仓库已经搭建完毕了。
本地配置 {#本地配置}
打开本地的博客文件夹,修改 _config.yml文件,找到deploy,修改成以下
|-------------------|-------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5
| deploy: - type: git #repo改为repo: git@你的域名:/hexo/repo/hexo.git repo: git@hjxlog.com:/hexo/repo/hexo.git branch: master
|
最后在本地电脑hexo博客的根目录右击,Git Bash Here,输入以下命令部署
|---------------|-------------------------------|
| 1 2 3
| hexo cl hexo g hexo d
|
宝塔设置网站 {#宝塔设置网站}
进入宝塔面板中的网站,添加一个新的站点 ,将网站目录改到/hexo/hexo就好了
结尾 {#结尾}
因为这篇网站是我直接的部署方案,可能还有什么不到为的地方。
总的来说,部署还是比较简单的,第一次没成功的同学不要轻易放弃,多去网上找找答案,努力解决问题,加油!