代码之家  ›  专栏  ›  技术社区  ›  Forien

Apache mod\u lua已启用,找不到PHP类lua

  •  0
  • Forien  · 技术社区  · 7 年前

    不知何故,我设法在本地机器(Windows)上玩LUA。现在我试着把它放在我的开发服务器上( Debian 9 具有 Apache 2.4.25 具有 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>
    

    这四条线没有任何明显的区别。

    直接通过Apache(从URL)运行Lua脚本是可选的。但我确实需要能够从PHP脚本中解释Lua。但即使 mod\U lua模块 显示在中 加载的模块 在里面 phpinfo() ,PHP找不到类 Lua 。为什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   alo Malbarez    7 年前

    构建扩展后,必须启用它,一些安装脚本会为您执行此操作。

    php取决于您的操作系统。在我的(ubuntu 16)中,它的ini可能有所不同

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

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

    来自命令行的快捷方式

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

    $ phpenmod extensionname
    

    这个可以找到 php5enmod 对于php5

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