部署博客系统
hexo部署
主要根据教程https://hjxlog.com/posts/20191130a1.html 。
主要分为服务器端和local两部分。
准备
部署环境:
Server
- CentOS 8 (Aliyun ECS)
- 使用密钥认证
- git
1
yum install git
- CentOS 8 (Aliyun ECS)
Client/Local
(针对Windows)配置密钥
aliyun登录密钥(略)
同步账户密钥(.ssh文件夹下的认证密钥)(略)
可使用下列代码检验:(如使用git用户)
1
ssh -v git@$serverIP
安装hexo-cli
1
npm install hexo-cli -g
创建本地git库
新建一个文件夹用于存储
注意,文件路径不要包含
#
字符,1
2mkdir $RepoDir
cd $RepoDir使用hexo的初始化命令
1
hexo init
所得文件夹中:
/scaffolds是模版文件夹,当你新建文章时,Hexo 会根据 /scaffold 来建立文件。
/source文件夹是存放用户资源的地方。包括md文件等
/themes是主题文件夹,Hexo 会根据主题来生成静态页面。
常用命令
- 使用
hexo new post -p "[目录/文章名]"
创建在指定目录下的markdown文章,会根据post的模板初始化
- 使用
本地调试
- 使用
hexo g
生成静态网页,在/public 文件夹中; - 使用
hexo s
生成本地服务器,可通过浏览器访问。
- 使用
远程推送
创建Git仓库、更改权限
1
2
3
4
5mkdir $GitRepoDir
cd $GitRepoDir
git init --bare $hexoRepoName.git
chown -R git:git $GitRepoDir
chmod -R 755 $GitRepoDir创建实现自动部署的Git钩子
1
vim $hexoRepoName.git/hooks/post-receive
使用
Vim
添加以下两行:1
2
git --work-tree=$WebDir --git-dir=[$hexoRepoName.git] checkout配置Nginx
需要在相应目录(
$WebDir
)下创建网站,并配置静态网站
配置图床chevereto
准备
chevereto (1.1.4)
- 数据库:Mysql
- Nginx
- PHP(1.1.4版本目前仅支持PHP7.2)
- chevereto源码 (Git或FTP)
Aliyun
可参考https://help.aliyun.com/product/31815.html
- 配置好的oss bucket
- AccessKeyId/AccessKeySecret
- ossfd
安装和配置chevereto
- 将chevereto源码解压至网页服务器目录下;
- 修改Nginx配置
1
2
3location / {
try_files $uri $uri/ /index.php?$query_string;
}- 或配置宝塔系统中网站伪静态设置上述规则 ,参考https://www.jianshu.com/p/51c2cc86bbf9
- 访问网站,进行数据库配置等
挂载oss
- 在Server安装ossfs:可参考https://help.aliyun.com/product/31815.html
- 主要命令:
1
2wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
sudo yum localinstall $your_ossfs_package
过程中会自动配置fuse依赖等
完善依赖
由于CentOS 8 缺失文件,会有报错:1
ossfs: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory
需要安装相应的依赖,可访问https://pkgs.org/download/libcrypto.so.10 了解详情,主要需要
compat-openssl10-1.0.2o-3.el8.i686.rpm
包。使用命令
1
2wget http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
yum localinstall compat-openssl10-1.0.2o-3.el8.x86_64.rpm即可安装。
挂载配置
可具体参考[ossfs阿里云帮助文档]
配置账号访问信息
主要涉及my-bucket:my-access-key-id:my-access-key-secret参数
使用命令配置访问信息文件并进行权限设置(重要):1
2echo $my-bucket:$my-access-key-id:$my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs挂载bucket到chevereto的
/images
目录,参考代码:(注意需要先清空/images
目录)1
ossfs $bucket $my-mount-point(这里即chevereto的/images目录) -ourl=$my-oss-endpoint(需查看aliyun OSS详情) -o allow_other
备注:如需取消挂载,应使用
1
fusermount -u $[挂载到的目录]
备注:如需开机自动挂载,减少维护成本,应配置开机启动服务
创建文件/etc/init.d/ossfs
,内容为1
2
3
4
# chkconfig: 2345 10 90
# description: ossfs service
ossfs $bucket $my-mount-point(这里即chevereto的/images目录) -ourl=$my-oss-endpoint(需查看aliyun OSS详情) -o allow_other并为其添加权限
1
chmod a+x /etc/init.d/ossfs
开启启动服务
1
chkconfig ossfs on
完成了图床的准备,具体使用可参照chevereto的具体配置。