php7.0支持调用lua脚本
需求前瞻:
最近因需求,需要支持php调用现有的Lua代码,可以减少php的代码量,同时在维护上也比较方便,不会照成需求变更,需要同时修改两份代码
第一步:安装php7.0及以上版本,此处安装方法就略过
第二步:
官网下载最新lua安装包5.3.3
www.php.net官网搜索lua,下载php对应的lua包
http://php.net/manual/zh/book.lua.php 此处有详细的安装说明
切记php、lua、php的lua扩展包,这三个包的必须是相对应的版本,如php7.0及以上,扩展包lua-2.0.2,lua的版本必须5.2以上,否则会编译失败
扩展包下载地址:http://pecl.php.net/package/lua
解压后的安装包如果不存在configure文件,在该目录下执行phpize即可生成
configure带参数问题,可以查看该文件的说明,运行出错的话大部分就是缺失文件,直接在末尾加上参数“--with xxx=缺失文件路径”
错误处理:
编译源码如果失败,认真看失败原因,英文很渣的我都是一字一句的翻译,其实多看看也就习惯了
如5.3.3版本的lua直接使用默认makefile编译安装后,安装扩展时,当链接liblua.a报错,提示:recompile with fpic,此时就需要删除已安装的lua版本,执行make uninstall即可,修改makefile文件,编译选项加上 -fpic即可,重新编译安装
PS:PHP所有支持扩展均可到http://pecl.php.net下载
知其然知其所以然
php7.0支持调用lua脚本的更多相关文章
- Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本
一.引言 学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续.上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何编写L ...
- 用C#调用Lua脚本
用C#调用Lua脚本 一.引言 学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续.上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何 ...
- Java调用Lua脚本(LuaJava使用、安装及Linux安装编译)
依赖包(附件有下载): 包名 类型 操作系统 luajava-1.1.jar jar ALL libluajava-1.1.so .so linux luajava-1.1.dll .dll wind ...
- 调用Lua脚本print(xxx)报attempt to call a nil value (global 'print')错误
在自己程序里调用Lua脚本print(xxx) 报出attempt to call a nil value (global 'print')错误 解决方法: luaopen_base(L); 或者 l ...
- Java调用Lua脚本(热载实现)
前言: Lua作为解析执行的脚本语言, 往往是易变逻辑编写的首选语言, 尤其是在游戏领域. C/C++和Lua的结合, 往往了标配. 比如Redis, Nginx其对Lua的支持, 也是杠杠的. 当然 ...
- 新姿势!Redis中调用Lua脚本以实现原子性操作
背景:有一服务提供者Leader,有多个消息订阅者Workers.Leader是一个排队程序,维护了一个用户队列,当某个资源空闲下来并被分配至队列中的用户时,Leader会向订阅者推送消息(消息带有唯 ...
- 快速入门Redis调用Lua脚本及使用场景介绍
Redis 是一种非常流行的内存数据库,常用于数据缓存与高频数据存储.大多数开发人员可能听说过redis可以运行 Lua 脚本,但是可能不知道redis在什么情况下需要使用到Lua脚本. 一.阅读本文 ...
- 使用redis调用lua脚本的方式对接口进行限流
java端实现: //初始化一个redis可执行的lua DefaultRedisScript<List> defaultRedisScript = new DefaultRedisScr ...
- CentOS7配置php7.0支持redis
配置之前应该是环境已经搭好了,phpinfo的页面可以加载出来. 使用git clone下载git上的phpredis扩展包 [root@VM_103_117_centos ]#git clone ...
随机推荐
- 使用 Sublime Text 2 开发 Unity3D 项目
用 Sublime 已经有很长一段时间,很舒适,很贴心,根本停不下来.之前因为是开发页游,所以是用 AS3 开发,近段时间,新开了个手游项目,引擎方面选定了 Unity3D,老实说,之前没有太多的 3 ...
- JS数组方法汇总 array数组元素的添加和删除
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...
- 《精通C#》第十二章 Linq
Linq是在.Net3.5之后首次引入的,这种查询语言简单易学,可用范围非常广泛在学着之前,一直用在数据库操作之上,但是在学习这节课之后才发现,凡是实现泛型的接口类型都可以使用linq,简单来说就是实 ...
- gulp教程之gulp-uglify
简介: 使用gulp-uglify压缩javascript文件,减小文件大小. 1.安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件 1. ...
- 使用ef查询有缓存的问题
使用mvc ef更新后数据之后刷新页面,发现页面的数据没有变,而数据库的数据更新了,找了一点资料,是因为ef6有个缓存机制: Repository 类: //此方法查询结果有缓存 public Lis ...
- java String
实例一.substring(int beginIndex,int endIndex) String end ="2007-12-31";System.out.println(end ...
- 盘点JavaScript里好用的原生API
转自:https://segmentfault.com/a/1190000002753931 解析字符串对象 我们都知道,JavaScript对象可以序列化为JSON,JSON也可以解析成对象,但是问 ...
- Web前端开发规范手册
一.规范目的 1.1 概述 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. ...
- java 从数据删除指定值
public class ArrayRemoveValue { public static void main(String[] args) { Integer[] _IntArray = new I ...
- Fortran版MPI_barrier出现错误可能情况
在Fortran中的MPI_开头函数都常有一个整数型的错误变量用以函数返回错误信息.如: call MPI_Barrier(MPI_COMM_WORLD,ierr) 在没有ierr参数时,程序可能会出 ...