使用模块构建 NGINX?

使用模块构建 NGINX?

我正在尝试使用自定义模块构建 NGINX。

我克隆了模块我想用。

然后我克隆NGINX

我将目录更改为nginx/auto,然后尝试使用以下命令运行配置脚本:

sudo ./configure --add-module=/home/philip/projects/nginx-rtmp-module

我收到错误:

./configure: 10: .: Can't open auto/options

我这里是否漏掉了一步?

答案1

如果源代码是从 github 克隆的,则应该./auto/configure在根目录中使用,而不是./configure在自动目录中使用。

答案2

我发现我可以通过下载 tar 文件而不是使用 git repo 来实现这一点:

wget http://nginx.org/download/nginx-1.5.3.tar.gz
tar xvfz nginx-1.5.3.tar.gz
cd nginx-1.5.3
sudo ./configure --add-module=/home/philip/projects/nginx-rtmp-module

答案3

* 编辑 * 刚刚看到你可以用前缀参数运行 ./configure,我修复它之后还没有尝试过,但你可能可以

$: ./configure --prefix=/path/to/nginx

配置脚本使用的相对路径解析不正确。不确定为什么会出现这种情况,但您可以按照以下方法进行纠正。

我是这样做的:

  1. 通过搜索 auto/options 文件找到 Nginx 配置脚本
$: find / | grep auto/options
/build/src/nginx/nginx-1.15.11/auto/options
$: ls /build/src/nginx/nginx-1.15.11 | grep configure
/build/src/nginx/nginx-1.15.11/configure
  1. 查看配置文件,查找 auto/options。将其替换为绝对路径。
. /full/path/to/nginx/auto/options
  1. 现在尝试配置时,它会抛出一个新错误 - 您需要替换每个相对路径。确保您位于包含配置脚本的目录中,这样当您ls看到配置脚本时,就可以运行此代码来搜索并conf用绝对路径替换每个脚本。
find ./ -type f | grep "conf" | xargs sed -i 's/. auto\//. \/build\/src\/nginx\/nginx\-1\.15\.11\//g'

在上面的例子中,我使用了绝对路径我的 NGINX您需要将其替换为您的路径,即包含“configure”文件的目录

相关内容