【问题标题】:Apache mod_lua enabled, PHP class LUA not foundApache mod_lua 已启用,未找到 PHP 类 LUA
【发布时间】: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 这就是我对来自aptitudePECL lua-2.0.5Lua 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 并且它现在可以工作了。如果需要,请发布答案

标签: php apache lua debian


【解决方案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

这个可以找到php5enmod for php5

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

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 2023-03-18
    • 1970-01-01
    • 2012-03-30
    • 2019-02-05
    • 2012-01-19
    • 2016-04-28
    • 2020-01-06
    • 2017-06-03
    相关资源
    最近更新 更多