• 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 二进制文件启动下就应该可以了!






  • 相关阅读:
    CentOS 7 网卡命名修改为eth0格式
    Sublime Text3下的markdown插件的安装及配置
    json-lib 之jsonConfig详细使用(转载写的不错)
    IDEA快捷键【收藏】
    阿里云安装nginx 和 php-fpm
    sed 神器
    非root模式下安装mysql php小记
    一个不错的vim配置
    sublime安装sftp和ctags插件
    取得某个数组前key大 PHP实现
  • 原文地址:https://www.cnblogs.com/china2k/p/3584570.html
Copyright © 2020-2023  润新知