CentOS 上配置 lua 的服务器环境(enet)
安装 lua & luarocket
安装依赖
$ yum install gcc gcc-c++ kernel-devel
$ yum install readline-dev
$ yum install ncurses-devel.i386
下载并编译lua源文件
$ wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
$ tar zxvf lua-5.1.4.tar.gz
$ cd lua-5.1.4
$ make linux
下载并安装 luarocks
$ wget http://luarocks.org/releases/luarocks-2.0.6.tar.gz
$ tar zxvf luarocks-2.0.6.tar.gz
$ cd luarocks-2.0.6
$ ./configure
$ make
$ make install
安装 enet && lua enet
下载并编译enet
$ wget http://enet.bespin.org/download/enet-1.3.13.tar.gz
$ tar zxvf enet-1.3.13.tar.gz
$ cd enet-1.3.13
$ ./configure
$ make
$ make install
下载并安装 lua enet
$ luarocks install enet
测一下
$ lua
> require "enet"
没报错的话说明好了
我遇到两次报错,第一次是没找到 enet.so ,这是因为lua在设置的路径范围内没有找到它,设置下LUA_CPATH ,这个值可以通过 luarocks path
查看
$ export LUA_CPATH='/usr/lib/lua/5.1//?.so;/usr/.luarocks/lib/lua/5.1//?.so;./?.so;/usr/lib/lua/5.1/?.so;/usr/lib/lua/5.1/loadall.so'
第二次是加载 enet.so 的时候没找到 libenet.so.7 ,这是因为动态链接库 so 在路径范围内没有找到它,设置下 LD_LIBRARY_PATH,用 find / -name libenent.so.7
查看文件在哪里
libenet.so.7: cannot open shared object file: No such file or directory
$ export LD_LIBRARY_PATH=/home/tangyikejun/lib:$LD_LIBRARY_PATH
开端口
iptables -A INPUT -m state --state NEW -p tcp --dport 1111 -j
写个示例测连接,我第一次写没成功,用 nc 测一下连接
服务端
$ nc -l 1111
客户端
$ nc 34.55.44.222 1111
如果连通的话在客户端输入 haha,在服务端也会收到 haha