teamtalk服务端之完美一键部署脚本(ubuntu)

时间:2015-09-16 14:24:55   收藏:0   阅读:2925

将下面给出的脚本放到你的ubuntu 14.04上(其他版本我没测过),运行之,然后所有的从安装依赖库到数据库再到源码编译再到运行,全部替你一键搞定,甚至连config文件都不需要你配置。

我个人已经在一台全新的阿里云ubuntu服务器上测试通过,并且用ios的客户端进行了测试,登录,发消息,发表情功能都是正常可用。

唯一需要你人工干预的可能就是一开始添加ubuntu的ppa库时需要按个回车键确认以及安装mysql时需要你输入root密码,此处请输入12345,最后还会有一个提示

Please enter your IP or domain address:

这里请输入你的服务器的Ip地址或域名,然后脚本会自动去替换config文件里的相应配置,然后你就不需要再去手动修改了,啦啦啦~~一切完美搞定。

那么现在问题来了,为什么只有ubuntu14.04?

因为这个脚本本来是做给我个人自己部署使用的,我个人使用的是ubuntu。

所以这里自动下载并部署的并不是官方的原版,而是我个人的修改版本,而且未来我还会不断的对其进行改造。

当然我的个人版本应该是兼容官方版本的,因为到目前为止,我并没有修改任何原有协议,只是增加了一个注册协议,并对原有代码进行了很多优化,比如将手动引用计数改成了智能指针,底层库替换成了libevent等等。

下面是自动部署脚本,把它拷贝到你的ubuntu上运行即可,是不是比官方原版的部署脚本简单多了?


#!/bin/sh

set -x

if [ $# -eq 0 ]; then

sudo apt-get update

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:git-core/ppa
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install -y git

sudo apt-get install -y cmake
sudo apt-get install -y g++-5

rm /usr/bin/g++
ln -s /usr/bin/g++-5 /usr/bin/g++

sudo apt-get install -y libcurl4-openssl-dev
sudo apt-get install -y apache2-dev libapr1-dev libaprutil1-dev

sudo apt-get install -y redis-server
sudo apt-get install -y mysql-server


git clone https://git.oschina.net/benben-de-eggs/teamtalk-server-benben.git

mysql -uroot -p12345 < teamtalk-server-benben/auto_setup/mariadb/conf/ttopen.sql

fi

if [ $# -eq 0 ]; then
  cd teamtalk-server-benben/src
else
  cd $1/src
fi

python change_conf.py

cd ./login_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../route_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../msg_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../db_proxy_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../file_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../msfs_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi


cd ../login_server
./login_server -d > /dev/null 2>&1

cd ../msg_server
./msg_server -d > /dev/null 2>&1

cd ../route_server
./route_server -d > /dev/null 2>&1

cd ../msfs_server
./msfs_server -d > /dev/null 2>&1

cd ../file_server
./file_server -d > /dev/null 2>&1

cd ../db_proxy_server
./db_proxy_server -d > /dev/null 2>&1



脚本自动下载的是我在开源中国git@osc上的版本,编译完成后自动会在后台启动login_server, msg_server,

db_proxy_server, msfs_server, file_server, route_server共6个进程, http_msg_server和push_server因为我暂时还没去弄,所以没有启动,里面代码我也没动,跟官方原版没变化。

另外,我还写了个python脚本用来帮助你一键关闭这6个守护进程,在src目录下的server_kill.py,直接运行即可。还有个rebuild_all.sh是你如果修改了某些代码,运行这个可以一键全编译并重新部署运行。

就这么多了,后面我会给出我修改的ios客户端的代码。








评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!