Configuration is broken for service nginx: unknown directive "access_by_lua_file"

My YunoHost server

Hardware: VPS bought online
YunoHost version: 11.1.18
I have access to my server : Through SSH | through the webadmin
Are you in a special context or did you perform some particular tweaking on your YunoHost instance ? : no

Description of my issue

While installing Froxlor (PHP app with MySQL DB) as a custom My_Webapp I accidentally broke my nginx service. I could complete the installation process for Froxlor and access the web UI. However, when I attempted to run the config via webinterface, especially for nginx (see here: Configuration | Froxlor Documentation) the nginx service broke. Yunohost diagnosis shows me the following errors now.

Configuration is broken for service nginx!

nginx: [emerg] unknown directive "access_by_lua_file" in /etc/nginx/conf.d/business-suite.domain.tld.conf:11
nginx: configuration file /etc/nginx/nginx.conf test failed

Unfortunately, I couldn’t find a way to revert the command.

I found this old thread with the same error message: Unknown directive "access_by_lua_file" in nginx conf However, I am not sure if downgrading nginx is the solution in my case.

How can I fix my nginx service? Glad for any help on this.

Let’s look at dpkg --list | grep nginx

Thank you. This is the output.

ii  libnginx-mod-http-auth-pam            1.18.0-6.1+deb11u3                                amd64        PAM authentication module for Nginx
ii  libnginx-mod-http-cache-purge         1.18.0-6.1+deb11u3                                amd64        Purge content from Nginx caches
ii  libnginx-mod-http-dav-ext             1.18.0-6.1+deb11u3                                amd64        WebDAV missing commands support for Nginx
ii  libnginx-mod-http-echo                1.18.0-6.1+deb11u3                                amd64        Bring echo and more shell style goodies to Nginx
ii  libnginx-mod-http-fancyindex          1.18.0-6.1+deb11u3                                amd64        Fancy indexes module for the Nginx
ii  libnginx-mod-http-geoip               1.18.0-6.1+deb11u3                                amd64        GeoIP HTTP module for Nginx
ii  libnginx-mod-http-geoip2              1.18.0-6.1+deb11u3                                amd64        GeoIP2 HTTP module for Nginx
ii  libnginx-mod-http-headers-more-filter 1.18.0-6.1+deb11u3                                amd64        Set and clear input and output headers for Nginx
ii  libnginx-mod-http-image-filter        1.18.0-6.1+deb11u3                                amd64        HTTP image filter module for Nginx
ii  libnginx-mod-http-lua                 1.18.0-6.1+deb11u3                                amd64        Lua module for Nginx
ii  libnginx-mod-http-ndk                 1.18.0-6.1+deb11u3                                amd64        Nginx Development Kit module
ii  libnginx-mod-http-perl                1.18.0-6.1+deb11u3                                amd64        Perl module for Nginx
ii  libnginx-mod-http-subs-filter         1.18.0-6.1+deb11u3                                amd64        Substitution filter module for Nginx
ii  libnginx-mod-http-uploadprogress      1.18.0-6.1+deb11u3                                amd64        Upload progress system for Nginx
ii  libnginx-mod-http-upstream-fair       1.18.0-6.1+deb11u3                                amd64        Nginx Upstream Fair Proxy Load Balancer
ii  libnginx-mod-http-xslt-filter         1.18.0-6.1+deb11u3                                amd64        XSLT Transformation module for Nginx
ii  libnginx-mod-mail                     1.18.0-6.1+deb11u3                                amd64        Mail module for Nginx
ii  libnginx-mod-nchan                    1.18.0-6.1+deb11u3                                amd64        Fast, flexible pub/sub server for Nginx
ii  libnginx-mod-stream                   1.18.0-6.1+deb11u3                                amd64        Stream module for Nginx
ii  libnginx-mod-stream-geoip             1.18.0-6.1+deb11u3                                amd64        GeoIP Stream module for Nginx
ii  libnginx-mod-stream-geoip2            1.18.0-6.1+deb11u3                                amd64        GeoIP2 Stream module for Nginx
ii  nginx                                 1.18.0-6.1+deb11u3                                all          small, powerful, scalable web/proxy server
ii  nginx-common                          1.18.0-6.1+deb11u3                                all          small, powerful, scalable web/proxy server - common fles
ii  nginx-extras                          1.18.0-6.1+deb11u3                                amd64        nginx web/proxy server (extended version)

Do you see anything suspicious in the output @Aleks ?

Not really, you do have libnginx-mod-http-lua, v1.18.0-6.1+deb11u3 installed, which is the expectation …

Let’s also look at ls -l /etc/nginx/modules-enabled and confirm that 50-mod-http-lua.conf is listed in there

And also check that

grep -nr "modules" /etc/nginx/nginx.conf

shows:

include /etc/nginx/modules-enabled/*.conf;

Thank you @Aleks for the suggestions. Unfortunately, I needed to have my Yunohost back up running quickly as I needed urgent access to some of my apps. So, I reinstalled Yunohost to solve the issue. I know, this is not the best way as I would have been interested too to get to the root cause of the problem.

In case somebody finds time to look at it. It’s really easy to reproduce. Just install a custom web app for Froxlor and install the app from tarball as described here: Install froxlor from Tarball | Froxlor Documentation I could successfully complete steps 1 to 4.

Step 5 - Configuration of services - was where nginx got broken. Via webadmin interface I generated the command (including nginx conf adoptions) and executed it as root (which was probably not the smartest idea). This is how the error was produced.