天天看點

CentOS6.9編譯安裝nginx1.4.7

1.系統安裝開發包組和zlib-devel,關閉iptables

[root@bogon ~]# yum groupinstall -y "Development Tools"
[root@bogon ~]# yum install -y zlib-devel
[root@bogon ~]# yum install -y openssl
[root@bogon ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:            

2.下載下傳nginx的源碼包到本地

[root@bogon ~]# ll nginx-1.4.7.tar.gz 
-rw-r--r--. 1 root root 769153 Jun  1  2017 nginx-1.4.7.tar.gz           

3.解壓nginx源碼包

[root@bogon ~]# tar -xf nginx-1.4.7.tar.gz           

4.進入解壓目錄

[root@bogon ~]# cd nginx-1.4.7           

5.開始編譯,生成makefile檔案

[root@bogon nginx-1.4.7]# ./configure --prefix=/usr\ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf\ --error-log-path=/var/log/nginx/error.log\ --http-log-path=/var/log/nginx/access.log\ --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock\ --user=nginx --group=nginx --with-http_flv_module\ --with-http_stub_status_module --with-http_gzip_static_module\ --http-client-body-temp-path=/var/tmp/nginx/client\ --http-proxy-temp-path=/var/tmp/nginx/proxy\ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi\ --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre\ --with-http_ssl_module\
.....
checking for socklen_t ... found
checking for in_addr_t ... found
checking for in_port_t ... found
checking for rlim_t ... found
checking for uintptr_t ... uintptr_t found
checking for system byte ordering ... little endian
checking for size_t size ... 8 bytes
checking for off_t size ... 8 bytes
checking for time_t size ... 8 bytes
checking for setproctitle() ... not found
checking for pread() ... found
checking for pwrite() ... found
checking for sys_nerr ... found
checking for localtime_r() ... found
checking for posix_memalign() ... found
checking for memalign() ... found
checking for mmap(MAP_ANON|MAP_SHARED) ... found
checking for mmap("/dev/zero", MAP_SHARED) ... found
checking for System V shared memory ... found
checking for POSIX semaphores ... not found
checking for POSIX semaphores in libpthread ... found
checking for struct msghdr.msg_control ... found
checking for ioctl(FIONBIO) ... found
checking for struct tm.tm_gmtoff ... found
checking for struct dirent.d_namlen ... not found
checking for struct dirent.d_type ... found
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE library ... found
checking for PCRE JIT support ... not found
checking for OpenSSL library ... found
checking for zlib library ... found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

  nginx path prefix: "/usr"
  nginx binary file: "/usr/sbin/nginx"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/var/run/nginx/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/tmp/nginx/client"
  nginx http proxy temporary files: "/var/tmp/nginx/proxy"
  nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/"
  nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi"
  nginx http scgi temporary files: "/var/tmp/nginx/scgi"           

6.開始安裝nginx

[root@bogon nginx-1.4.7]# make && make install
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-1.4.7'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/nginx.o \
        src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_log.o \
        src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_palloc.o \
        src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_array.o \
        src/core/ngx_array.c

....
make[1]: Leaving directory `/root/nginx-1.4.7'
make -f objs/Makefile manpage
make[1]: Entering directory `/root/nginx-1.4.7'
sed -e "s|%%PREFIX%%|/usr|" \
        -e "s|%%PID_PATH%%|/var/run/nginx/nginx.pid|" \
        -e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \
        -e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \
        < man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/root/nginx-1.4.7'
make -f objs/Makefile install
make[1]: Entering directory `/root/nginx-1.4.7'
test -d '/usr' || mkdir -p '/usr'
test -d '/usr/sbin'         || mkdir -p '/usr/sbin'
test ! -f '/usr/sbin/nginx'         || mv '/usr/sbin/nginx'             '/usr/sbin/nginx.old'
cp objs/nginx '/usr/sbin/nginx'
test -d '/etc/nginx'        || mkdir -p '/etc/nginx'
cp conf/koi-win '/etc/nginx'
cp conf/koi-utf '/etc/nginx'
cp conf/win-utf '/etc/nginx'
test -f '/etc/nginx/mime.types'         || cp conf/mime.types '/etc/nginx'
cp conf/mime.types '/etc/nginx/mime.types.default'
test -f '/etc/nginx/fastcgi_params'         || cp conf/fastcgi_params '/etc/nginx'
cp conf/fastcgi_params      '/etc/nginx/fastcgi_params.default'
test -f '/etc/nginx/fastcgi.conf'       || cp conf/fastcgi.conf '/etc/nginx'
cp conf/fastcgi.conf '/etc/nginx/fastcgi.conf.default'
test -f '/etc/nginx/uwsgi_params'       || cp conf/uwsgi_params '/etc/nginx'
cp conf/uwsgi_params        '/etc/nginx/uwsgi_params.default'
test -f '/etc/nginx/scgi_params'        || cp conf/scgi_params '/etc/nginx'
cp conf/scgi_params         '/etc/nginx/scgi_params.default'
test -f '/etc/nginx/nginx.conf'         || cp conf/nginx.conf '/etc/nginx/nginx.conf'
cp conf/nginx.conf '/etc/nginx/nginx.conf.default'
test -d '/var/run/nginx'        || mkdir -p '/var/run/nginx'
test -d '/var/log/nginx' ||         mkdir -p '/var/log/nginx'
test -d '/usr/html'         || cp -R html '/usr'
test -d '/var/log/nginx' ||         mkdir -p '/var/log/nginx'
make[1]: Leaving directory `/root/nginx-1.4.7'           

7.測試nginx的配置文法

#檢視nginx的幫助
[root@bogon nginx-1.4.7]# /usr/sbin/nginx -h
nginx version: nginx/1.4.7
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file
#測試配置檔案的文法
[root@bogon nginx-1.4.7]# /usr/sbin/nginx -t
#顯示文法正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#顯示系統上沒有nginx這個使用者
nginx: [emerg] getpwnam("nginx") failed
#配置檔案測試失敗
nginx: configuration file /etc/nginx/nginx.conf test failed           

8.添加nginx這個系統使用者,然後測試配置檔案文法

#添加nginx這個系統使用者
[root@bogon nginx-1.4.7]# useradd -r nginx
#測試配置檔案文法
[root@bogon nginx-1.4.7]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#顯示/var/tmp/nginx這個臨時目錄不存在
nginx: [emerg] mkdir() "/var/tmp/nginx/client" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed           

9.建立nginx的臨時目錄,然後測試配置檔案的文法

#建立nginx臨時目錄
[root@bogon nginx-1.4.7]# mkdir /var/tmp/nginx
[root@bogon nginx-1.4.7]# /usr/sbin/nginx -t
#顯示nginx配置檔案文法正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#測試nginx配置檔案成功
nginx: configuration file /etc/nginx/nginx.conf test is successful           

10.啟動nginx

#啟動nginx
[root@bogon nginx-1.4.7]#  /usr/sbin/nginx
#檢視是否啟動成功
[root@bogon nginx-1.4.7]# ss -tnl | grep 80
LISTEN     0      128                       *:80                       *:*               

11.檢視系統IP位址,打開nginx的本地網頁

[root@bogon ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9C:2B:A5  
          inet addr:192.168.16.87  Bcast:192.168.16.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9c:2ba5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1648500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2193 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1606718906 (1.4 GiB)  TX bytes:176876 (172.7 KiB)           
CentOS6.9編譯安裝nginx1.4.7

繼續閱讀