we can remove the folder `lua` when do install.

and we can keep the folder `lua` in the source.


On Fri, Mar 6, 2020 at 2:58 PM Ming Wen <[email protected]> wrote:

> Hi, yuansheng:
> I start a ubuntu VM in EC2, fully simulated this bug, and I finally
> understand what you mean.
>
> Let me briefly summarize so that others can better understand the problem:
>
> 1. luarocks has its own default search path. This path is related to the
> version of Lua on the machine.
> For example, when lua 5.3 is used, then `/usr/share/lua/5.3/` will be the
> default search path of luarocks.
>
> 2. The APISIX code path has one more layer of `lua`, which is `lua/apisix`.
>
> So if we wan to be automatically searched by luarocks:
> `/usr/share/lua/5.3/apisix/init.lua` when `require "apisix.init"`,
> we must keep the code layer is `apisix/*.lua`, not the `lua/apisix/*.lua`.
>
> Thanks,
> Ming Wen, Apache APISIX
> Twitter: _WenMing
>
>
> Ming Wen <[email protected]> 于2020年3月6日周五 下午1:59写道:
>
> > ok, I see, this PR is WIP
> >
> > Thanks,
> > Ming Wen, Apache APISIX
> > Twitter: _WenMing
> >
> >
> > YuanSheng Wang <[email protected]> 于2020年3月6日周五 下午1:01写道:
> >
> >> On Fri, Mar 6, 2020 at 12:30 PM Ming Wen <[email protected]> wrote:
> >> >
> >> > > I think this PR should have resolved this issue.
> >> > The luarocks install APISIX to `/usr/share/lua/5.3/****`, which is not
> >> in
> >> > your search paths.
> >>
> >> My goal is to run APISIX without any hard-coded path, that is why I
> >> removed the `lua` folder.
> >>
> >> >
> >> > > All hard-coded paths are likely to be wrong.
> >> > but now hard-coded `Lua 5.1` in your PR.
> >>
> >> I have deleted `/usr/share/lua/5.1 / ?. lua` and we will delete more
> >> hard-coded paths later.
> >>
> >> >
> >> > Thanks,
> >> > Ming Wen, Apache APISIX
> >> > Twitter: _WenMing
> >> >
> >> >
> >> > YuanSheng Wang <[email protected]> 于2020年3月6日周五 下午12:00写道:
> >> >
> >> > > On Fri, Mar 6, 2020 at 11:41 AM Ming Wen <[email protected]>
> wrote:
> >> > > >
> >> > > > back to your first email:
> >> > > > > I found that the luarocks will install the APISIX to
> >> > > > `/usr/share/lua/5.3/****`.
> >> > > >
> >> > > > the new search path[1] can not reslove this issue, right?
> >> > >
> >> > > I think this PR should have resolved this issue.
> >> > >
> >> > > At present we all use Lua 5.1 in CI, so we can't see the bug using
> >> Lua 5.3.
> >> > > We can run test cases in Luarocks 3 + Lua 5.2 or 5.3.
> >> > >
> >> > > All hard-coded paths are likely to be wrong. We should use search
> >> > > paths provided by standard Lua whenever possible.
> >> > >
> >> > >
> >> > > >
> >> > > > [1]
> >> > > >
> >> > >
> >>
> https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8b
> >> > > >
> >> > > > Thanks,
> >> > > > Ming Wen, Apache APISIX
> >> > > > Twitter: _WenMing
> >> > > >
> >> > > >
> >> > > > YuanSheng Wang <[email protected]> 于2020年3月6日周五 上午11:36写道:
> >> > > >
> >> > > > > On Fri, Mar 6, 2020 at 11:32 AM Ming Wen <[email protected]>
> >> wrote:
> >> > > > > >
> >> > > > > > > So we can see a lot of hard-coded paths, such as:
> >> > > > > > `/usr/share/lua/5.1/apisix/lua / ?. lua`.
> >> > > > > > > If we remove the `lua` directory, then the hack path above
> is
> >> no
> >> > > longer
> >> > > > > > needed.
> >> > > > > >
> >> > > > > > So after this PR, the global Lua's search paths are?
> >> > > > >
> >> > > > > Here [1] is the new Lua search path for test case.
> >> > > > >
> >> > > > > I'll update the `bin/apisix` later.
> >> > > > >
> >> > > > > [1]
> >> > > > >
> >> > >
> >>
> https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8b
> >> > > > >
> >> > > > > >
> >> > > > > > Thanks,
> >> > > > > > Ming Wen, Apache APISIX
> >> > > > > > Twitter: _WenMing
> >> > > > > >
> >> > > > > >
> >> > > > > > YuanSheng Wang <[email protected]> 于2020年3月6日周五 上午11:12写道:
> >> > > > > >
> >> > > > > > > On Fri, Mar 6, 2020 at 11:00 AM Ming Wen <
> [email protected]>
> >> > > wrote:
> >> > > > > > >
> >> > > > > > > > Hi, yuansheng,
> >> > > > > > > > I am afraid not get your point, can you explain more?
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > > In the APISIX project, we put all the source code in the
> `lua`
> >> > > > > directory
> >> > > > > > > now
> >> > > > > > > .
> >> > > > > > >
> >> > > > > > > In order for OpenResty to load it, we need to add the `lua`
> >> > > directory
> >> > > > > to
> >> > > > > > > Lua's global search path.
> >> > > > > > > So we can see a lot of hard-coded paths, such as:
> >> > > > > > > `/usr/share/lua/5.1/apisix/lua / ?. lua`.
> >> > > > > > >
> >> > > > > > > If we remove the `lua` directory, then the hack path above
> is
> >> no
> >> > > longer
> >> > > > > > > needed.
> >> > > > > > >
> >> > > > > > > So this is the PR result you see.
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > >
> >> > > > > > > > I reviewed your PR and there still has the version of
> >> Lua[1],
> >> > > > > > > > the most important change is `lua/apisix.lua →
> >> apisix/init.lua`,
> >> > > > > right?
> >> > > > > > > >
> >> > > > > > > > [1]
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > >
> >> > >
> >>
> https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8bR60
> >> > > > > > > >
> >> > > > > > > > Thanks,
> >> > > > > > > > Ming Wen, Apache APISIX
> >> > > > > > > > Twitter: _WenMing
> >> > > > > > > >
> >> > > > > > > >
> >> > > > > > > > YuanSheng Wang <[email protected]> 于2020年2月24日周一
> >> 下午11:14写道:
> >> > > > > > > >
> >> > > > > > > > > Hi:
> >> > > > > > > > >
> >> > > > > > > > > I am using Luarocks 3 now.
> >> > > > > > > > >
> >> > > > > > > > > I make a try to install Apache APISIX by Luarocks `sudo
> >> > > luarocks
> >> > > > > > > install
> >> > > > > > > > > apisix`, and it is successful.
> >> > > > > > > > >
> >> > > > > > > > > I got an error message when I try to run the Apache
> APISIX
> >> > > server.
> >> > > > > Here
> >> > > > > > > > is
> >> > > > > > > > > the error message:
> >> > > > > > > > >
> >> > > > > > > > > nginx: [error] init_by_lua error: init_by_lua:3: module
> >> > > 'apisix'
> >> > > > > not
> >> > > > > > > > found:
> >> > > > > > > > >   no field package.preload['apisix']
> >> > > > > > > > >   no file
> >> '/usr/local/apisix//deps/share/lua/5.1/apisix.lua'
> >> > > > > > > > >   no file '/usr/share/lua/5.1/apisix/lua/apisix.lua'
> >> > > > > > > > >   no file
> '/usr/local/share/lua/5.1/apisix/lua/apisix.lua'
> >> > > > > > > > >
> >> > > > > > > > > I found that the luarocks will install the APISIX to
> >> > > > > > > > > `/usr/share/lua/5.3/****`.
> >> > > > > > > > >
> >> > > > > > > > > I think we should rename the folder lua[1] to apisix,
> >> then we
> >> > > do
> >> > > > > not
> >> > > > > > > need
> >> > > > > > > > > to hack for the Lua finding path[2].
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > [1]
> >> https://github.com/apache/incubator-apisix/tree/master/lua
> >> > > > > > > > > [2]
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > >
> >> > >
> >>
> https://github.com/apache/incubator-apisix/blob/master/bin/apisix#L105-L107
> >> > > > > > > > >
> >> > > > > > > > >
> >> > > > > > > > > --
> >> > > > > > > > >
> >> > > > > > > > > *MembPhis*
> >> > > > > > > > > My github: https://github.com/membphis
> >> > > > > > > > > Apache APISIX:
> https://github.com/apache/incubator-apisix
> >> > > > > > > > >
> >> > > > > > > >
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > --
> >> > > > > > >
> >> > > > > > > *MembPhis*
> >> > > > > > > My github: https://github.com/membphis
> >> > > > > > > Apache APISIX: https://github.com/apache/incubator-apisix
> >> > > > > > >
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > --
> >> > > > >
> >> > > > > MembPhis
> >> > > > > My github: https://github.com/membphis
> >> > > > > Apache APISIX: https://github.com/apache/incubator-apisix
> >> > > > >
> >> > >
> >> > >
> >> > >
> >> > > --
> >> > > MembPhis
> >> > > My github: https://github.com/membphis
> >> > > Apache APISIX: https://github.com/apache/incubator-apisix
> >> > >
> >>
> >>
> >>
> >> --
> >>
> >> MembPhis
> >> My github: https://github.com/membphis
> >> Apache APISIX: https://github.com/apache/incubator-apisix
> >>
> >
>


-- 
*MembPhis*
My github: https://github.com/membphis
Apache APISIX: https://github.com/apache/incubator-apisix

Reply via email to