本篇主要来梳理下pipe的博客搭建流程
此流程只是梳理下遇见的问题,好让后面的人安装pipe的zip版别走太多弯路
总结
先声明总结,不想看后面经验(坑)的直接根据总结进行安装
- 首先需要一个linux环境(目前实测,windows进行打包vue都会出问题,所以直接在linux环境下做全部操作)
- 然后去github搜索pipe下载对应发行版本的zip包,比如
pipe-1.8.9.zip
这个版本(目前小于等于1.9.0版本有问题,原因现在要从社区跳转登录,我目前是直接用master打包升级) - 修改项目的
pipe.json
文件,将其中的Server
改为你的域名地址,没有域名也使用ip:端口这个地址,不要用localhost和127.0.0.1,因为网页访问会直接跳转到这个地址,这样会导致只能本地访问 - 在项目的
console
目录使用npm install
进行安装webpack
的依赖,安装完成后使用npm run build
进行打包(没有npm的去安装node.js, 如何安装自行百度) - 项目的目录
theme
走4相同的步骤,安装依赖和打包 - 然后2个目录删除之前
npm install
生成的node_modules
文件夹 - 安装golang,
yum install -y epel-release
,yum install golang -y
,然后go version
看是否安装成功 - 在项目目录下使用
go mod tidy
安装golang的依赖 - 在项目目录下使用
go build -i -v
打包整个项目,然后会生成一个没有后缀的文件 chmod 777 没有后缀的文件
,给这个文件给予运行权限./没有后缀的文件
,进行启动- 注意这时候启动的软件的地址是上面配置的
server
, 但是我们想要外网访问还是得配置nginx代理到本地5897端口 - 我这里用了域名所以还需要配置
nginx
进行反向代理,对应配置如下 - 到这里我就可以用
kakj.org
来访问了
upstream pipe {
server localhost:5897;
}
server {
listen 80;
server_name kakj.org; # 配置为你自己的域名
location / {
proxy_pass http://pipe$request_uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
location = /halt.html {
root /root/pipe/theme; #pipe安装目录
}
error_page 502 503 /halt.html;
}
遇到的坑
下载对应的包
访问github,搜索pipe, 然后在发行版中寻找你中意的版本,作者好像已经不会对程序进行打包发行了,全部都是docker版本,或者是当时的zip代码,所以目前你有2种选择,一种是直接使用docker进行安装,一种是下载zip包自己进行打包
docker进行安装我就省略,太简单,但是不好的地方就是占用内存,本来我vps内存就不多
下载zip包进行安装遇见的坑
npm instll太慢, go mod tidy太慢
- 使用cnpm怎么安装自行百度
- go mod设置代理地址, 直接在项目目录中输入命令
export GOPROXY=https://goproxy.cn
,然后go mod就加速了
首先我想要在windows对项目进行打包
我打开项目中的 build.sh
文件,跟随里面的命令进行打包,首先遇到第一个问题就是go的依赖没有下载,但是build.sh中是没有管的直接打包,他默认你的依赖全部弄好了,好吧,我就 go mod tidy
进行安装好依赖,然后直接 go build -i -v
进行打包
打包成功
打包成功发现生成了.exe文件,这肯定不能在linux上运行,所以这时候我就去找golang在windows打出linux的包,根据搜索的东西设置了几个环境变量,然后虽然打包成功但是, 启动的时候会报错具体错误原因就是SET CGO_ENABLED=0
就是设置了这个环境变量,导致无法使用sqllite,然后我设置成SET CGO_ENABLED=1
,这时候打包的时候出问题,说gcc的事情,好吧,这么烦,我干脆直接弄个虚拟机在虚拟机中的linux中打包, 提示即使你有gcc也是报错
, 因为我有台电脑有gcc的go环境也是报错
windows打包vue
目前我知道的报错就是需要依赖pythen2, 然后theme模块build依赖console install 出来的node_module库
pipe大的变更(从github登录变更为社区登录), 导致小于等于1.9.0版本的全部无法登录
目前我使用的是master的最新代码进行打包升级,相信作者的pipe也是master打包然后存入到docker hub上