【问题标题】:unknown directive "content_by_lua_file" in Nginx, LinuxNginx,Linux中的未知指令“content_by_lua_file”
【发布时间】:2019-11-06 15:21:38
【问题描述】:

在安装完所有东西——nginx、Lua、LuaJit、openresty 等——并启动 nginx 之后,我得到了这个:

unknown directive "content_by_lua_file" in /etc/nginx/sites-enabled/my_site.com

我忘记了什么?安装 nginx 时应该以某种方式启用 Lua 支持吗?怎么样?

我的脚本将在 LuaJit 上运行,操作系统是 Arch Linux

【问题讨论】:

  • 是的,nginx 必须使用 Lua 支持构建(默认关闭)
  • @EgorSkriptunoff 在 Arch Linux 上有多精确?

标签: nginx lua luajit


【解决方案1】:

你不需要单独安装openresty和nginx。 Openresty 是修改后的 nginx,不是库,其可执行文件也称为nginx。尝试在命令提示符中输入whereis nginx,看看你的路径中是否有多个可执行文件,很可能你会发现你正在启动普通的 nginx 而不是 openresty。

除非你想让 openresty 和 nginx 并行运行(这真的没有什么好的理由,除非它是为了满足一些第三方安全标准或类似的东西),否则只需卸载 nginx(并且要 100%,卸载并重新安装openresty),然后重试。

如果这仍然不起作用,请尝试致电 nginx -V 并告诉我们它的内容。


编辑:

你也可以输入

which nginx

准确查看使用了哪个可执行文件以及

ls $(which openresty)

查看它是否是某个地方的符号链接或

file $(which openresty)

查看它是运行其他东西的二进制文件还是 bash 脚本。

这应该涵盖最常见的间接寻址,并有助于准确确定 实际上 调用了哪个 nginx 二进制文件。

如果有 openresty 二进制文件,请使用上述命令进行尝试。

【讨论】:

  • whereis nginx ---> nginx: /usr/bin/nginx /etc/nginx /usr/share/nginx /opt/openresty/nginx/sbin/nginx /usr/share/man/man8/nginx.8.gz
  • 我已经卸载了 nginx。现在通过“systemctl nginx status”和简单的“nginx”看不到openresty的nginx。这是openresty的正确行为吗?
  • 正如我所说,尝试重新安装 openresty(甚至可能清除它)以确保正常的 nginx 不会弄乱它的配置。如果您愿意,可以将/opt/openresty/nginx/sbin/nginx 的符号链接创建为/usr/local/bin/openresty,然后您只需调用openresty 即可。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 2011-12-12
  • 2017-07-28
  • 2020-04-09
  • 1970-01-01
  • 2017-07-24
  • 2020-03-30
  • 2021-10-27
相关资源
最近更新 更多