openwrt 17.01源码对应的nginx版本是1.10.2,有些新功能没有,所以需要升级到nginx 1.14.2最新的稳定版

https://github.com/macports/macports-ports/blob/09603eacd0424538f0321e2ce04f5295f987571a/www/nginx/files/patch-src-ngx_http_lua_headers.c.diff

https://github.com/openwrt/packages/tree/master/net/nginx/patches

有几个地方需要修改:

1、修改feeds/packages/net/nginx/patches目录里的几个文件:

增加一个文件:201-ignore-invalid-options.patch

  1. --- a/auto/options
  2. +++ b/auto/options
  3. @@ -391,7 +391,6 @@ $0: warning: the \"--with-sha1-asm\" option is deprecated"
  4. --test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
  5. *)
  6. - echo "$0: error: invalid option \"$option\""
  7. - exit 1
  8. + echo "$0: error: ignoring invalid option \"$option\""
  9. ;;
  10. esac

修改:

102-sizeof_test_fix.patch

  1. --- a/auto/types/sizeof
  2. +++ b/auto/types/sizeof
  3. @@ -25,8 +25,14 @@ $NGX_INCLUDE_UNISTD_H
  4. $NGX_INCLUDE_INTTYPES_H
  5. $NGX_INCLUDE_AUTO_CONFIG_H
  6. +char object_code_block[] = {
  7. + '\n', 'e', '4', 'V', 'A',
  8. + '0', 'x', ('0' + sizeof($ngx_type)),
  9. + 'Y', '3', 'p', 'M', '\n'
  10. +};
  11. +
  12. int main(void) {
  13. - printf("%d", (int) sizeof($ngx_type));
  14. + printf("dummy use of object_code_block to avoid gc-section: %c", object_code_block[0]);
  15. return 0;
  16. }
  17. @@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
  18. if [ -x $NGX_AUTOTEST ]; then
  19. - ngx_size=`$NGX_AUTOTEST`
  20. + ngx_size=`sed -ne 's/^e4VA0x\(.\)Y3pM$/\1/p' < $NGX_AUTOTEST`
  21. echo " $ngx_size bytes"
  22. fi

2、修改feeds/packages/net/nginx/patches-lua-nginx目录里的几个文件:

