Apache 2 模块配置错误

Apache 2 模块配置错误

我正在尝试安装SML 服务器在我的计算机上。按照所有说明操作后(位于这里这时在 2.2 章)我尝试通过添加新模块来配置 Apache,如下所示:

sml.conf添加了一个新文件:

<IfModule mod_sml.c>
      AddHandler sml-module .sml
      SmlPrjId "web"
      SmlPath "/usr/lib/smlserver/www/"
      SmlInitScript "/usr/lib/smlserver/web_sys/init.sml"
</IfModule>

sml.load以及包含以下数据的新文件:

LoadModule sml-module /usr/lib/apache2/modules/mod_sml.so

图书馆mod_sml.so被从这里

然后,当我尝试重新启动 Apache 时,我收到以下错误消息:

sudo apache2ctl restart
apache2: Syntax error on line 204 of /etc/apache2/apache2.conf: Syntax
     error on line 1 of /etc/apache2/mods-enabled/sml.load: Cannot load
         /usr/lib/apache2/modules/mod_sml.so into server:
         /usr/lib/apache2/modules/mod_sml.so: undefined symbol: log

非常感谢任何想法/建议。

答案1

  1. 该软件包适用于 32 位系统。您不会遇到该问题,因为您不会收到有关“错误的 ELF 类”的警告。
  2. 该计划于 2007 年 4 月 12 日发布(根据其下载页面和 subversion 存储库)。
  3. 我怀疑该模块是为 Apache 2.0.x 而不是 2.2.x 构建的。2007 年 4 月 12 日之后的下一个 Apache 版本是Apache 2.2.6 和 2.0.61

从源代码构建的说明:

  1. 安装一些要求:

    sudo apt-get install subversion build-essential apache2-threaded-dev mlton smlnj bison flex
    
  2. 下载该版本的源代码树(下载大小约为 25MB,下载后占用 60MB 磁盘空间):

    svn co https://mlkit.svn.sourceforge.net/svnroot/mlkit/tags/mlkit-4.3.2/kit mlkit-4.3.2
    
  3. 从先决条件开始:mlkit。运行以下命令:

    cd mlkit-4.3.2
    ./autobuild
    
    • 如果您之前没有安装 mlkit,请运行:

      ./configure
      make nj
      

      由于某种原因,上述步骤在我的计算机上失败(64 位 Natty 和 32 位 Lucid)。消息是:

      Error: GenOpcodes.sml 20.60.
        Function applied to incorrect argument.
          expects: [<equality>] * [<equality>]
          but got: [<non-equality>] * [<non-equality>]
          in: = (OS.Process.system ("mv " ^ sou  ...   OS.Process.success)
      

      如果您也失败了,请不要继续。

    • 如果您确实安装了 mlkit,请运行:

      ./configure --with-compiler=mlkit
      make mlkit
      
  4. 如果上一步完成且没有出现致命错误,则继续运行下一个命令:

    make bootstrap
    make mlkit_libs
    
  5. 安装至/usr/local

    sudo make install
    
  6. 接下来,SML 服务器:

    ./configure --enable-SMLserver --with-apxs="$(which apxs2)" --with-compiler="$(which mlkit)"
    make smlserver
    make smlserver_libs
    
  7. 安装库:

    sudo make install_smlserver
    sudo cp /usr/local/lib/smlserver/lib/mod_sml.so /usr/lib/apache2/modules/
    echo "LoadModule sml_module /usr/lib/apache2/modules/mod_sml.so" | sudo tee /etc/apache2/mods-available/sml.load
    
  8. /etc/apache2/mods-available/sml.conf创建包含以下内容的文件:

    <IfModule mod_sml.c>
      AddHandler sml-module .sml
      SmlPrjId "web"
      SmlPath "/home/mael/web/www/"
      SmlInitScript "/home/mael/web/www/../web_sys/init.sml"
    </IfModule>
    #<Directory /home/mael/web/www/web/secret>
    #  SetHandler None
    #  RewriteEngine On
    #  RewriteBase /web/secret
    #  RewriteRule .* pub.sml
    #</Directory>
    
  9. 启用模块并重启服务器:

    sudo ln -sf /etc/apache2/mods-available/sml.conf /etc/apache2/mods-enabled/sml.conf
    sudo ln -sf /etc/apache2/mods-available/sml.load /etc/apache2/mods-enabled/sml.load
    sudo /etc/init.d/apache2 restart
    

本指南汇编自:

相关内容