linux php查看扩展库,Linux下安装PHP的lua扩展库

本文详细介绍了如何在Linux环境下安装Lua5.3.4和PHP的Lua扩展。首先,下载Lua源码,配置编译选项,解决权限问题以完成安装。接着,安装PHP的Lua扩展,包括下载扩展源码,编译安装,并修改PHP配置文件。最后,通过编写并执行PHP测试脚本来验证Lua扩展已正确安装和工作。
摘要由CSDN通过智能技术生成

一、安装Lua 5.3.4

下载

http://www.lua.org/ftp/lua-5.3..tar.gz

tar xvf lua-5.3..tar.gz

cd lua-5.3.

重要:进入解压缩后的路径 cd .../lua-5.3.4/src 打开Makefile文件 在CFLAG一行 添加选项 -fPIC 像这样:

找到源文件的这行替换掉

CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) -fPIC $(MYCFLAGS)

然后编译、安装

make linux

sudo make install

执行完成后安装lua成功,可以查看lua 版本是否为刚安装的版本

tinywan@tinywan:~/lua-5.3.$ lua -v

Lua 5.3. Copyright (C) - Lua.org, PUC-Rio

查看 /usr/local/include/ 路径下是否有 lua.h, 为该头文件创建一个软链

tinywan@tinywan:/usr/local/include$ ls

lauxlib.h libssh2.h libssh2_publickey.h libssh2_sftp.h luaconf.h lua.h lua.hpp lualib.h

tinywan@tinywan:/usr/local/include$ ln -s /usr/local/include/lua.h /usr/include/lua/lua.h

ln: 无法创建符号链接'/usr/include/lua/lua.h': 没有那个文件或目录

tinywan@tinywan:/usr/local/include$ ln -s /usr/local/include/lua.h /usr/include/lua/lua.h

ln: 无法创建符号链接'/usr/include/lua/lua.h': 没有那个文件或目录

tinywan@tinywan:/usr/local/include$ mkdir -P /usr/include/lua

mkdir:无效选项 -- P

Try 'mkdir --help' for more information.

tinywan@tinywan:/usr/local/include$ mkdir -R /usr/include/lua

mkdir:无效选项 -- R

Try 'mkdir --help' for more information.

tinywan@tinywan:/usr/local/include$ mkdir - /usr/include/lua

mkdir: 无法创建目录"-": 权限不够

mkdir: 无法创建目录"/usr/include/lua": 权限不够

tinywan@tinywan:/usr/local/include$ sudo mkdir - /usr/include/lua

tinywan@tinywan:/usr/local/include$ ln -s /usr/local/include/lua.h /usr/include/lua/lua.h

ln: 无法创建符号链接'/usr/include/lua/lua.h': 权限不够

tinywan@tinywan:/usr/local/include$ sudo ln -s /usr/local/include/lua.h /usr/include/lua/lua.h

tinywan@tinywan:/usr/local/include$

将 liblua.a 放到 /usr/lib 目录下,先查找liblua.a文件在哪个位置,一般是在/usr/local/lib/liblua.a

tinywan@tinywan:/usr/local/include$ whereis liblua.a

liblua: /usr/local/lib/liblua.a

tinywan@tinywan:/usr/local/include$ cp /usr/local/lib/liblua.a /usr/lib/liblua.a

cp: 无法创建普通文件'/usr/lib/liblua.a': 权限不够

tinywan@tinywan:/usr/local/include$ sudo cp /usr/local/lib/liblua.a /usr/lib/liblua.a

tinywan@tinywan:/usr/local/include$

如果不安装lua,在./configured的时候提示一下错误信息

configure: error: Please reinstall the lua distribution - lua.h should be in /include/

二、安装phplua 扩展

wget http://pecl.php.net/get/lua-2.0..tgz

tar xvf lua-2.0.3.tgz

cd lua-2.0.

phpize

./configure

编译、安装

tinywan@tinywan:~/lua-2.0.$ make

/bin/bash /home/tinywan/lua-2.0./libtool --mode=compile cc ...

tinywan@tinywan:~/lua-2.0.$ sudo make install

/bin/bash /home/tinywan/lua-2.0./libtool --mode=install cp ./lua.la /home/tinywan/lua-2.0.3/modules

libtool: install: cp ./.libs/lua.so /home/tinywan/lua-2.0./modules/lua.so

libtool: install: cp ./.libs/lua.lai /home/tinywan/lua-2.0./modules/lua.la

libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /home/tinywan/lua-2.0./modules

----------------------------------------------------------------------

