Swift Perfect 从零开始到阿里云ECS实际应用教程(四)
上节我们介绍了如何在本地运行一个Perfect与mysql交互的简单服务端接口程序,下面就是将这个程序部署到ECS上的方法。
1.在服务器上安装mysql
Ubuntu上安装MySQL非常简单只需要几条命令就可以完成。
1. sudo apt-get install mysql-server
2. apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev
安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:
sudo netstat -tap | grep mysql
通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。
登陆mysql数据库可以通过如下命令:
mysql -u root -p
-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql
现在我们安装好了服务器上的mysql了,现在回到本地Mac上
选中WebService数据库并点击Data Export来导出数据库
选中要导出的表结构导出到文件.sql;我导出的文件命名为WebService.sql,通过FTP将这个数据库文件上传到服务器。
2.在服务器上找到这个文件,并进入mysql命令中,
mysql -u root -p
mysql>create database WebService;
mysql>use WebService;
mysql>source /home/WebService.sql ;// 这个是文件的路径
这样我们就将本地设计的数据库同步到了服务器上;
下面我们将本地的代码git上传上去,并在服务端git pull下来;
再次swift build 漫长的等待,由于Mac端与Linux端的框架会有不同,所以若想在Linux上运行Perfect需要重新编译下载依赖库。
成功后.build/debug/WebService
启动服务
这样我们的服务就在阿里云服务器上跑起来了
http://{ 这个是公网IP}/v1/api/register?userName=test&password=123456
当报错时,我们需要检查mysql连接配置,因为服务端的与本地的可能有差别,要按服务器上的配置进行代码上的修改。
这里可能会出现服务无法启动的情况,主要原因可能是服务已经开启,80端口已经被占用,这个时候我们要用 lsof -i:80 命令来检查下端口是否有进程占用,若有 则用命令 kill -9 <PID> 来杀死进程,再重新运行进程就好。
最后说一下最后一个坑,当我们退出本地远程连接后发现接口调用不通了,服务被自动杀死了,这里本地远程连接在关闭时会自动将服务器运行的进程全部杀死,所以我们需要用一个后台持续进程来守护进程,让我们退出远程连接时,不关闭服务;用 nohup .build/debug/WebService & 命令执行下就可以了;
至此我们所有的swift Perfect + mysql的环境及运行部署就全部完成了,若你有更好的方法欢迎相互学习与讨论。