Apache mod_lua 已启用,PHP 类 LUA 未找到

我已经在我的本地机器(Windows)上以某种方式使用了 LUA。现在我尝试将其放在我的开发服务器上(Debian 9,带有Apache 2.4.25PHP 7.0.27-0+deb9u1Lua 5.3.3)。

经过数小时的尝试,成堆的错误以及阅读了成千上万个 StackOverflow 页面,我终于成功地手动编译和构建了_PECL lua-2.0.5_并成功地制作了 Apache 模块。

我使用$ a2enmod lua。 现在,在phpinfo()中,我可以看到mod_lua和其他Loaded Modules

我可以从 cli 运行 lua 脚本。这里没有问题。

我无法从 PHP 脚本中使用 lua:

致命错误: 在[...]中未找到类'Lua'

我也无法通过 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()中显示mod_luaLoaded Modules中,PHP 也无法找到类Lua。为什么?

点赞
用户1423096
用户1423096

构建扩展之后必须启用它,一些安装脚本会自动启用它。

根据您的操作系统,要启用 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

2018-04-03 12:42:00