将下面给出的脚本放到你的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
脚本自动下载的是我在开源中国[email protected]上的版本,编译完成后自动会在后台启动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客户端的代码。