以前用lua做游戏服务器, 最近在折腾php, 想用php引用一些lua的东西, 或者用php写一些lua的东西, 方便lua引用, 找到了php原来有lua的扩展库, 现在将使用记录下来, 因为发现资资并不多
参考链接:https://www.cnblogs.com/tinywan/p/6813646.html
http://www.php.net/manual/zh/book.lua.php
正文开始:
确认lua是否安装, 没有安装请自己找安装教程, 网上比较多。以下确认lua的版本, 我的是5.1
lua -v
php 的lua扩展库安装准备:
ln -s /usr/local/include/lua.h /usr/include/lua/lua.h cp /usr/local/lib/liblua.a /usr/lib/liblua.a
下载php的扩展库:http://pecl.php.net/package/lua, 我这里下了最新的2.0.5:
安装编译:
tar xvf lua-2.0.5.tgz cd lua-2.0.5 /usr/local/php72/bin/phpize ./configure -with-php-config=/usr/local/php72/bin/php-config make
报错:/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../liblua.a(lapi.o): relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object; recompile with -fPIC
网上很多的处理方式是重新安装lua, 安装lua时加上fPIC, 我这里因为不想重装, 用了另外的方式 处理:
使用如下命令, 找到你的liblua.so, 我这里因为是5.1, 所以找到的是liblua-5.1.so , 版本不一样, 找到的应该不一样
locate liblua
我这里选择直接 复制一分在lib64里:
cp /usr/lib64/liblua-5.1.so /usr/lib64/liblua.so
重新make, 成功, 我的生成在以下目录 :
好了, 库编译好了, 我因为现在机器上php用的5.X, 但是我的php扩展用的php 7.2编译的, 暂时不能测试, 后面再被配置和测试