zoukankan      html  css  js  c++  java
  • apt-get 方式安装nginx后,增加模块--with-http_perl_module

    因为要把网站的图片格式方式换成imageMagick的缘故,服务器端原来安装的nginx要增加perl的模块,而原来服务器安装时apt-get方式安装的并不是源码安装,但我又不想直接卸了重新安装,所以整了老半天,下面把方法和遇到的问题记录如下,供有同样需求的人参考。

    首先,要知道你原安装的nginx版本,以及原来安装的模块,用nginx -V即可

    /usr/sbin/nginx -V
    configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/nginx-sbbMZs/nginx-1.2.1/debian/modules/nginx-auth-pam --add-module=/build/nginx-sbbMZs/nginx-1.2.1/debian/modules/nginx-echo --add-module=/build/nginx-sbbMZs/nginx-1.2.1/debian/modules/nginx-upstream-fair --add-module=/build/nginx-sbbMZs/nginx-1.2.1/debian/modules/nginx-dav-ext-module

    结尾处的--add-module 重新安装时这里可以去掉,

    然后去官网下载一个相同版本的源码包 http://nginx.org/download/

    我的路径放在/usr/src

    tar zxf nginx-1.2.1.tar.gz;
    cd nginx-1.2.1;

    解压 进入源码路径,然后configure,加入

    --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/incloude/openssl --with-md5=/usr/incloude/openssl --with-mail --with-mail_ssl_module --with-openssl=/usr/src/openssl-1.0.1c --with-zlib=/usr/src/zlib-1.2.8 --with-pcre=/usr/src/pcre-8.21 --with-http_perl_module

    执行可能遇到问题

    the HTTP XSLT module requires the libxml2/libxslt libraries

    sudo apt-get install libxml2 libxml2-dev libxslt-dev

     the HTTP image filter module requires the GD library.

    sudo apt-get install libgd2-xpm libgd2-xpm-dev

    the GeoIP module requires the GeoIP library.

    sudo apt-get install geoip-database libgeoip-dev

     the HTTP rewrite module requires the PCRE library.

    apt-get install libpcre3 libpcre3-dev

    下载安装相关包即可,再configure,完成后,make

    make;

    可能会报lperl not found 的错误;

    apt-get install libperl-dev  

    如果已经安装 查看安装路径

    perl -V
     Compiled at Sep 29 2013 13:26:03
      @INC:
        /etc/perl
        /usr/local/lib/perl/5.14.2
        /usr/local/share/perl/5.14.2
        /usr/lib/perl5
        /usr/share/perl5
        /usr/lib/perl/5.14
        /usr/share/perl/5.14
        /usr/local/lib/site_perl

    到usr/lib 查看libperl.so是否存在,不存在的话建立连接

    ln -s libperl.so.5.14.2 /usr/lib/libperl.so 

    make 完成后,这时会在/usr/src/nginx-1.2.1 下生成一个文件夹objs

    把nginx二进制文件拷贝sbin下,注意备份原nginx

    cp objs/nginx /usr/sbin/nginx

    试一下nginx配置文件

    /usr/sbin/nginx -t

    报错

    Can't locate nginx.pm in @INC 
    (@INC contains: 
    /usr/lib/perl5 
    /etc/perl
    /usr/local/lib/perl/5.14.2 
    /usr/local/share/perl/5.14.2 
    /usr/lib/perl5 
    /usr/share/perl5 
    /usr/lib/perl/5.14 
    /usr/share/perl/5.14 
    /usr/local/lib/site_perl .).

    由于没有make install的缘故,这里我们来手动加入以下文件:

    位置在/usr/local/lib/perl/5.14.2

    这里存放的是perl的一些类库,perl -V可查看到路径

    共需手动加入五个个文件,文件可在nginx源码包中安装后生成的文件objs中找到

    /usr/local/lib/perl/5.14.2/auto/nginx 下两个nginx.bs nginx.so 可从/usr/local/src/nginx-1.4.4/objs/src/http/modules/perl/blib/arch/auto/nginx/下复制

    /usr/local/lib/perl/5.14.2两个nginx.pm perllocal.pod nginx.pm可从/usr/local/src/nginx-1.4.4/objs/src/http/modules/perl/blib/lib复制

    perllocal.pod中记录了nginx版本信息可手动加入文本如下:

    =head2 Mon Jan 13 15:01:43 2014: C<Module> L<nginx|nginx>
    
    =over 4
    
    =item *
    
    C<installed into: /usr/local/share/perl/5.14.2>
    
    =item *
    
    C<LINKTYPE: dynamic>
    
    =item *
    
    C<VERSION: 1.4.4>
    
    =item *
    
    C<EXE_FILES: >
    
    =back

    最后一个:在/usr/local/man/man3中加入nginx.3pm

    nginx.3pm 在/usr/local/src/nginx-1.4.4/objs/src/http/modules/perl/blib/man3/nginx.3pm

    找不到文件也可用命令:

    find / -name "要查找的文件名" 

    最后在用更新后copy的nginx 二进制文件启动下就应该可以了!






  • 相关阅读:
    git连接到https服务器时出现“gnutls_handshake() failed”
    Linux内核:通知链 机制
    在Linux驱动中使用notifier通知链
    Linux 内核:RCU机制与使用
    什么是工程师文化?
    在Android源码中查找Java代码中native函数对应的C++实现
    Windows下Qt5程序打包发布
    Android Framework:如何让 App 拿到Power key 值
    Windows 监控小工具
    Windows 远程桌面无法上传文件或者文件夹
  • 原文地址:https://www.cnblogs.com/china2k/p/3584570.html
Copyright © 2011-2022 走看看