最近在阿里云买了一台服务器,记录下整个安装、配置过程,以后弄新服务器则可以快速参考部署。
1,购买服务器
在阿里云https://www.aliyun.com/选择云服务器ECS,选择CentOS 7.4。 完成后,阿里云会给出远程登陆密码,需记下来。
此时服务器已正常运行,当我们远程上去的时候,只能登陆 root,密码是多少呢?这个需要自己设置。在阿里云网站控制台停止实例,然后在实例栏选择【更多】>【密码/密钥】>【重置密码】,重置成功后,这个密码就是 root 账户密码,启动服务器。
远程登陆,进入root,开始配置CentOS。
2,配置CentOS
此时是root身份, 更新软件和系统
1 yum update
安装必要软件
1 yum install autoconf 2 yum install automake 3 yum install readline-devel 4 yum install lua-devel 5 yum install libtool 6 yum install unzip 7 yum install git
3,创建用户,用于平常使用
groupadd grpxxx useradd -g grpxxx userxxx passwd userxxx psdxxx
4,用 XShell链接服务器
在阿里云操作后台,找到当前服务器的实例【更多】>【网络和安全组】>【安全组配置】,在安全组列表中选择当前实例【配置规则】>【添加安全组规则】。
规则方向:入方向
授权策略:允许
协议类型:SSH(22)
优先级:1
授权类型:地址段访问
授权对象:0.0.0.0/0
点击【确定】,安全设置完成。
打开XShell新建一个会话【aliyunserver】,连接协议选择 SSH,主机则为阿里云服务器的公网IP,端口号22。
用户身份验证,方法 Password, 将上面创建的用户名和密码输入到用户名和密码栏。点击确定。
连接弹窗接受协议,连入服务器成功。
安装服务器工程
CentOS 7.4 中已经自带 gcc, lua 5.1.4, python 等。
查看系统信息
1 uname -a 2 file /bin/ls 3 cat /proc/version 4 lsb_release -a 5 cat /etc/os-release 6 cat /etc/redhat-release 7 rpm -q centos-release 8 cat /proc/version
5,安装 skynet
1 git clone https://github.com/cloudwu/skynet.git 2 cd skynet 3 make linux 4 5 --测试 6 ./skynet examples/config # Launch first skynet node (Gate server) and a skynet-master (see config for standalone option) 7 ./3rd/lua/lua examples/client.lua # Launch a client, and try to input hello.
6,安装 sproto
1 git clone https://github.com/cloudwu/sproto.git 2 cd sproto 3 4 --因为机器上的LUA是5.1.4版本,所以需要改下sproto源码 5 vi lsproto.c 6 7 --修改LUAMOD_API为 /*LUAMOD_API*/,即去掉改标识(5.1中无该标识定义) 8 9 --保存并退出 10 :wq 11 12 --编译 13 make linux 14 15 --测试 16 lua test.lua
7,在Windows上使用sproto
lua的发行版在Windows上目前是5.1.5。下载 https://github.com/rjpcomputing/luaforwindows/releases 安装到Windows上。
在github上将sproto的源码下载下来。
git clone https://github.com/cloudwu/sproto.git
新建vs工程,Visual C++ 》Windows 》动态链接库(DLL), 工程名 sprotolib。
设置工程属性:
【VC++目录】
【包含目录】添加lua的头文件目录》X:\Program Files (x86)\Lua\5.1\include
【库目录】添加lua的库目录:X:\Program Files (x86)\Lua\5.1\lib
【C/C++】
【预处理器】添加定义: LUA_BUILD_AS_DLL (Note:因为我们的目的是编译sproto的DLL库,LUA这里需要设置导出DLL)
【链接器】
【常规】》【附加库目录】添加 lua 库目录 X:\Program Files (x86)\Lua\5.1\lib
【输入】》【附加依赖项】添加 lua5.1.lib;lua51.lib
设置完毕。
将sproto中的【sproto.h】【sproto.c】【msvcint.h】【lsproto.c】复制到sprotolib工程内,加入工程。
右键【sproto.c】》【属性】》【C/C++】》【预编译头】:设置【不使用预编译头】
同设置于【lsproto.c】。
修改【lsproto.c】文件中的 LUAMOD_API 为 LUA_API 。(Note: lua 5.1中无该LUAMOD_API 定义,追踪LUA5.3的代码发现LUAMOD_API 和LUA_API是一样的)
编译 【Release】【x86】,成功生成 sprotolib.dll
重命名sprotolib.dll为sproto.dll,放入 sproto 原文件夹中。
运行测试:
在文件夹空白处,Shift + 鼠标右键,【打开Powershell窗口】,在窗口中输入:
lua .\test.lua
运行正常:
1 PS F:\Open Source Libraries\sproto\sproto> lua .\test.lua 2 default table for Person 3 +id [0] 4 +phone+__array [Person.PhoneNumber] 5 +name [] 6 +email [] 7 -------------- 8 +others+1+id [30000] 9 | +name [Carol] 10 | +phone+1+number [9876543210] 11 +person+10000+id [10000] 12 | +name [Alice] 13 | +phone+1+number [123456789] 14 | | +type [1] 15 | +2+number [87654321] 16 | +type [2] 17 +20000+id [20000] 18 +name [Bob] 19 +phone+1+number [01234567890] 20 +type [3] 21 PS F:\Open Source Libraries\sproto\sproto>