nginx(一)----ubuntu14.04下安裝nginx


/**

* lihaibo

* 文章內容都是根據自己工作情況實踐得出。

*如有錯誤,請指正

*轉載請注明出處

*/

此文章中用到的軟件下載地址:

鏈接: http://pan.baidu.com/s/1kVCPcLh 密碼: zdw5

一、系統環境:

root@ubuntu:/usr/local/pcre-8.38# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

二、安裝pcre

  進入/usr/local  獲取pcre編譯安裝包,在http://www.pcre.org/上可以獲取當前最新的版本

  pcre-8.38.tar.bz2    解壓:  tar   -jxvf     pcre-8.38.tar.bz2

  進入解壓縮目錄,執行./configure。

   遇到問題一:./configure: error: C compiler cc is not found

    解決方案: sudo apt-get install -y gcc

   遇到問題二:configure: error: You need a C++ compiler for C++ support.

    解決方案:sudo apt-get install build-essential

   再./configure

  

pcre-8.38 configuration summary:

    Install prefix .................. : /usr/local
    C preprocessor .................. : gcc -E
    C compiler ...................... : gcc
    C++ preprocessor ................ : g++ -E
    C++ compiler .................... : g++
    Linker .......................... : /usr/bin/ld -m elf_x86_64
    C preprocessor flags ............ : 
    C compiler flags ................ : -g -O2 -fvisibility=hidden
    C++ compiler flags .............. : -O2 -fvisibility=hidden -fvisibility-inlines-hidden
    Linker flags .................... : 
    Extra libraries ................. : 

    Build 8 bit pcre library ........ : yes
    Build 16 bit pcre library ....... : no
    Build 32 bit pcre library ....... : no
    Build C++ library ............... : yes
    Enable JIT compiling support .... : no
    Enable UTF-8/16/32 support ...... : no
    Unicode properties .............. : no
    Newline char/sequence ........... : lf
    \R matches only ANYCRLF ......... : no
    EBCDIC coding ................... : no
    EBCDIC code for NL .............. : n/a
    Rebuild char tables ............. : no
    Use stack recursion ............. : yes
    POSIX mem threshold ............. : 10
    Internal link size .............. : 2
    Nested parentheses limit ........ : 250
    Match limit ..................... : 10000000
    Match limit recursion ........... : MATCH_LIMIT
    Build shared libs ............... : yes
    Build static libs ............... : yes
    Use JIT in pcregrep ............. : no
    Buffer size for pcregrep ........ : 20480
    Link pcregrep with libz ......... : no
    Link pcregrep with libbz2 ....... : no
    Link pcretest with libedit ...... : no
    Link pcretest with libreadline .. : no
    Valgrind support ................ : no
    Code coverage ................... : no

   執行make & make  install

三、安裝openssl

      獲取openssl編譯安裝包,在http://www.openssl.org/source/上可以獲取當前最新的版本。

      openssl-1.1.0-pre1.tar.gz

     執行 ./config

Operating system: x86_64-whatever-linux2
Configuring for linux-x86_64
Configuring for linux-x86_64
    no-deprecated   [default]  OPENSSL_NO_DEPRECATED (skip dir)
    no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
    no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
    no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
    no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
    no-shared       [default] 
    no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE (skip dir)
    no-store        [experimental] OPENSSL_NO_STORE (skip dir)
    no-unit-test    [default]  OPENSSL_NO_UNIT_TEST (skip dir)
    no-zlib         [default] 
    no-zlib-dynamic [default] 
IsMK1MF=0
CC            =gcc
CFLAG         =-DOPENSSL_THREADS -pthread -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -Wall -O3 -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
EX_LIBS       =-ldl
CPUID_OBJ     =x86_64cpuid.o
BN_ASM        =x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
EC_ASM        =ecp_nistz256.o ecp_nistz256-x86_64.o
DES_ENC       =des_enc.o fcrypt_b.o
AES_ENC       =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
BF_ENC        =bf_enc.o
CAST_ENC      =c_enc.o
RC4_ENC       =rc4-x86_64.o rc4-md5-x86_64.o
RC5_ENC       =rc5_enc.o
MD5_OBJ_ASM   =md5-x86_64.o
SHA1_OBJ_ASM  =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
RMD160_OBJ_ASM=
CMLL_ENC      =cmll-x86_64.o cmll_misc.o
MODES_OBJ     =ghash-x86_64.o aesni-gcm-x86_64.o
ENGINES_OBJ   =e_padlock-x86_64.o
PROCESSOR     =
RANLIB        =/usr/bin/ranlib
ARFLAGS       =
PERL          =/usr/bin/perl
SIXTY_FOUR_BIT_LONG mode
DES_UNROLL used
DES_INT used
RC4_CHUNK is unsigned long

  make  & make install

四、安裝zlib

     獲取zlib編譯安裝包,在http://www.zlib.net/上可以獲取當前最新的版本

      zlib-1.2.8.tar.gz    解壓: tar -zxvf zlib-1.2.8.tar.gz

      進入解壓縮目錄,執行./configure。

root@ubuntu:/usr/local/zlib-1.2.8# ./configure 
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.8 with gcc.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.

    make  & make install

