LINUX环境下部署go的前世今生
- 安装参见我的上一篇博客
- 青铜时代参考hardecz的优快云博客
石器时代
部署全靠命令行:
// 以下go文件需要放入**GOPATH**内
// 编译
go build test.go
// 执行
./js
// 显示80端口占用
netstat -tunlp | grep 80
// 关闭占用80端口的应用
kill -9 xxxx
// 后台启动应用
nohup ./js &
青铜时代
一个脚本文件完成一键部署:
下面这一行会变更GOPATH,不要执行,参考了原博客的坑
export GOPATH=$(dirname $serviePath)
再GOPATH路径内新建脚本文件build.sh
# !/bin/bash
# 默认$GOROOT 已经存在,并为/usr/local/go/
log=jssdk.log
echo "删除日志文件$log"
rm $log
# appdir=go
app=test
appname=test.go
serviePath=`pwd`
# 下面这一行会变更GOPATH,不要执行,参考了原博客的坑
# export GOPATH=$(dirname $serviePath)
# cd $appdir
echo "path: $serviePath/$app"
p=$(pidof $serviePath/$app )
# 删除占用对应端口的应用
if [ $p ]
then
echo "kill $app pid $p"
kill -9 $p
else
echo "no $app in system"
fi
# app build
echo "$appname building..."
go build $appname
# 后台应用启动
echo "$app start..."
# nohup $serviePath/$app >> $log &
nohup $serviePath/$app >> $log &
# 输出新执行应用pid
newpid=$(pidof $serviePath/$app )
echo "Success! new $app pid $newpid"
echo "end...."
# 退出脚本
exit
农业时代
go部署我总结了有四个步骤:
- 上传go文件
- 因为我使用的是VSCode,那就找一个插件解决好了,推荐ftp-simple
- 在文件内
ctrl+shift+p
,输入ftp
,从下拉列表找到config
- 执行部署脚本
bash build.sh
- 部署go文件脚本
详见青铜时代 - 查看log日志
下载下来看吧
附录1-常见错误及解决方法
1. build失败
- 失败原因:
unexpected NUL in input
- 解决方案:
- 修改文件编码格式位UTF-8
- 修改文件后缀为LR,而不是CRLF,(实际上这并不是关键)
2. build失败
- 失败原因:
找不到引入的那个github包
(大致是这个意思) - 解决方案:
- 使用
go get github.com/xxx/yyy
重新安装相应包 - 如果上一步还不管用,建议看一下GOPATH是不是没有按照我之前的博客设置好,亦或者设置好了又被更改了。
- 使用