Apache mod_lua启用,找不到PHP类LUA

时间:2018-04-03 03:35:56

标签: php apache lua debian

我已经设法在我的本地计算机(Windows)上使用LUA。现在我尝试将它放在我的开发服务器上( Debian 9 Apache 2.4.25 PHP 7.0.27-0 + deb9u1 和< strong> 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 [...]

即使在用新行编辑http://domain/path/to.lua之后,我也无法通过Apache使用lua(通过/etc/apache2/apache2.conf):

LoadModule lua_module modules/mod_lua.so
<Files "*.lua">
    SetHandler lua-script
</Files>

4行没有任何明显的差异。

直接通过Apache(从URL)运行Lua脚本是可选的。但我真的需要能够从我的PHP脚本中解释Lua。但即使mod_lua中的Loaded Modules中显示phpinfo(),PHP也无法找到类Lua。为什么呢?

1 个答案:

答案 0 :(得分:1)

构建扩展后必须启用它,一些安装脚本会为您完成。

取决于你的操作系统,php.ini做的可能会有所不同(ubuntu 16)

/etc/php/7.0/apache2/php.ini
/etc/php/7.0/CLI/php.ini

如果它有多个配置选项,您可以/应该在/etc/php/7.0/{CLI|apache2}/conf.d下创建专用的extensionname.ini

命令行的快捷方式

$ php -dextension=/path/to/extension.so

$ phpenmod extensionname

对于php5,这个可以找到php5enmod

编辑:在您的情况下,您注意到要添加到.ini的行是extension=lua.so