Linux安裝nginx
序言
由於測試環境的nginx是已經搭建完成的,把搭建完成的nginx打包後傳到生產的主機上,在sbin目錄下測試nginx,就會報錯找不到路徑,所以我決定自己重新安裝,於是經過不斷的踩坑和請教,誕生了這篇文章。
一、下載依賴包
nginx:http://nginx.org/en/download.html (版本:nginx-1.16.1 tar.gz)
pcre:https://sourceforge.net/projects/pcre/files/pcre/8.41/(版本:pcre-8.41.tar.gz)
zlib:http://www.zlib.net/(版本:zlib-1.2.11.tar.gz)
oppenssl:https://www.openssl.org/source/(版本:openssl-1.1.1g.tar.gz)
下載說明
我之所以沒有在生產中用yum或wget,是由於用不了,所以只能下載到本地後傳到生產中。
1、下載zlib的位置:
2、下載openssl:
二、解壓
tar -zxvf nginx-1.16.1.tar.gz
tar -zxvf openssl-1.1.1g.tar.gz
tar -zxvf pcre-8.41.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
三、安裝nginx
1、進入解壓後的nginx的目錄
cd nginx-1.16.1
2、創建安裝目錄
由於我是安裝在普通用戶下的,所以需要創建安裝目錄。
建議:最好是安裝在普通目錄,
因爲:我們這邊的規定是:所有生產的nginx都必需在普通用戶下編譯和啓停。
mkdir installs
3、編譯nginx的安裝目錄
./configure --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs --with-pcre=../pcre-8.41 --with-openssl=../openssl-1.1.1g --with-zlib=../zlib-1.2.11
4、安裝nginx
make && make install
四、修改配置文件
cp nginx.conf nginx.conf.bak.fanhf.202006021600.orig
vim nginx.conf
先備份原來的,再將端口號80修改爲8081
修改後的部分配置如下:
server {
listen 8081;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
nginx.conf只修改了端口號,其他的不曾做任何修改!
五、查看版本和檢測
1、查看版本
cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx -V
顯示:
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs --with-pcre=../pcre-8.41 --with-openssl=../openssl-1.1.1g --with-zlib=../zlib-1.2.11
2、檢測
./nginx -t
顯示:
nginx: the configuration file /home/nginxsrv/nginx/nginx-1.16.1/installs/conf/nginx.conf syntax is ok
nginx: configuration file /home/nginxsrv/nginx/nginx-1.16.1/installs/conf/nginx.conf test is successful
六、啓動nginx
cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx
查看啓動情況:
七、遇到的坑
1、nginx的版本
我原本在測試環境用的是nginx-1.9.9的版本,而且是沒有問題的,但是同事說還是用1.16.1的版本,比較穩定,所以就改成了1.16.1。
2、下載依賴包
由於下載的prce是最新版本的pcre2-10.33.tar.gz,而不是pcre-8.41.tar.gz,導致在nginx的解壓目錄下執行:make && make install 的時候報錯:
src/core/ngx_regex.h:15:18: fatal error:pcre.h No such file or directory
於是查了一下,參考了這篇文章說是要把pcre的版本降低,於是就是改爲pcre-8.41.tar.gz,解壓後,重新編譯和安裝,就可以了。
3、編譯nginx
在第一次編譯nginx的時候,
編譯指令:
./configure --prefix=/home/nginxsrv/nginx/nginx-1.16.1/installs
報錯如下:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
查了之後說是少依賴包,於是一步一步查,一步一步下載需要的3個依賴包,然後就想着把這3個依賴包都編譯和安裝,但是反覆嘗試了之後依舊不行,刪了安,安了刪,甚至在root裏面也試了,都無果。於是問一位大神,他說3個依賴包不需要編譯和安裝,直接在編譯nginx的時候指定3個依賴包的路徑就可以,這才安裝成功。
八、補充nginx的相關命令
1、停止nginx
cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx -s stop
2、nginx重新加載
cd /home/nginxsrv/nginx/nginx-1.16.1/installs/sbin
./nginx –s reload
至此,nginx的安裝和配置就完成了,關於nginx的配置還有其他的一些內容,我這裏就不贅述了,網上有很多資料,可自行查找和學習。
與君共勉!!!