/**
* 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.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