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