环境:
centos 7 64
用到的项目
博客halo:博客项目本身。https://docs.halo.run/
主题sakura:博客主题(自带看板娘live2d插件)。https://github.com/LIlGG/halo-theme-sakura
live2d-api:主题插件中使用到的live2d接口。https://github.com/fghrsh/live2d_api
目标:使用用户test 运行 halo博客以及live2d-api,然后使用Nginx进行反代
用到的软件
XShell、XFTP
用于windows远程管理服务器
搭建过程
ECS配置
1.更换操作系统
首先我们需要停止实例,然后,在网址https://ecs.console.aliyun.com/#/server/region/cn-heyuan,找到实例-更多-云盘和镜像-更换操作系统,我这里选择的是centos 7 64位
2.安全组配置
只有配置了安全组才可以允许指定的ip访问指定的端口,以后用到
3.宝塔面板安装(选做)
宝塔面板可以很方便的安装我们所需要的软件例如LNMP
同时也很方便的进行linux的防火墙管理
博客搭建
1.halo博客安装
教程网址:https://docs.halo.run/install/linux
这里我是使用的用户test进行安装,然后使用Nginx进行反向代理
跟着教程一步步安装就行,这里就不多赘述
2.主题安装
halo dashboard - 外观 - 主题 - 安装
跟随指引安装自己喜欢的主题,我这里选择自带live2d插件的sakura主题
3.开启Live2d插件
开启:主题 - 设置 - 插件功能 - Live2d插件
配置看live2d板娘:主题 - 设置 - 看板娘(需要先开启live2d插件)
这里有一个默认的看板娘api地址,如果需要使用自己的模型则需要自己配置自己的api
-------------------以下为live2d - api配置过程-------------------------
PHP环境搭建
live2d-api的作者使用php编写的api,所以我们也搭建一个php环境
这里具体配置方法百度即可,如果使用宝塔面板则可以一键配置。
宝塔面板安装的软件都在/www/server目录下
PHP FPM配置文件php-fpm.conf修改
文件位置:
- 自行安装的参考位置:/usr/local/php/etc/
- 宝塔面板:/www/server/php/74/etc
修改内容:
主要修改owner与group为test用户,这决定着运行进程的用户是谁,决定着文件的访问权限。参考如下
[global]
pid = /www/server/php/74/var/run/php-fpm.pid
error_log = /www/server/php/74/var/log/php-fpm.log
log_level = notice
# 进程池名称
[www]
# 接受 FastCGI 请求的地址,或者使用127.0.0.1:9000。注意这里的配置影响着后面nginx的配置
# Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket.
# 其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决
# 于你的PHP-FPM配置:
listen = /tmp/php-cgi-74.sock
listen.backlog = 8192
#允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接
listen.allowed_clients = 127.0.0.1
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
listen.owner = test
listen.group = test
listen.mode = 0666
#启动进程的帐户和组
user = test
group = test
Nginx配置文件修改
主要修改如下注释:
# 运行Nginx的用户
user test;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
...
...
...
upstream halo {
# halo博客启动的地址,默认如下
server 127.0.0.1:8090;
}
upstream live2d_api {
# live2d_api 的访问地址
server 127.0.0.1:8091;
}
server {
listen 80;
listen [::]:80;
server_name localhost;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 通过一个端口的不同路径访问live2d_api
location /live2d_api {
proxy_pass http://live2d_api;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 配置php监听端口以及文件路径
server {
listen 8091;
server_name localhost;
location / {
# 存放live2d_api项目的路径,注意项目的根目录为live2d_api,但是这里没有给出,而是给出的上一级目录,是因为上面同一端口访问不同路径的时候会进一步制定项目的根目录
# 例如这里我的根目录 /home/test/.halo/templates/live2d_api;但是做如下配置:
root /home/test/.halo/templates;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /home/limit/.halo/templates;
# 这里需要与php fpm配置相对应,对应关系如下:
# php-fpm.conf: listen = 127.0.0.1:9000 对应 nginx.conf: fastcgi_pass 127.0.0.1:9000;
# php-fpm.conf: listen = /tmp/php-cgi-74.sock 对应 nginx.conf: fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
.....
}
在主题中配置api的访问路径
直接如下填写即可
/live2d_api/
至此所有的配置完毕。记得安全组与防火墙打开80端口哟