系统环境:
Nginx Web:hostname:Web-Nginx-Server #IP:192.168.199.103/24 Centos 6.4 2.6.32-358.el6.x86_64
预装配置:
0 1 2 3 4 |
[root@Web-Nginx-Server ~]# useradd nginx -s /sbin/nologin -M [root@Web-Nginx-Server ~]# yum install vim -y [root@Web-Nginx-Server ~]# yum install gcc gcc-c++ -y [root@Web-Nginx-Server ~]# yum install wget -y [root@Web-Nginx-Server html]# yum install pcre*(yum后可以不编译pcre-8.33.tar.gz安装包) |
安装过程:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@Web-Nginx-Server ~]# mkdir -p /byrd/tools [root@Web-Nginx-Server ~]# mkdir /byrd/server [root@Web-Nginx-Server ~]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz [root@Web-Nginx-Server ~]# mv pcre-8.33.tar.gz /byrd/tools/ [root@Web-Nginx-Server tools]# tar zxvf pcre-8.33.tar.gz [root@Web-Nginx-Server tools]# cd pcre-8.33 [root@Web-Nginx-Server pcre-8.33]# ./configure [root@Web-Nginx-Server pcre-8.33]# echo $? 0 [root@Web-Nginx-Server pcre-8.33]# make && make install [root@Web-Nginx-Server pcre-8.33]# cd .. [root@Web-Nginx-Server tools]# wget http://nginx.org/download/nginx-1.6.0.tar.gz [root@Web-Nginx-Server tools]# tar zxf nginx-1.6.0.tar.gz [root@Web-Nginx-Server tools]# cd nginx-1.6.0 [root@Web-Nginx-Server nginx-1.6.0]# ./configure --user=nginx --group=nginx --prefix=/byrd/server/nginx-1.6.0 --with-http_stub_status_module --with-http_ssl_module [root@Web-Nginx-Server nginx-1.6.0]# make && make install [root@Web-Nginx-Server pcre-8.33]# echo $? 0 [root@Web-Nginx-Server nginx-1.6.0]# ln -s /byrd/server/nginx-1.6.0/ /usr/local/nginx [root@Web-Nginx-Server nginx-1.6.0]# cd /usr/local/nginx/ |
官方参数:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。 configure 支持下面的选项: --prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。 --sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。 --conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。 --pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。 --lock-path=<path> - nginx.lock文件的路径。 --error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。 --http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。 --user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。 --group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。 --builddir=DIR - 指定编译的目录 --with-rtsig_module - 启用 rtsig 模块 --with-select_module --without-select_module - Whether or not to enable the select module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure. //允许或不允许开启SELECT模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6+), rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与SELECT基本相 同,都是采用轮训方法) SELECT模式将是默认安装模式 --with-poll_module --without-poll_module - Whether or not to enable the poll module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure. --with-http_ssl_module - Enable ngx_http_ssl_module. Enables SSL support and the ability to handle HTTPS requests. Requires OpenSSL. On Debian, this is libssl-dev. //开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL,在DEBIAN上是libssl-dev --with-http_realip_module - 启用 ngx_http_realip_module --with-http_addition_module - 启用 ngx_http_addition_module --with-http_sub_module - 启用 ngx_http_sub_module --with-http_dav_module - 启用 ngx_http_dav_module --with-http_flv_module - 启用 ngx_http_flv_module --with-http_stub_status_module - 启用 "server status" 页 --without-http_charset_module - 禁用 ngx_http_charset_module --without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果启用,需要 zlib 。 --without-http_ssi_module - 禁用 ngx_http_ssi_module --without-http_userid_module - 禁用 ngx_http_userid_module --without-http_access_module - 禁用 ngx_http_access_module --without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module --without-http_autoindex_module - 禁用 ngx_http_autoindex_module --without-http_geo_module - 禁用 ngx_http_geo_module --without-http_map_module - 禁用 ngx_http_map_module --without-http_referer_module - 禁用 ngx_http_referer_module --without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果启用需要 PCRE 。 --without-http_proxy_module - 禁用 ngx_http_proxy_module --without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module --without-http_memcached_module - 禁用 ngx_http_memcached_module --without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module --without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module --without-http_browser_module - 禁用 ngx_http_browser_module --without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module --with-http_perl_module - 启用 ngx_http_perl_module --with-perl_modules_path=PATH - 指定 perl 模块的路径 --with-perl=PATH - 指定 perl 执行文件的路径 --http-log-path=PATH - Set path to the http access log --http-client-body-temp-path=PATH - Set path to the http client request body temporary files --http-proxy-temp-path=PATH - Set path to the http proxy temporary files --http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files --without-http - 禁用 HTTP server --with-mail - 启用 IMAP4/POP3/SMTP 代理模块 --with-mail_ssl_module - 启用 ngx_mail_ssl_module --with-cc=PATH - 指定 C 编译器的路径 --with-cpp=PATH - 指定 C 预处理器的路径 --with-cc-opt=OPTIONS - Additional parameters which will be added to the variable CFLAGS. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-cc-opt="-I /usr/local/include". If we are using select() and it is necessary to increase the number of file descriptors, then this also can be assigned here: --with-cc-opt="-D FD_SETSIZE=2048". --with-ld-opt=OPTIONS - Additional parameters passed to the linker. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-ld-opt="-L /usr/local/lib". --with-cpu-opt=CPU - 为特定的 CPU 编译,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64 --without-pcre - 禁止 PCRE 库的使用。同时也会禁止 HTTP rewrite 模块。在 "location" 配置指令中的正则表达式也需要 PCRE 。 --with-pcre=DIR - 指定 PCRE 库的源代码的路径。 --with-pcre-opt=OPTIONS - Set additional options for PCRE building. --with-md5=DIR - Set path to md5 library sources. --with-md5-opt=OPTIONS - Set additional options for md5 building. --with-md5-asm - Use md5 assembler sources. --with-sha1=DIR - Set path to sha1 library sources. --with-sha1-opt=OPTIONS - Set additional options for sha1 building. --with-sha1-asm - Use sha1 assembler sources. --with-zlib=DIR - Set path to zlib library sources. --with-zlib-opt=OPTIONS - Set additional options for zlib building. --with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro --with-openssl=DIR - Set path to OpenSSL library sources --with-openssl-opt=OPTIONS - Set additional options for OpenSSL building --with-debug - 启用调试日志 --add-module=PATH - Add in a third-party module found in directory PATH 在不同版本间,选项可能会有些许变化,请总是使用 ./configure --help 命令来检查一下当前的选项列表。 |
报错整理:
0 1 2 3 4 5 6 7 8 |
Q:configure: error: You need a C++ compiler for C++ support. A:[root@Web-Nginx-Server ~]# yum install gcc-c++ -y Q:./configure: error: SSL modules require the OpenSSL library. A:[root@Web-Nginx-Server nginx-1.6.0]# yum install openssl* Q:error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory A:[root@Web-Nginx-Server ~]# echo "/usr/local/lib" >>/etc/ld.so.conf [root@Web-Nginx-Server ~]# ldconfig Q: nginx:[emerg] getpwnam("nginx") failed A:[root@Web-Nginx-Server ~]# useradd nginx -s /sbin/nologin -M |
NGINX一键脚本:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#!/bin/sh #Compile and install NGINX BY:BYRD AT:2014-04-30 #This script for nginx1.4 nginx1.6 nginx1.7 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # Check if user is root if [ $(id -u) != "0" ]; then echo "Error: You must be root to run this script, please use root to install lnmp" exit 1 fi /usr/bin/clear echo "=========================================================================" echo "Compile and install NGINX BY:BYRD AT:2014-04-30" echo "=========================================================================" /bin/mkdir -p /byrd/tools /bin/mkdir /byrd/server /usr/sbin/useradd nginx -s /sbin/nologin -M /usr/bin/yum install vim gcc pcre* openssl* gcc-c++ wget tree lsof -y cd /byrd/tools /usr/bin/wget http://nginx.org/download/nginx-1.7.0.tar.gz && /bin/tar zxf nginx-1.7.0.tar.gz cd /byrd/tools/nginx-1.7.0 ./configure --user=nginx --group=nginx --prefix=/byrd/server/nginx-1.7.0 --with-http_stub_status_module --with-http_ssl_module && make && make install ln -s /byrd/server/nginx-1.7.0 /usr/local/nginx /usr/local/nginx/sbin/nginx /bin/netstat -tunlp | /bin/grep 80 if [ -s /sbin/iptables ]; then /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables-save fi echo "Checking..." if [ -s /usr/local/nginx ] && [ -s /usr/local/nginx/sbin/nginx ]; then echo "Nginx: OK" isnginx="ok" else echo "Error: /usr/local/nginx not found!!!Nginx install failed." fi #/bin/sed -i 's#COMMIT#-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT#g' /etc/sysconfig/iptables #/bin/echo "COMMIT" >>/etc/sysconfig/iptables #/etc/init.d/iptables restart |
申明:本文由BYRD原创(基于Centos6.4 X64、Pcre-8.33、Nginx-1.6.0),未经许可禁止转载!
官方参数:http://wiki.nginx.org/ChsInstallOptionsSourceByrd's Weblog-https://note.t4x.org/system/config-web-nginx/ SourceByrd's Weblog-https://note.t4x.org/system/config-web-nginx/
申明:除非注明Byrd's Blog内容均为原创,未经许可禁止转载!详情请阅读版权申明!
Trackbacks