文章轉自:https://typecodes.com/web/centos7compilenginx.html
如果編譯出錯檢視:https://typecodes.com/web/solvenginxcompileerror.html
1 依賴函式庫配置,編譯並安裝Nginx1.9.0
先建立一個名為nginx且沒有登入權限的使用者和一個名為nginx的使用者群組,然後安裝nginx所需的依賴函式庫和依賴包,最後透過.configure安裝的詳細設定。另外,補錄一個pcre的tar包備份位址:https://dn-vfhky.qbox.me/libs/nginx/pcre-8.36.tar.gz,以及一個zlib的tar包備份位址:https://dn -vfhky.qbox.me/libs/nginx/zlib-1.2.8.tar.gz。
#######新nginx使用者和nginx群組
[root@typecodes ~]# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
####### yum安裝nginx必須的依賴函式庫
[root@typecodes ~]# yum -y install openssl openssl-devel libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed
#Ngin###.90Ngin##.90Ngin#.的tar包,然後解壓縮到伺服器上
[root@typecodes ~]# wget -c http://nginx.org/download/nginx-1.9.0.tar.gz
[root@typecodes ~]# tar -zxf nginx-1.9.0.tar.gz && cd nginx-1.9.0
#######下載pcre的tar包並解壓縮,以便支援Nginx的Rewrite功能
[root@typecodes nginx-1.9.0]# wget -c http://git.typecodes.com/libs/php/pcre-8.36.tar.gz && tar -zxf pcre-8.36.tar.gz
#######下載zlib的tar包並解壓縮,以便支援Nginx的Gzip壓縮功能
[root@typecodes nginx-1.9.0]# wget -c http://git.typecodes.com/libs/nginx/zlib-1.2.8.tar.gz
[root@ typecodes nginx-1.9.0]# tar -zxf zlib-1.2.8.tar.gz
#######新建Nginx1.9.0安裝時所需要的目錄
[root@typecodes nginx-1.9.0]# cd /var/tmp/ && mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}
[root@typecodes tmp]# mkdir -p /var/run/nginx && cd ~/nginx -1.9.0
準備工作做好後,就開始正式設定Nginx-1.9.0的安裝明細了。注意,在使用下面這條configure參數配置時,一定要先把反斜線「」後面新增的註解文字去掉! ! !
[root@typecodes nginx-1.9.0]# ./configure
--prefix=/usr/share/nginx [Nginx的sbin目錄]
--conf-path=/etc/nginx/nginx.conf [Nginx的設定檔]
--error-log-path=/var/log/nginx/error.log [Nginx的錯誤日誌-
-- -log-path=/var/log/nginx/access.log [Nginx的存取日誌]
--pid-path=/var/run/nginx/nginx.pid [Nginx的進程ID]
--lock-path [Nginx的進程ID]
--lock-path =/var/lock/nginx.lock
--user=nginx [Nginx所屬使用者使用者 ]
--with-http_ssl_module [Nginx的ssl模組]
--with-http_spdy_module [Nginx的Google spdy模組]
--with-http_dav_module
--with-http_flv_module
--with-http_realip_module
--with-http_addition_module
--with-http_xslt_N--module _o_with--o--o--o--o--o--o--o--o--o--mod
--with-http_secure_link_module
--with-http_gzip_static_module .36 [pcre的安裝目錄]
--with-zlib=zlib-1.2.8 [pcre的安裝目錄]
--with-debug
--with-mail
--with-mail_ssl_module
--http-client-body-temp-path=/var/tmp/nginx/client_body
--http-proxy-temp-path=/var/tmp/nginx/proxy
--http-fastcgi-temp-path =/var/tmp/nginx/fastcgi
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
--http-scgi-temp-path=/var/tmp/nginx/scgi
-- with-stream [Nginx1.9.0具中的stream模組]
--with-ld-opt="-Wl,-E" 選擇 即可
可能遇到問題:./configure: error: perl module ExtUtils::Embed is required
問題描述:缺少這個模組,需要yum安裝以下即可
解決方法:yum install perl perl-devel perl-ExtUtils-Embed
./configure --prefix=/usr/share/nginx --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_ssl_module --with-http_spdy_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_stub_status_//////////////////////////////////合本 -111111111111666 月_stub_sub; --with-http_random_index_module
--with-http_degradation_module --with-http_secure_link_module --with-http_gzip_static_module --with-http_perl_module --with-pcre=pcre-8.36 --with-zlib=zlib-1.2.8 --with-debug --with-file -aio --with-mail --with-mail_ssl_module --http-client-body-temp-path=/var/tmp/nginx/client_body
--http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp /nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-stream --with-ld-opt="-Wl,-E"
配置過程大概需要5分鐘左右
2 設定完後,就可以直接編譯安裝了
最後,直接使用執行這條指令[root@typecodes nginx-1.9.0]# make && make install進行安裝即可。
[root@typecodes nginx-1.9.0]# make && make install
3 設定Nginx1.9.0,使之正常工作
成功安裝Nginx1.9.0後,我們需要進行一些配置,包括開機啟動、SSL/HTTPS服務等。其中,Nginx服務控制腳本nginx請見文章《Nginx服務啟動、停止和重啟等操作的SHELL腳本》。
https://typecodes.com/web/nginxserviceoptshell.html
#######上傳Nginx服務控制腳本nginx,並賦予執行權限,刪除安裝包,新增Nginx服務到開機啟動
這一步驟可能會出現沒有nginx服務腳本,自行下載一個,或把下面的複製,然後檔案名稱為nginx
#檔案開始
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemin
#
# : - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/ng/ .conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
/config. /network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(name $name $name $name $ /usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $tfile
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
}
} configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVALe;
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
} &1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0$1 rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrehtry-restart)
rh_status
;; "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
#檔案結束
[root@typecodes ~]# mv ~/nginx / etc/init.d/nginx && chmod +x /etc/init.d/nginx
如果/etc/init.d/nginx存在,不要覆蓋,直接執行 chmod +x /etc/init.d/nginx
[root @typecodes ~]# rm -rf nginx-1.9.0*
[root@typecodes ~]# chkconfig --add nginx
[root@typecodes ~]# chkconfig nginx on
#######測試配置是否正常正常
root@typecodes ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is #新建Nginx進程日誌nginx.pid目錄,並啟動服務
加上這個mkdir就能夠兼容伺服器重啟這種情況了
[root@typecodes ~]# mkdir -p /var/run/nginx/
[root@typecodes ~]# service nginx start
以上就介紹了CentOS 71編譯安裝nginx,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。