(转)linux上nginx源码编译安装
親測(cè)有效;
轉(zhuǎn): ?https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797
nginx服務(wù)器詳細(xì)安裝過程(使用yum 和 源碼包兩種安裝方式,并說明其區(qū)別)
正在上傳…重新上傳取消?fuyi501發(fā)布于?2016-10-10
網(wǎng)上看別人寫的?nginx?服務(wù)器配置 ,有的是源碼包安裝的,有的時(shí)?yum?安裝的。如果是新手,可能會(huì)有疑問,這兩種安裝方式有什么區(qū)別?我應(yīng)該使用哪種方式?系統(tǒng)里可以兩個(gè)都安裝可以嗎?怎么卸載?等等問題,那么在這里,我做下總結(jié),詳細(xì)介紹下這兩種方式。
yum 和 源碼包 安裝的 區(qū)別
這里先說明下?yum?和?源碼包?安裝的 區(qū)別:
yum?安裝是在線安裝,好處是:安裝方式簡(jiǎn)單,不易出錯(cuò);
源碼包?安裝是先將?nginx?的源碼下載下來,在自己的系統(tǒng)里編譯生成可執(zhí)行文件,然后執(zhí)行,好處是:因?yàn)槭窃谧约旱南到y(tǒng)上編譯的,更符合自己系統(tǒng)的性能,也就是說在自己的系統(tǒng)上執(zhí)行?nginx?服務(wù)性能效率更好。
安裝路徑不同
他們之間最大的區(qū)別是 :安裝位置不同。
yum?在線安裝會(huì)將?nginx?的安裝文件放在系統(tǒng)的不同位置,可以通過命令?rpm -ql nginx?來查看安裝路徑,如下所示:
? ~ rpm -ql nginx /etc/logrotate.d/nginx /etc/nginx /etc/nginx/conf.d /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/ssl.conf /etc/nginx/conf.d/virtual.conf /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.default /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types /etc/nginx/mime.types.default /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default /etc/nginx/scgi_params /etc/nginx/scgi_params.default /etc/nginx/uwsgi_params /etc/nginx/uwsgi_params.default /etc/nginx/win-utf /etc/rc.d/init.d/nginx /etc/sysconfig/nginx /usr/lib/perl5/vendor_perl/auto/nginx /usr/lib/perl5/vendor_perl/auto/nginx/nginx.so /usr/lib/perl5/vendor_perl/nginx.pm /usr/sbin/nginx /usr/share/doc/nginx-1.0.15 /usr/share/doc/nginx-1.0.15/CHANGES /usr/share/doc/nginx-1.0.15/LICENSE /usr/share/doc/nginx-1.0.15/README /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz /usr/share/nginx/html/404.html /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.html /usr/share/nginx/html/nginx-logo.png /usr/share/nginx/html/poweredby.png /usr/share/vim/vimfiles/ftdetect/nginx.vim /usr/share/vim/vimfiles/indent/nginx.vim /usr/share/vim/vimfiles/syntax/nginx.vim /var/lib/nginx /var/lib/nginx/tmp /var/log/nginx卸載的時(shí)候,只能通過 命令來卸載,因?yàn)槲覀儾豢赡?將這些文件自己手動(dòng)刪除,可以通過命令?rpm -e nginx?來卸載,這個(gè)命令一般不會(huì)報(bào)錯(cuò),因?yàn)?nginx?不與其他的包有依賴關(guān)系,如果提示關(guān)于 依賴包的問題 ,可以嘗試?rpm -e --nodeps nginx?來卸載,這個(gè)命令相當(dāng)于強(qiáng)制卸載,不考慮依賴問題。
源碼包?安裝他的所有文件(包括配置文件,庫文件,資源文件等)都在同一個(gè)目錄下,我們想卸載的時(shí)候,直接將這個(gè)文件刪除就可以,不會(huì)有任何垃圾文件存在。
通過源碼包編譯安裝的軟件,通常都放在?/usr/local/包名?路徑下。
啟動(dòng)方式不同
yum?安裝?nginx,我們可以通過 系統(tǒng)服務(wù)命令?service?來啟動(dòng)或停止
service nginx start #啟動(dòng) nginx 服務(wù)service nginx stop #停止 nginx 服務(wù)service nginx restart #重啟 nginx 服務(wù)源碼包?安裝?nginx?啟動(dòng)的時(shí)候不能使用?service?來啟動(dòng),需要執(zhí)行?nginx?安裝目錄下的?sbin?目錄下的?nginx?可執(zhí)行程序才行,如下(我的?nginx?安裝在?/usr/local/webserver/?目錄下)
? ~ /usr/local/webserver/nginx/sbin/nginx #啟動(dòng) nginx 服務(wù) ? ~ /usr/local/webserver/nginx/sbin/nginx -s stop #停止 nginx 服務(wù)或者 直接進(jìn)入安裝目錄 ,執(zhí)行?./nginx?也可以,這兩種方式其實(shí)是一樣的,.?表示當(dāng)前目錄
? ~ cd /usr/local/webserver/nginx/sbin ? sbin ls nginx ? sbin ./nginx #啟動(dòng) nginx 服務(wù) ? sbin ./nginx -s stop #停止 nginx 服務(wù)注意:在自己的系統(tǒng)中只用選擇一種安裝方式即可,yum 安裝的 nginx 版本可能不是最新的,可以通過 源碼包 安裝最新的,但系統(tǒng)中只要一種就可以,如果你想安裝兩個(gè)安裝也可以,但是他們監(jiān)聽的端口都是 80 端口,每次只能啟動(dòng)一個(gè)
好,先講了區(qū)別,下面來看一下安裝方式
yum 安裝 nginx
安裝
使用?yum?安裝是在線安裝,直接使用命令?yum -y install nginx?安裝即可
? ~ yum -y install nginx 已加載插件:fastestmirror, security 設(shè)置安裝進(jìn)程 Loading mirror speeds from cached hostfile 解決依賴關(guān)系 --> 執(zhí)行事務(wù)檢查 ---> Package nginx.i686 0:1.0.15-12.el6 will be 安裝 --> 完成依賴關(guān)系計(jì)算依賴關(guān)系解決========================================================================================================================================軟件包 架構(gòu) 版本 倉庫 大小 ======================================================================================================================================== 正在安裝:nginx i686 1.0.15-12.el6 epel 410 k事務(wù)概要 ======================================================================================================================================== Install 1 Package(s)總下載量:410 k Installed size: 1.1 M 下載軟件包: nginx-1.0.15-12.el6.i686.rpm | 410 kB 00:00 運(yùn)行 rpm_check_debug 執(zhí)行事務(wù)測(cè)試 事務(wù)測(cè)試成功 執(zhí)行事務(wù) Warning: RPMDB altered outside of yum.正在安裝 : nginx-1.0.15-12.el6.i686 1/1 Verifying : nginx-1.0.15-12.el6.i686 1/1 已安裝:nginx.i686 0:1.0.15-12.el6 完畢!到這里就安裝完成了,是不是很簡(jiǎn)單。
啟動(dòng) nginx 服務(wù)
? ~ service nginx start Starting nginx: [ OK ]停止 nginx 服務(wù)
? ~ service nginx stop Stopping nginx: [ OK ]重啟 nginx 服務(wù)
? ~ service nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ]啟動(dòng)后 ,在瀏覽器中 輸入服務(wù)器的 ip 地址,就可以看到
到這里?yum?安裝?nginx?就完成了
源碼包 安裝 nginx(親測(cè)有效)
安裝編譯
我的系統(tǒng)?centos 6.7 32位,首先安裝缺少的依賴包:
yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel從?http://nginx.org/en/download....?下載穩(wěn)定版 nginx-1.10.1.tar.gz ,下載的壓縮文件 放在任意地方都可以,但是建議放在?/usr/local/src?或者?/root/?下,/usr/local/src?就是系統(tǒng)專門給用戶分配的放 源碼的目錄,/root/?是我們默認(rèn)操作的目錄,所以也可以放在這里。我就是下載放在?/root/?目錄下的。
下載可以通過命令獲取:
wget http://nginx.org/download/nginx-1.10.1.tar.gz解壓縮:
tar -zxvf nginx-1.10.1.tar.gz解壓縮后,可以看到?nginx-1.10.1?目錄,然后進(jìn)入這個(gè)目錄
? ~ ls anaconda-ks.cfg install.log install.log.syslog nginx-1.10.1 nginx-1.10.1.tar.gz ? ~ cd nginx-1.10.1在?nginx-1.10.1?目錄下執(zhí)行 配置 和 make 命令
? nginx-1.10.1 ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre? nginx-1.10.1 make && make install常用編譯選項(xiàng)說明
這段說明,參考自:https://segmentfault.com/a/11...
-
--prefix=PATH?: 指定?nginx?的安裝目錄。默認(rèn)?/usr/local/nginx,我的是?/usr/local/webserver/nginx
-
--conf-path=PATH?: 設(shè)置nginx.conf配置文件的路徑。nginx允許使用不同的配置文件啟動(dòng),通過命令行中的-c選項(xiàng)。默認(rèn)為conf/nginx.conf
-
--user=name?: 設(shè)置nginx工作進(jìn)程的用戶。安裝完成后,可以隨時(shí)在nginx.conf配置文件更改user指令。默認(rèn)的用戶名是nobody。--group=name類似
-
--with-pcre?: 設(shè)置PCRE庫的源碼路徑,如果已通過yum方式安裝,使用--with-pcre自動(dòng)找到庫文件。使用--with-pcre=PATH時(shí),需要從PCRE網(wǎng)站下載pcre庫的源碼(8.39)并解壓,指定?pcre?的源碼路徑 ,比如:--with-pcre=/root/pcre-8.39/。perl正則表達(dá)式使用在location指令和?ngx_http_rewrite_module模塊中。
-
--with-zlib=PATH?: 指定?zlib(版本1.1.3 - 1.2.5)的源碼解壓目錄。在默認(rèn)就啟用的網(wǎng)絡(luò)傳輸壓縮模塊ngx_http_gzip_module時(shí)需要使用zlib 。
-
--with-http_ssl_module?: 使用https協(xié)議模塊。默認(rèn)情況下,該模塊沒有被構(gòu)建。前提是openssl與openssl-devel已安裝
-
--with-http_stub_status_module?: 用來監(jiān)控?Nginx?的當(dāng)前狀態(tài)
-
--with-http_realip_module?: 通過這個(gè)模塊允許我們改變客戶端請(qǐng)求頭中客戶端IP地址值(例如X-Real-IP?或?X-Forwarded-For),意義在于能夠使得后臺(tái)服務(wù)器記錄原始客戶端的IP地址
-
--add-module=PATH?: 添加第三方外部模塊,如nginx-sticky-module-ng或緩存模塊。每次添加新的模塊都要重新編譯(Tengine可以在新加入module時(shí)無需重新編譯)
啟動(dòng) 停止 nginx
使用?源碼包?安裝?nginx?,啟動(dòng)時(shí)需要使用絕對(duì)路徑來執(zhí)行,如下:
? ~ /usr/local/webserver/nginx/sbin/nginx #啟動(dòng) nginx 服務(wù) ? ~ /usr/local/webserver/nginx/sbin/nginx -s stop #停止 nginx 服務(wù)啟動(dòng)?nginx?服務(wù)后,可以通過?ps -aux | grep nginx?查看進(jìn)程
? ~ /usr/local/webserver/nginx/sbin/nginx #啟動(dòng) nginx 服務(wù) ? ~ ps -aux | grep nginx Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ root 9628 0.0 0.1 15292 1500 ? Ss 11:17 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 9631 0.0 0.2 15448 2312 ? S 11:17 0:00 nginx: worker process root 13158 0.0 0.0 6048 788 pts/1 S+ 12:12 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn nginx啟動(dòng)后 ,在瀏覽器中 輸入服務(wù)器的 ip 地址,就可以看到
到這里?源碼包?安裝?nginx?就完成了
可以看出 兩個(gè)歡迎頁面是不同的,這個(gè)主要是版本不同的原因。
結(jié)語
這里講了 使用?yum?和?源碼包?安裝?nginx?的詳細(xì)過程,如果想了解?yum?和?源碼包?安裝軟件的其他詳細(xì)知識(shí),可以看我的另外一篇博文?《Linux 軟件安裝管理》。
本文中如有紕漏,或者你有什么問題,都可以提出來,謝謝~~
總結(jié)
以上是生活随笔為你收集整理的(转)linux上nginx源码编译安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑处理器排行榜天梯(电脑处理器排行榜天
- 下一篇: 如何获得即时编译器(JIT)的汇编代码(