【发布时间】:2018-04-03 20:42:00
【问题描述】:
不知何故,我设法在我的本地计算机 (Windows) 上使用 LUA。现在我试图把它放在我的开发服务器上(Debian 9 with Apache 2.4.25 with PHP 7.0.27-0+deb9u1 和 Lua 5.3.3)。
几小时后,几十个错误,几千个StackOverflow的页面,我终于可以手动编译构建PECL lua-2.0.5,并成功制作了apache模块。
我使用了$ a2enmod lua。现在,在phpinfo() 上,我看到mod_lua 和其他Loaded Modules。
我可以从 cli 运行 lua 脚本。这里没问题。
我不能在 PHP 脚本中使用 lua:
Fatal error: Uncaught Error: Class 'Lua' not found in [...]
我也不能通过 Apache 使用 lua(通过 http://domain/path/to.lua),即使在用新行编辑 /etc/apache2/apache2.conf 之后:
LoadModule lua_module modules/mod_lua.so
<Files "*.lua">
SetHandler lua-script
</Files>
这 4 行没有任何明显的区别。
直接通过 Apache(从 URL)运行 Lua 脚本是可选的。但我真的需要能够从我的 PHP 脚本中解释 Lua。但是即使在phpinfo() 中的Loaded Modules 中显示mod_lua,PHP 也找不到类Lua。为什么?
【问题讨论】:
-
也许你还需要一个 php 扩展。我发现这个脚本查看了第 28 行,它下载并构建了一个 php 扩展 github.com/chtombleson/php-lua-install-script/blob/master/…
-
@aloMalbarez 这就是我对来自
aptitude的PECL lua-2.0.5和Lua 5.3.3所做的,但它所做的只是制作apache 模块。 PHP 在phpinfo()中看到它,但仍然没有Lua类:/ -
并在
/etc/php/7.0/apache2/php.ini中列为扩展名?还是它的conf.d自己的ini?尝试通过pecl安装lua但发现一些错误,但我记得一些使用apache mods的扩展也需要你明确设置php.ini选项 -
@aloMalbarez 哦,我觉得自己很笨。是的你是对的。我已将
extension=lua.so添加到主要的php.ini并且它现在可以工作了。如果需要,请发布答案