• 安装成功的nginx,如何添加未编译安装模块(非覆盖安装http_image_filter_module)


    背景:
    1.做了图片上传小项目。
    2.图片上传,需要多图管理。
    3.图片上传,需要存储到Fastdfs。
    4.Fastdfs上的图片,和Nginx结合。
    5.Nginx从Fastdfs获得的图片,需要使用缩略图。
    a.在不需要缩略图,小图的情况下,可以使用原图。
    b.需要缩略图的情况下,指定目标宽度和高度,获得指定宽度和高度的缩略图。


    关键的几个参考资料
    1.安装成功的nginx如何添加未编译安装模块
    http://blog.csdn.net/gebitan505/article/details/17612845
    2.nginx命令:启动,停止及命令参数详解
    http://blog.csdn.net/aidenliu/article/details/6413342
    3.nginx图片过滤处理模块http_image_filter_module安装配置笔记
    http://www.cnblogs.com/tintin1926/archive/2012/07/11/2586624.html




    第1步:查看nginx编译安装时的命令,安装了哪些模块
    /usr/local/nginx/sbin/nginx -V

    nginx version: nginx/1.8.0
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
    configure arguments: --add-module=/root/soft/fastdfs-nginx-module-master/src  


        cd /root/soft/nginx-1.8.0
    ./configure --prefix=/root/soft/ --add-module=/root/soft/fastdfs-nginx-module-master/src --with-http_image_filter_module --with-http_realip_module  --with-debug
    报错啦
    ./configure: error: the HTTP image filter module requires the GD library.
    You can either do not enable the module or install the libraries.

    第2步:安装the GD library
    #这种不行,我自己YY的
    yum install gd
    Running Transaction
      Installing : libXpm-3.5.10-2.el6.x86_64                                                                                                       1/2 
      Installing : gd-2.0.35-11.el6.x86_64                                                                                                          2/2 
      Verifying  : libXpm-3.5.10-2.el6.x86_64                                                                                                       1/2 
      Verifying  : gd-2.0.35-11.el6.x86_64                                                                                                          2/2 


    Installed:
      gd.x86_64 0:2.0.35-11.el6                                                                                                                         


    Dependency Installed:
      libXpm.x86_64 0:3.5.10-2.el6                                                                                                                      


    Complete!
    按照自己yy的方式,无法启动。
    百度搜索“the HTTP image filter module requires the GD library”,找到以下方式~
    #这种方式可以
    yum install gd-devel
    Installed:
      gd-devel.x86_64 0:2.0.35-11.el6                                                                                                                   


    Dependency Installed:
      fontconfig-devel.x86_64 0:2.8.0-5.el6               freetype-devel.x86_64 0:2.3.11-15.el6_6.1          libX11-devel.x86_64 0:1.6.0-6.el6         
      libXau-devel.x86_64 0:1.0.6-4.el6                   libXpm-devel.x86_64 0:3.5.10-2.el6                 libXt.x86_64 0:1.1.4-6.1.el6              
      libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5          libpng-devel.x86_64 2:1.2.49-1.el6_2               libxcb-devel.x86_64 0:1.9.1-3.el6         
      xorg-x11-proto-devel.noarch 0:7.7-9.el6            


    Dependency Updated:
      fontconfig.x86_64 0:2.8.0-5.el6     freetype.x86_64 0:2.3.11-15.el6_6.1     libX11.x86_64 0:1.6.0-6.el6     libX11-common.noarch 0:1.6.0-6.el6    
      libxcb.x86_64 0:1.9.1-3.el6        


    Complete!


    第3步:这个目录下有二进制文件
    /root/soft/nginx-1.8.0/objs


    仍然在“/root/soft/nginx-1.8.0”这个目录下


    原来的nginx二进制文件
    -rwxr-xr-x 1 root root 3322288 Oct 29 14:29 nginx


    编译生成的Nginx
    -rwxr-xr-x 1 root root 3480087 Nov  5 18:10 nginx
    稍微变大了一点,这应该是增加了一个模块的效果


    cp ./objs/nginx /usr/local/nginx/sbin/  


    [root@AY1304131823374920ac nginx-1.8.0]# cp ./objs/nginx /usr/local/nginx/sbin/ 
    cp: overwrite `/usr/local/nginx/sbin/nginx'? y
    cp: cannot create regular file `/usr/local/nginx/sbin/nginx': Text file busy


    第4步:停止Nginx的2个进程,再次cp
    [root@AY1304131823374920ac conf]# ps -ef|grep nginx
    root     11648  5064  0 18:18 pts/0    00:00:00 grep nginx
    root     30321     1  0 Oct29 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nobody   30322 30321  0 Oct29 ?        00:00:08 nginx: worker process      
    [root@AY1304131823374920ac conf]# ps -ef|grep nginx
    root     11668  5064  0 18:19 pts/0    00:00:00 grep nginx
    root     30321     1  0 Oct29 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nobody   30322 30321  0 Oct29 ?        00:00:08 nginx: worker process      
    [root@AY1304131823374920ac conf]# kill -9 30321
    [root@AY1304131823374920ac conf]# ps -ef|grep nginx
    root     11670  5064  0 18:19 pts/0    00:00:00 grep nginx
    nobody   30322     1  0 Oct29 ?        00:00:08 nginx: worker process      
    [root@AY1304131823374920ac conf]# kill -9 30322
    [root@AY1304131823374920ac conf]# ps -ef|grep nginx
    root     11672  5064  0 18:19 pts/0    00:00:00 grep nginx
    重新执行cp命令




    第5步:检查配置,发现启动报错
    [root@AY1304131823374920ac conf]# /usr/local/nginx/sbin/nginx -t
    nginx: [alert] could not open error log file: open() "/root/soft//logs/error.log" failed (2: No such file or directory)
    2015/11/05 18:20:52 [emerg] 11697#0: open() "/root/soft//conf/nginx.conf" failed (2: No such file or directory)
    nginx: configuration file /root/soft//conf/nginx.conf test failed


    应该是编译制定了--prefix /root/soft导致的,之前安装的时候,没有指定,默认可能是“/usr/local”.


    第6步:可以通过指定配置文件的路径,来启动~
    nginx -c </path/to/config>
      此命令参数指定一个新的nginx配置文件来替换默认的nginx配置文件,如果你不确定新的nginx配置文件语法是否正确,你可以通过nginx命令-t参数来测试,-t参数代表不运行配置文件,而仅仅只是测试配置文件,即
    nginx -t -c </path/to/config>


    这次,我还是重新编译算了~
    ./configure --prefix=/usr/local/nginx --add-module=/root/soft/fastdfs-nginx-module-master/src --with-http_image_filter_module --with-http_realip_module  --with-debug
    make
    cp ./objs/nginx /usr/local/nginx/sbin/  


    第7步:image_filter指令,不会再报错了。
    location ~ group1/M00/(.+).?(.+){
              alias /home/fastdata/data;
                ngx_fastdfs_module;
    image_filter resize  200 220;
          }
  • 相关阅读:
    elasticsearch 基础 —— 集群原理
    剑指 offer set 10 栈的压入、弹出序列
    剑指 offer set 9 包含min函数的栈
    剑指 offer set 8 树的子结构
    剑指 offer set 7 调整数组顺序使奇数位于偶数前面
    剑指 offer set 6 打印从 1 到 N 的所有数
    剑指 offer set 5 二进制中 1 的个数
    剑指 offer set 4 矩形覆盖
    剑指 offer set 3 旋转数组的最小数字
    剑指 offer set 2 从头到尾打印链表
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462613.html
Copyright © 2020-2023  润新知