无法修补nginx源(无法找到补丁文件)

时间:2017-05-31 20:20:54

标签: linux nginx patch

我试图修补nginx源但它一直给我这个错误

[root@server nginx-1.2.6]# patch -p0 < 0004-Accept-variable-name-as-upload_limit_rate-argument.patch
can't find file to patch at input line 14
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|From 8f4cad171fe4fed9cbd11a6a10fb4880e49bf9f6 Mon Sep 17 00:00:00 2001
|From: Valentin Dudouyt <valentin.dudouyt@gmail.com>
|Date: Fri, 12 Feb 2016 11:28:56 +0600
|Subject: [PATCH] Accept variable name as upload_limit_rate argument
|
|---
| ngx_http_upload_module.c | 27 +++++++++++++++++----------
| 1 file changed, 17 insertions(+), 10 deletions(-)
|
|diff --git a/ngx_http_upload_module.c b/ngx_http_upload_module.c
|index 93ded70..6bd5027 100644
|--- a/ngx_http_upload_module.c
|+++ b/ngx_http_upload_module.c
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
7 out of 7 hunks ignored

为什么我收到此错误

2 个答案:

答案 0 :(得分:1)

  1. 您尝试修补的文件是nginx模块(nginx-upload-module)的一部分,而不是nginx本身的一部分。除非你把它放在那里,否则它不会存在于nginx源代码中。

  2. 您尝试修补的nginx版本很古老。目前的版本是1.12; 1.2分支最后一次更新于2013年(1.2.9),即便如此,也缺少几个重要的安全版本。

  3. nginx-upload-module已经死了。该项目的最后一次提交是在2008年(9年前!!),该模块与当前版本的nginx不兼容。

答案 1 :(得分:0)

补丁中引用的文件不是预期的位置。 在我看来补丁正在寻找ngx_http_upload_module.c。 -p0 告诉补丁在当前工作目录中查找此文件。

首先你必须找出应该修补的文件的位置,然后进入该目录或调整 -p 参数