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)]
网友评论