Debian 上有多个版本的 Nginx

Debian 上有多个版本的 Nginx

我有一个标准版本的 Nginx(通过安装apt-get)运行我的生产环境(Debian Jessie)。

现在我想从源代码编译最新版本的 Nginx,并添加一些额外的模块进行测试。可执行文件可能位于任何地方,但我想确保不会意外覆盖我的生产版本。

我知道的:我需要cd到 nginx 源目录并执行:

./configure --add-module=/path/to/some/module
make
make install

我不知道的是:如何确保测试版本不会安装在生产版本之上。或者如何安装在我指定的特定位置。

(我尝试阅读 make 的手册页,但没有得出任何结论性的答案。我对从源代码进行编译缺乏经验。)

答案1

您可以将安装目标指定为./configure,而不是 的选项make。默认情况下,nginx 会为自己配置前缀/usr/local/nginx,因此不存在覆盖打包版本的风险;你可以指定你自己的路径

./configure --prefix=/your/installation/path

默认的 nginx 设置不会安装其前缀之外的任何文件,例如/etc

安装过程记录在nginx 网站

检查某个软件从源代码安装是否安全的一般策略是运行安装步骤与-n选项(它告诉 Make 不要实际执行任何操作):

make -n install

这将列出所有操作在实际安装中完成。 (某些构建系统会破坏此选项,因为后续安装步骤依赖于早期安装步骤所做的更改;nginx 的构建工作正常。)

当然,在接触生产系统之前,您应该首先在另一个系统上尝试源构建和安装步骤......

答案2

您应该./configure使用以下--sbin-path=选项运行:

--sbin-path=路径— 设置 nginx 可执行文件的名称。该名称仅在安装期间使用。默认情况下,该文件名为prefix/sbin/nginx.

答案3

另一个想法是使用安西布尔进行配置。之后您可以创建新的虚拟机(例如使用流浪汉)并推出你的 ansible 配置(所谓的剧本)。

相关内容