root@ubuntu:/usr/local/zlib-1.2.8# make install
cp libz.a /usr/local/lib
chmod 644 /usr/local/lib/libz.a
cp libz.so.1.2.8 /usr/local/lib
chmod 755 /usr/local/lib/libz.so.1.2.8
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
cp zlib.pc /usr/local/lib/pkgconfig
chmod 644 /usr/local/lib/pkgconfig/zlib.pc
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h

五、安裝nginx

    獲取nginx,在http://nginx.org/en/download.html上可以獲取當前最新的版本

    nginx-1.4.6.tar.gz     解壓: tar -zxvf nginx-1.4.6.tar.gz

    進入解壓縮目錄,執行./configure

     make & make install

root@ubuntu:/usr/local/nginx-1.4.6# make install
make -f objs/Makefile install
make[1]: Entering directory `/usr/local/nginx-1.4.6'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin'                 || mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx'                 || mv '/usr/local/nginx/sbin/nginx'                     '/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf'                 || mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types'              || cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params'          || cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params          '/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf'            || cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params'            || cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params            '/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params'             || cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params             '/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf'              || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs'                 || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' ||              mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html'                 || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' ||              mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/usr/local/nginx-1.4.6'

若安裝時找不到上述依賴模塊,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依賴的模塊目錄。如已安裝過,此處的路徑為安裝目錄;若未安裝,則此路徑為編譯安裝包路徑,nginx將執行模塊的默認編譯安裝。

修改配置文件:

編輯/usr/local/nginx/conf下的nginx.conf文件,修改listen端口和server_name(即IP)

    

  

六、驗證nginx是否安裝成功

     將/usr/local/nginx/sbin設置到PATH中,在/etc/profile中的PATH中添加/usr/local/nginx/sbin

      以后使用nginx的時候就直接輸入   nginx

   由於是root用戶編譯安裝的

   root用戶下啟動nginx    root@ubuntu:/usr/local/nginx/sbin# /usr/local/nginx/sbin/nginx   #輸入后,如果無反應 則正確啟動,如需確定是否啟動,可使用

   netstat  -anp|grep 8181  

   

# netstat -anp |grep 8181
tcp        0      0 0.0.0.0:8181            0.0.0.0:*               LISTEN      46240/nginx

 

 

 

   在瀏覽器輸入nginx服務器所在IP和端口

  

-----------------------

參考文檔:

http://www.openssl.org/source/

http://www.pcre.org/

http://www.zlib.net/

http://www.cnblogs.com/skynet/p/4146083.html

 

----------------------------

http://www.cnblogs.com/yecao8888/articles/5316044.htmlnginx配置參考:

安裝nginx

$ cd /usr/local/
$ wget http://nginx.org/download/nginx-1.8.0.tar.gz $ tar -zxvf nginx-1.8.0.tar.gz $ cd nginx-1.8.0 $ ./configure --prefix=/usr/local/nginx 
$ make #這里經常出現這樣的提示 make[1]:leaving directory '/usr/local/nginx-1.8.0
#不用理睬 就可以
$ make install

# 在--prefix后面接以下命令:

================================================================================================================================
--prefix=/usr/local/nginx ==>安裝部署后的根目錄,默認為/usr/local/nginx
--conf-path=/etc/nginx/nginx/nginx.conf ==>配置文件的放置路徑,默認<prefix>/conf/nginx.conf
--user=nginx ==>指定worker進程運行時所屬的用戶
--group=nginx ==>指定worker進程運行是所屬的組
--error-log-path=/var/log/nginx/errpr.log ==>error日志放置位置
--http-log-path=/var/log/nginx/access.log ==>access日志放置的位置
--pid-path=/var/run/nginx/nginx.pid ==>pid文件的存放路徑;默認<prefix>/logs/nginx.pid
--lock-path=/var/lock/nginx.lock ==>lock文件的放置路徑;默認<prefix>/logs/nginx.lock

--with-http_ssl_module ==>提供HTTPS服務;該模塊的安裝依賴於OpenSSL開源軟件
--with-http_stub_status_module ==>能夠獲取Nginx自上次啟動以來的工作狀態
--with-http_gzip_static_module ==> 如果采用gzip 模塊把一些文檔進行gzip 格式壓縮后再返回給客戶端,那么對同一個文件每次都會重新壓縮,這是比較消耗服務器CPU 資源的. gzip static 模塊可以在做gzip 壓縮前,先查看相同位置是否有已經做過gzip 壓縮的.gz 文件,如果有,就直接返回。這樣就可以預先在服務器上做好文檔的壓縮,給CPU 減負
--wiht-http_flv_modle ==>可以在向客戶端返回響應肘,對FLV 格式的視頻文件在header 頭做一些處理,使得客戶端可以觀看、拖動FLV 視頻
--with-http_mp4_module ==>使客戶端可以觀看、拖動MP4 視頻
--http-client-body-temp-path=/var/tmp/nginx/client ==>set path to store http client request body temporary files
--http-proxy-temp-path=/var/tmp/nginx/proxy ==>Nginx 作為HTTP 反向代理服務器時,上游服務器產生的HTTP 包體在需要臨時存放到磁盤文件時,這樣的臨時文件將放到該路徑下;默認<prefix>/proxy _temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi ==>Fastcgi 所使用臨時文件的放置目;默認<prefix>/fastcgi_temp
================================================================================================================================

關閉iptables
service iptables stop
chkconfig iptables stop

 

關閉selinux
setenforce 0
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM