zoukankan      html  css  js  c++  java
  • 【Lua】linux下lua+mod_lwt环境搭建

      Lua 是一个小巧的脚本语言。它具有轻量级、可扩展等优势。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。

      LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并可直接在 Apache 上运行。LWT 的核心功能通过一个 Apache 的模块(mod_lwt)来提供。另外 LWT 提供可选的 Lua 模块用来访问数据库和缓存。

      现在用lua + LWT来搭建后台web环境。


      安装lua:

        在linux中,有两种方法可以安装lua。

        第一种:系统为Ubunut、Debian等支持apt-get命令的可以用这个方法。

          sudo apt-get install lua5.1

        第二种:

          1、先去Lua的官网(http://www.lua.org/ftp/)下载最新发布包,我选择的是 lua-5.1.4.tar.gz

          2、使用命令tar -xzvf  lua-5.1.4.tar.gz

          3、cd lua-5.1.4, 然后执行sudo make,结束后sudo make install,如果中途没有出错,那就成功了。


      安装mod_lwt:

        在安装mod_lwt之前,必须保证安装了Apache、lua和liblua.so。

        首先下载mod_lwt项目的安装包 lwt-0.9.1.tar.gz ,解压。

        cd lwt-0.9.1

        cd mod_lwt

        make

        make install

        安装过程会在/usr/local/share/lua/5.1/这个目录下生成httpd.lua以及httpd/wsapi.lua两个文件

        然后修改Apache的配置文件httpd.conf  

        vim /etc/apache2/httpd.conf

        在里面添加上:

          AddHandler lwt .lua

          AddHandler lwt-wsapi .ws

          LoadModule lwt_module   /use/lib/apache2/mod_lwt.so

        保存,然后在Apache配置目录调用命令启动模块

        a2enmod lwt

        重启Apache
        apache2ctl restart

        在重启Apache时,出现了问题:

      原因是80端口被占用,用netstat -apn | grep 80命令查看80端口使用情况:

      端口被lighttpd占用了,lighttpd是一个轻量级的web服务器,这里并不需要他,直接killall -9 lighttpd

      再次重启Apache:

      重启成功:

      现在可以用官网的测试脚本test.lua来试一试: 

     1 require "httpd"
     2 local request_fields = { "uri", "protocol", "hostname", "path", "path_info", "args",
     3                 "method", "filename", "filedir", "user", "auth_type",
     4                 "local_ip", "remote_ip" }
     5 request, args = ...
     6 httpd.set_content_type("text/plain; charset=utf8")
     7 httpd.write("Hello Lua World
    ")
     8 for _, key in ipairs(request_fields) do
     9         httpd.write(key .." -> " .. (request[key] or "(not set)") .. "
    ")
    10 end

      用浏览器访问test.lua,成功界面:

  • 相关阅读:
    Centos7创建systemctl服务
    in a frame because it set 'X-Frame-Options' to 'sameorigin'
    systemd-journald服务占用CPU过高
    Centos7修改了最大文件打开数不生效
    Docker部署Redis主从和哨兵
    基于Vue的前端项目访问首页刷新后报404
    npm的.npmrc文件在哪里?缓存及全局包文件在什么位置?
    react native 淘宝镜像
    react native 示例代码
    iOS9 & iOS10 & iOS11 HTTP 不能正常使用的解决办法
  • 原文地址:https://www.cnblogs.com/linxiong945/p/4103382.html
Copyright © 2011-2022 走看看