打造windows openresty 开发环境 (openresty+windows+ubuntu 子系统)

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_user [request" '

'body_bytes_sent "$http_referer" '

'"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/bin 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 开发环境 (openresty+windows+ubuntu 子系统))