增加:101-patch-src-ngx_http_lua_headers.c.patch

  1. --- a/lua-nginx/src/ngx_http_lua_headers.c
  2. +++ b/lua-nignx/src/ngx_http_lua_headers.c
  3. @@ -77,6 +77,9 @@
  4. size_t size;
  5. ngx_buf_t *b, *first = NULL;
  6. ngx_int_t i, j;
  7. +#if defined(nginx_version) && nginx_version >= 1011011
  8. + ngx_chain_t *cl;
  9. +#endif
  10. ngx_connection_t *c;
  11. ngx_http_request_t *r, *mr;
  12. ngx_http_connection_t *hc;
  13. @@ -141,8 +141,15 @@
  14. if (hc->nbusy) {
  15. b = NULL;
  16. +
  17. +#if defined(nginx_version) && nginx_version >= 1011011
  18. + for (cl = hc->busy; cl; /* void */) {
  19. + b = cl->buf;
  20. + cl = cl->next;
  21. +#else
  22. for (i = 0; i < hc->nbusy; i++) {
  23. b = hc->busy[i];
  24. +#endif
  25. dd("busy buf: %d: [%.*s]", (int) i, (int) (b->pos - b->start),
  26. b->start);
  27. @@ -216,8 +217,15 @@
  28. }
  29. if (hc->nbusy) {
  30. +
  31. +#if defined(nginx_version) && nginx_version >= 1011011
  32. + for (cl = hc->busy; cl; /* void */) {
  33. + b = cl->buf;
  34. + cl = cl->next;
  35. +#else
  36. for (i = 0; i < hc->nbusy; i++) {
  37. b = hc->busy[i];
  38. +#endif
  39. if (!found) {
  40. if (b != first) {

3、修改feeds/packages/net/nginx/Makefile文件:

  1. PKG_VERSION:=1.14.2

在openwrt 17.01上编译最新nginx 1.14.2的笔记的更多相关文章

  1. 编译安装 nginx -1.14.2

    编译安装 nginx -1.14.2 1 ) 下载nginx-1.14.2 源码包: wget http://nginx.org/download/nginx-1.14.2.tar.gz 2 ) 编译 ...

  2. 在Windows上编译最新的CURL,含有zlib,openssl

    最近,从网上下载了一个curl库,使用时各种报错,都无法启动,于是干脆就直接自己编译了. 1. 准备工作 a. 下载zlib zlib可以使得HTTP请求支持gzip压缩,其地址如下: 官网:http ...

  3. 在centos7上编译安装nginx

    题前,先放一个有图有真相的博客链接:https://www.cnblogs.com/zhang-shijie/p/5294162.html 虽然别人说的很详细,但还是记录一下 1.VMWare Wor ...

  4. 在Debian Wheezy 7.3.0上编译安装3.12.14内核

    最近需要对Linux的一个内核模块进行调整实验,故决定先在虚拟机中完成编译调试工作,最后再在真实的系统上进行测试.为了防止遗忘,把过程记录于此. 1. 准备系统环境 首先从官网下载最新版的Virtua ...

  5. 运维实践-最新Nginx二进制构建编译lua-nginx-module动态链接Lua脚本访问Redis数据库读取静态资源隐式展现

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x0n 前言 ...

  6. CentOS 7上重新编译安装nginx

    CentOS 7的源所提供的nginx几乎不包含任何扩展模块:为了能够使用一些扩展模块,我们需要从源代码重新编译安装nginx. 目前最新版的源代码是1.6.1.下载解压后先不要急着configure ...

  7. ubuntu和centos 编译安装nginx及常用命令

    转自http://www.cnblogs.com/piscesLoveCc/p/5794926.html 一. ubuntu安装 1. 安装依赖库 安装gcc g++的依赖库 ubuntu平台可以使用 ...

  8. centos系统编译安装nginx+php环境另加独立mysql教程

    以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...

  9. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

随机推荐

  1. svn服务器端—管理员分配权限

    1.SVN服务器搭建和使用 下载地址:http://subversion.apache.org/packages.html 滚动到浏览器底部,下载并安装:VisualSVN服务器端和tortoiseS ...

  2. redis 队列模式

    1.插入队列(生产者) private static RedisClient client = new RedisClient("127.0.0.1", 6379, null);c ...

  3. RocketMQ控制台命令

    本文未完成,有空再补充,不小心发布了,抱歉 Rocket版本:4.3.0 这几天在整RocketMQ,可谓是困难重重,其中关于控制台的命令,网上的都是一半一半的, 所以我打算直接用整一个完整的官方的命 ...

  4. scau 9502 ARDF一个变量的问题

    哨兵变量flag不小心没 设置成0..所以一直WA 9502 ARDF 时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Des ...

  5. python基础学习(十一)

    22.类 # 类 class # 实例 实体 instance class Student: # 空语句 保持结构的完整性 pass jack = Student() jack.name = &quo ...

  6. 长乐培训Day2

    T1 足球联赛 题目 [题目描述] 巴蜀中学新一季的足球联赛开幕了.足球联赛有n只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得3分,输一场不得分,平局两只队伍各得一分. 英勇无 ...

  7. C++ 中的 多态性

    一 .多态性 1.多态性概述:多态是指同样的消息被不同类型的对象接受时导致不同的行为 2.多态实现:编译时的多态:在编译的过程中确定了同名操作的具体对象.   运行时的多态:在程序运行过程中动态地确定 ...

  8. 虚拟环境搭建Django项目

    下载虚拟环境包 pip install virtualenv 创建虚拟环境 virtualenv   env 进入env文件夹 cd env 进入Scripts文件夹 cd Scripts 启动虚拟环 ...

  9. Python进阶:值传递,引用传递?不存在的,是赋值传递

    Python的变量及其赋值 c/c++/c#/java 里面都有值传递,引用传递的概念,在Python中是如何的? 例 a = 1 b = a print(id(a),id(b)) #14072334 ...

  10. access函数的使用

    #include<unistd.h> int access(const char* pathname, int mode); 参数介绍: pathname 是文件的路径名+文件名 mode ...