美文网首页
打造windows openresty 开发环境 (openre

打造windows openresty 开发环境 (openre

作者: dozenx | 来源:发表于2021-06-21 19:13 被阅读0次

    1 安装ubuntu

    首先我们需要实现的第一个功能是读取本地配置,并且实时一个各个生命周期里读取配置的插件.并运行.

    如果你是windows 用户的话,我并不建议用windows 去安装部署openresty ,应为后期我们的openresty 肯定是要部署在linux 上的,你用来开发一些插件的时候需要用到一些库,这些库如果要编译在windows上的话,意味着你要折腾两遍.

    所以我建议你创建的时候在ubuntu子系统上去搞.

    进入 microsoft store 安装ubuntu

    [图片上传失败...(image-17b5f-1624273861648)]

    搜索ubuntu 进行安装 ,安装完成后重启系统.

    [图片上传失败...(image-fd26e1-1624273861648)]

    Win10中安装Ubuntu子系统后默认是没有开启SSH服务的,需要手动配置开启,

    如何安装win10的linux子系统可以参考这篇文章:https://blog.csdn.net/zhouzme/article/details/78780479

    2 开通ssh

    先通过 bash 进入子系统修改配置

    vi /etc/ssh/sshd_config

    如果文件不存在说明尚未安装,则执行安装

    apt-get install openssh-server

    继续修改配置,下面以密码登录的配置作说明:

    Port = 22 # 默认是22端口,如果和windows端口冲突或你想换成其他的否则不用动

    ListenAddress 0.0.0.0 # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP

    PermitRootLogin no # 如果你需要用 root 直接登录系统则此处改为 yes

    PasswordAuthentication no # 将 no 改为 yes 表示使用帐号密码方式登录

    主要配置以上几项即可

    然后启动 ssh 服务

    service ssh start

    这个时候再用 xshell 就能连接子系统了

    [图片上传失败...(image-2acd49-1624273861648)]

    windows 还能直接访问ubuntu 里的文件系统

    C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\local\apps\openresty

    3 此处略过openresty 安装

    4 共享目录调整

    他在这个目录下.

    我们只需要把我们的openresty 安装在ubuntu里

    luarocks 也安装在子系统里

    然后在idea 里去编辑这个目录里的文件就可以了

    在安装的时候要注意,我们的这个ubuntu子系统是没有 make gcc 的

    需要手动安装的

    我们把我们的luademo 工程迁移到

    C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\local\apps\openresty下

    修改nginx 的配置

    增加如下配置

    lua_code_cache off;

    include /usr/local/apps/openresty/luademo/conf/nginx-lua.conf;

    将日志定位到工程目录下

    access_log /usr/local/apps/openresty/luademo/logs/access_8089.txt;

    error_log /usr/local/apps/openresty/luademo/logs/error_8089.txt info;

    修改

    vi ~/.bash_profile

    export PATH=$PATH:/usr/local/apps/openresty/nginx/sbin

    nginx -s reload 执行成功

    5 日志转移

    为了方便开发我们需要把日志转移到工程目录下 方便用idea 打开日志查看

    http {

    include mime.types;

    default_type application/octet-stream;

    log_format main 'remote_addr -remote_user [time_local] "request" '

    'statusbody_bytes_sent "$http_referer" '

    '"http_user_agent" "http_x_forwarded_for"';

    access_log logs/access.log main;

    sendfile on;

    tcp_nopush on;

    keepalive_timeout 0;

    keepalive_timeout 65;

    gzip on;

    access_log /usr/local/apps/openresty/luademo/logs/access.txt;

    error_log /usr/local/apps/openresty/luademo/logs/error.txt info;

    server {

    listen 8080;

    server_name localhost;

    charset koi8-r;

    access_log logs/host.access.log main;

    location / {

    root html;

    index index.html index.htm;

    }

    6 luarocks 安装 以及lfs 安装使用

    安装前先备份 openresty

    sudo tar -cvf openresty.tar openresty

    zip

    sudo apt-get install zip

    sudo mkdir /usr/local/apps/luarocks

    sudo chmod -R 777 /usr/local/apps/luarocks

    cd /usr/local/apps/luarocks

    wget https://luarocks.org/releases/luarocks-3.3.1.tar.gz

    tar -xvf luarocks-3.3.1.tar.gz

    cd luarocks-3.3.1

    ./configure --prefix=/usr/local/apps/openresty/luajit \

    --with-lua=/usr/local/apps/openresty/luajit/ \

    --lua-suffix=jit \

    --with-lua-include=/usr/local/apps/openresty/luajit/include/luajit-2.1

    [图片上传失败...(image-73e5ec-1624273861647)]

    这个时候在

    /usr/local/apps/openresty/luajit/bin 下能看到我们安装好的 luarocks

    [图片上传失败...(image-dc87f8-1624273861647)]

    安装lfs

    进入到/usr/local/apps/openresty/luajit/bin目录中

    ./luarocks install luafilesystem

    dozenx@DESKTOP-93QKS01:/usr/local/apps/openresty/luajit/bin$ sudo ./luarocks install luafilesystem

    Installing https://luarocks.org/luafilesystem-1.8.0-1.src.rock

    luafilesystem 1.8.0-1 depends on lua >= 5.1 (5.1-1 provided by VM)

    gcc -O2 -fPIC -I/usr/local/apps/openresty/luajit/include/luajit-2.1 -c src/lfs.c -o src/lfs.o

    gcc -shared -o lfs.so src/lfs.o

    No existing manifest. Attempting to rebuild...

    luafilesystem 1.8.0-1 is now installed in /usr/local/apps/openresty/luajit (license: MIT/X11)

    [图片上传失败...(image-ac27c3-1624273861647)]

    在/usr/local/apps/openresty/luajit/lib/lua/5.1目录中,会看到编译好的lfs.so,不用再拷贝什么的,openresty就直接可以用了。

    ozenx@DESKTOP-93QKS01:/usr/local/apps/openresty/luajit/bincd /usr/local/apps/openresty/luajit/lib/lua/5.1dozenx@DESKTOP-93QKS01:/usr/local/apps/openresty/luajit/lib/lua/5.1 ls

    lfs.so

    [图片上传失败...(image-768aa7-1624273861647)]

    测试方法

    在nginx-lua.conf里添加一段代码段

    location /demo/lfs/test {

    content_by_lua_file /usr/local/apps/openresty/luademo/src/demo/lfsTest.lua;

    }

    lfsTest.lua 内容如下


    --- Generated by EmmyLua(https://github.com/EmmyLua)

    --- Created by Administrator.

    --- DateTime: 2021/6/10 19:24


    local lfs = require "lfs"

    print("开始测试lfs的功能")

    print(lfs._VERSION)

    请求测试

    curl 127.0.0.1:8089/demo/lfs/test

    2021/06/21 17:26:16 [notice] 2754#0: *871 [lua] lfsTest.lua:9: 开始测试lfs的功能, client: 127.0.0.1, server: localhost, request: "GET /demo/lfs/test HTTP/1.1", host: "127.0.0.1:8089"

    2021/06/21 17:26:16 [notice] 2754#0: *871 [lua] lfsTest.lua:10: LuaFileSystem 1.8.0, client: 127.0.0.1, server: localhost, request: "GET /demo/lfs/test HTTP/1.1", host: "127.0.0.1:8089"

    [图片上传失败...(image-231e89-1624273861647)]

    相关文章

      网友评论

          本文标题:打造windows openresty 开发环境 (openre

          本文链接:https://www.haomeiwen.com/subject/wppbjltx.html