Libraries have been installed in:

/home/tinywan/lua-2.0./modules

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the '-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable

during execution

- add LIBDIR to the 'LD_RUN_PATH' environment variable

during linking

- use the '-Wl,-rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld() and ld.so() manual pages.

----------------------------------------------------------------------

Installing shared extensions: /usr/lib/php//

查看lua.so 文件

tinywan@tinywan:/usr/lib/php/$ ls

build ctype.so exif.so ftp.so iconv.so lua.so

修改PHP 配置文件

sudo vim /etc/php/7.0/cli/php.ini

#添加一下内容

extension=/usr/lib/php//lua.so

tinywan@tinywan:/usr/lib/php/$ php -m | grep lua

lua

安装完毕

三、测试

文件test_lua.php

$lua = new Lua();

$lua->eval(<<

function dummy(foo, bar)

print(foo, ",", bar)

end

CODE

);

$lua->call("dummy", array("Lua", "geiliable\n"));

$lua->dummy("Lua", "geiliable"); // __call()

var_dump($lua->call(array("table", "concat"), array(array(1=>1, 2=>2, 3=>3), "-")));

?>

执行结果:

tinywan@tinywan:~/PHP7$ php test_lua.php

Lua,geiliable

Lua,geiliablestring(11) "1.0-2.0-3.0"

linux下安装php的lua扩展

1. 进入管理员权限使用yum安装 readline(也可以使用wget下载后./configure 然后 make && make install进行安装) yum install ...

Linux下安装PHP的GD支持库

Linux下安装PHP的GD支持库   1.安装 zlib  wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/zlib-1.2.3.tar.gz ...

lua使用笔记2&colon;Linux 中安装php的lua扩展

安装lua扩展的前提是lua已经安装好,如果没有安装,参照 1.http://pecl.php.net/package/lua 下载lua扩展 或者Linux下直接输入 wget http://pec ...

windows下与linux下安装redis及redis扩展

1.        Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...

Linux下安装Python3&period;x和第三方库

如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 不要动现有 ...

Linux下安装Python3&period;6和第三方库

如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一.安装p ...

Linux下安装php的memcached扩展(memcache的客户端)

php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached 一.下载软件 1.libme ...

Linux下安装PHP的mcrypt扩展

首先下载,并安装 libmcrypt-2.5.8.tar.gz 下载地址: http://sourceforge.net/project/showfiles.php?group_id=87941&am ...

linux 下安装PHP的IMAP扩展实现邮件收发

系统CentOS 6.5 PHP5.5.19 1.安装imap的依赖包: [root@iZ9482lp6yqZ]# yum install -y libc-client-*  没有安装编译错误提示: ...

随机推荐

linux和window下mkdir函数问题(转-锦曦月)

通过WIN32宏进行判断   window下mkdir函数   #include int _mkdir( const char *dirname );   linux下 ...

M站 滚动日历弹框

先放张效果图: 完整Demo:

oracle db server 改动主机名时的注意事项

參考: Configuring The DB After Host Name Change (Doc ID 465545.1) 总结要点例如以下: 1. 注意改动listener.ora 和tnsna ...

angular&period;js的表格指令

html div.col-sm-12 table.table.table-bordered.table-condensed.table-hover.table-striped.dataTable.no ...

HDU 1698 Just a Hook(线段树成段更新)

题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目: Problem Description   In the game of DotA, P ...

beta阶段性能指标测试

性能指标概况 安装耗时 启动耗时 CPU占用 内存占用 电池温度 网络流量 平均值 5.48s 1.04s 1.61% 18.68MB 32.44℃ 93.78B 峰值 131.74s 5.13s 5 ...

muduo网络库架构总结

目录 muduo网络库简介 muduo网络库模块组成 Recator反应器 EventLoop的两个组件 TimerQueue定时器 Eventfd Connector和Acceptor连接器和监听器 ...

BBS-基于forms组件和ajax实现注册功能

http://www.cnblogs.com/yuanchenqi/articles/7638956.html 1.设计注册页面 views.py from django import forms c ...

Redis持久化————AOF与RDB模式

1.        官方说明:  By default Redis asynchronously dumps the dataset on disk. This mode is good enou ...

GO&lowbar;05&lowbar;2:Golang 中 panic、recover、defer 的用法

函数 defer 1. 它的执行方式类似其他语言中的折构函数,在函数体执行结束后按照调用顺序的 相反顺序 逐个执行 2. 即使函数发生 严重错误 也会被执行,类似于 java 中 try{...} ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值