这段时间刚好 服务器到期,换了另一个服务器,新服务器GO环境要部署,这里记录一下,方便 使用GO语言的博客小伙伴们
风.fox
环境
Centos 7.X
lanmps套件 已安装(http://www.lanmps.com/) 这里用到mysql,nginx 如果你的本地已经安装就不需要用了
go语言博客 mysql版
go 语言安装
按照该网址安装就可以安装成功
http://blog.csdn.net/fenglailea/article/details/26163927
或
http://blog.csdn.net/fenglailea/article/details/70216964
在 go 语言环境变量中,服务器中的GOPATH改为如下
export GOPATH=/www/go #我的开发目录
安装git
centos
yum -y install git
ubuntu
apt-get -y install git
安装 go博客依赖
源码地址:https://github.com/foxiswho/blog-go
博客地址:https://www.foxwho.com
先安装 beego 和其他依赖
一条一条执行,当然你直接 放到shell文件里,批量执行也可以
go get github.com/astaxie/beego
go get github.com/beego/bee
go get github.com/astaxie/beego/cache
go get github.com/go-xorm/xorm
go get -u github.com/xormplus/xorm
go get github.com/go-xorm/cmd/xorm
go get -u github.com/qiniu/api.v7
go get github.com/russross/blackfriday
到这里基本环境就安装成功了
数据库文件导入到数据库中
数据库文件位于
src/blog/db/blog_go.sql.zip
配置文件
数据库名,用户名,密码等相关配置都在此文件中
src/blog/conf/app.conf
go语言博客编译运行预览
注意:这里只是编译预览效果,给你运行看看的。你认为我会让你用这么low
方式吗
直接下载master
https://github.com/foxiswho/blog-go/archive/master.zip
解压缩后,进入src
目录,把blog
目录复制到 /www/go/src
目录下,
编译运行
cd /www/go/src/blog
bee run
在浏览器中输入http://localhsot:8080
你就看到效果哦啦
自动化编译部署
你最好复制我的GO语言源码到你的版本库中,这样才可以自动化部署
阿里云CRP(这里使用的是阿里云自动化部署)
这边教程暂时就先忽略,其实网上可以搜索一大堆教程
其中部署组的设置如下
部署包路径
/www/deploy/www.foxwho.com
应用服务启动脚本路径
/www/deploy/www.foxwho.com/start.sh
服务器中部署相关设置
创建文件夹
mkdir -p /www/deploy/www.foxwho.com/
编辑文件
vim /www/deploy/www.foxwho.com/start.sh
加入
#!/bin/bash
#网址
SITE=www.foxwho.com
#部署根路径
DIR=/www/deploy/$SITE
#备份路径
BACKUP=/wwwData/backup/$SITE
#站点根路径
WWWROOT=/www/wwwroot
#站点路径
SITEPATH=$WWWROOT/$SITE
#gopanth
GO_PATH=/www/go
#解压缩后文件夹
DEPLOYPATH=$DIR/source
#当前时间
DATETIME=$(date +%Y-%m-%d-%H-%M-%S)
#项目端口号
P_PORT=8091
#数据库用户
P_DB_USER=root
#数据库密码
P_DB_PWD=root
#数据库名
P_DB_NAME=blog_go
#数据库地址
P_DB_HOST=127.0.0.1
echo "备份开始===="
echo "只备份源码,Uploads 目录下不备份"
echo "备份文件存放于${BACKUP}/source/$DATETIME.tar.gz"
#创建备份目录
[ ! -d "$BACKUP" ] && mkdir -p "$BACKUP"
[ ! -d "$BACKUP/source" ] && mkdir -p $BACKUP/source
#创建解压缩目录
[ ! -d "$DEPLOYPATH" ] && mkdir -p $DEPLOYPATH
#备份源码
cd $WWWROOT
#tar -zcpf $BACKUP/source/$DATETIME.tar.gz --exclude=$SITE/Uploads --exclude=$SITE/runtime $SITE
#删除解压缩目录内文件
rm -rf $DEPLOYPATH/*
cd $DIR
#解压缩 整理 git 文件
tar -zxf package.tgz -C $DEPLOYPATH
cd $DEPLOYPATH
mv blog-go-* tttttt
mv $DEPLOYPATH/tttttt/* $DEPLOYPATH/
rm -rf $DEPLOYPATH/tttttt
#/
#编译
#
#删除本项目源码
rm -rf $GO_PATH/src/blog
echo $GO_PATH/src/blog
#
#复制最新源码到项目里
mv $DEPLOYPATH/src/blog $GO_PATH/src/
#####################
#数据库相关替换
#配置文件
DB_FILE=$GO_PATH/src/blog/conf/app.conf
#替换数据库
sed -i "s:db_user.*=.*:db_user=\"${P_DB_USER}\":g" $DB_FILE
sed -i "s:db_pass.*=.*:db_pass=\"${P_DB_PWD}\":g" $DB_FILE
sed -i "s:db_name.*=.*:db_name=\"${P_DB_NAME}\":g" $DB_FILE
sed -i "s:db_host.*=.*:db_host=\"${P_DB_HOST}\":g" $DB_FILE
#替换项目端口
sed -i "s:httpport.*=.*:httpport=${P_PORT}:g" $DB_FILE
sed -i "s:type=\"local\":type=\"QiNiu\":g" $DB_FILE
sed -i "s:runmode = dev:runmode = prod:g" $DB_FILE
sed -i "s:local_save_is=true:local_save_is=false:g" $DB_FILE
echo "qiniu"
sed -i "s:access_key=\"qiniu\":access_key=\"七牛access_key\":g" $DB_FILE
sed -i "s:secret_key=\"qiniu\":secret_key=\"七牛secret_key\":g" $DB_FILE
echo "csdn"
sed -i "s:access_key=\"csdn\":access_key=\"csdn id\":g" $DB_FILE
sed -i "s:secret_key=\"csdn\":secret_key=\"csdn key\":g" $DB_FILE
sed -i "s:http=\"\#upload_default\":http=\"http\:\/\/img.foxwho.com\/\":g" $DB_FILE
######################
#进入项目目录
cd $GO_PATH/src/blog
#使用beego 打包
/usr/local/go/bin/bee pack
######################
#解压缩打包文件
cd $GO_PATH/src/blog
#fox是项目名称
rm -rf $DEPLOYPATH/*
tar -zxf blog.tar.gz -C $DEPLOYPATH
PACK_PATH=$DEPLOYPATH
######################
#删除不相干文件
rm -rf $PACK_PATH/db
######################
#设置文件权限
#权限赋值
chmod -R 750 $PACK_PATH
chown -R www:www $PACK_PATH
######################
#部署目录是否存在,不存在则创建和设置权限
if [ ! -d "$SITEPATH" ]; then
mkdir -p $SITEPATH
chmod -R 777 $SITEPATH
chown -R www:www $SITEPATH
fi
#######################
#更改项目名称
mv $PACK_PATH/blog $PACK_PATH/blog_2
#复制文件
cp -auR $PACK_PATH/* $SITEPATH/
#上传目录检测,如果不存在则创建
if [ ! -d "$SITEPATH/uploads" ]; then
mkdir -p $SITEPATH/uploads/image
mkdir -p $SITEPATH/uploads/attachment
chmod -R 777 $SITEPATH/uploads
chown -R www:www $SITEPATH/uploads
fi
echo "结束进程"
#结束进程blog
ps -ef |grep /blog|awk '{print $2}'|xargs kill -9
echo "========="
############
#删除原项目
rm -rf $SITEPATH/blog
#列出当前目录下文件
ls -lh ${SITEPATH}
#名称恢复
mv "${SITEPATH}/blog_2" "${SITEPATH}/blog"
############
#启动项目
SH="${SITEPATH}.start.sh"
$SH &
echo "SUCCESS"
给该文件执行权限
chmod +x /www/deploy/www.foxwho.com/start.sh
设置启动文件
nohup
如果没有该程序你要先安装哦,nohup --version
查看版本号
新建文件
mkdir /www/wwwroot/
vim /www/wwwroot/www.foxwho.com.start.sh
加入:
悄悄的告诉你 这个文件就是源码中
src/blog/db/www.foxwho.com.start.sh
文件
#!/bin/bash
cd /www/wwwroot/www.foxwho.com
nohup ./blog >/www/wwwLogs/www.foxwho.com.shell.log 2>&1 &
#没有任何日志
##nohup /www/wwwroot/www.foxwho.com/blog >/dev/null 2>&1 &
设置执行权限
chmod +x /www/wwwroot/www.foxwho.com.start.sh
到这里配置差不多了,下面设置nginx
关闭博客
使用如下命令关闭博客
ps -ef |grep /blog|awk '{print $2}'|xargs kill -9
Nginx 配置
增加配置文件
vim /www/lanmps/nginx/conf/vhost/www.foxwho.com.conf
加入如下
server {
listen 80;
server_name www.foxwho.com foxwho.com;
root /www/wwwroot/www.foxwho.com;
index index.html index.htm;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf) {
expires 30d;
}
location ~ .*\.(js|css)? {
expires 12h;
}
location /(css|js|fonts|img)/ {
access_log off;
expires 1d;
root "/www/wwwroot/www.foxwho.com/";
try_files $uri @backend;
}
location / {
try_files /_not_exists_ @backend;
}
location @backend {
proxy_pass_header Server;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8091;
}
access_log /www/wwwLogs/www.foxwho.com.log access;
}
重启NGINX
/www/lanmps/bin/nginx reload
部署博客
先把你的域名解析指向新服务器地址
然后点击阿里云CRP
中的工作刘
开始部署,如果没有任何问题,那么现在就可以打开域名了