Linux 系統 nginx 原始碼編譯安裝

2021-10-06 13:13:52 字數 3397 閱讀 8612

nginx版本 :nginx-1.18.0

操作實施環境 : ubuntu 16.04.6 lts

suse linux enterprise server 12 sp4  (x86_64)

注:因為是原始碼安裝,作業系統事先安裝好gcc編譯環境和所需的庫,如果可以聯網可執行下面命令安裝

apt-get install build-essential libtool gcc automake autoconf make
此次nginx的上傳目錄為 /opt/

1.解壓nginx-1.18.0.tar.gz

tar zxvf nginx-1.18.0.tar.gz
2. 進入到剛解壓的目錄

linux:/opt # cd nginx-1.18.0/

linux:/opt/nginx-1.18.0 # pwd

/opt/nginx-1.18.0

linux:/opt/nginx-1.18.0 # ls

auto changes changes.ru conf configure contrib html license makefile man objs readme src

3.編譯

./configure --prefix=/usr/local/nginx

make

make install

4.nginx 服務註冊

groupadd nginx   //新增使用者組

useradd nginx -g nginx -s /sbin/nologin //新增nginx啟動使用者

增加 /etc/systemd/system/nginx.service檔案,檔案內容如下

[unit]

description=nginx - high performance web server

after=network.target remote-fs.target nss-lookup.target

[service]

type=forking

pidfile=/usr/local/nginx/logs/nginx.pid

execstartpre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

execstart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

execreload=/usr/local/nginx/sbin/nginx -s reload

execstop=/usr/local/nginx/sbin/nginx -s stop

privatetmp=true

user=nginx

group=nginx

[install]

wantedby=multi-user.target

5.nginx服務埠更改

nginx預設埠為80,只用root使用者才能使用1024以下埠,現在nginx啟動使用者為nginx,所以需要更改埠值大於1024

vi /usr/local/nginx/conf/nginx.conf
6.nginx目錄所屬使用者更改

chown -r nginx:nginx /usr/local/nginx
7.啟動服務

systemctl start nginx
用瀏覽器訪問 http://ip:埠  ,例如我的ip是192.168.101.126  埠值為  8054  則為如果出現以下頁面則安裝成功

1.執行./configure --prefix=/usr/lcoal/nginx 後出現下圖錯誤

是因為nginx依賴 pcre,此時需要安裝pcre

tar -zxvf pcre-8.40.tar.gz

cd pcre-8.40.tar.gz

./configure

make && make install

2.服務啟動失敗

開啟系統日誌檢視具體出錯資訊

tail -n 500 /var/log/message  或者  /var/log/syslog   不同作業系統  系統日誌檔案略有差異  

從錯誤資訊看出是缺少libpcre.so.0 ,執行以下命令檢視它到底是從什麼位置查詢libpcre.so.0

linux:/usr/local # ldd $(which /usr/local/nginx/sbin/nginx)

linux-vdso.so.1 (0x00007ffd61bf9000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007f64d1b21000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f64d1904000)

libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f64d16c9000)

libpcre.so.0 => not found

libz.so.1 => /lib64/libz.so.1 (0x00007f64d14b2000)

libc.so.6 => /lib64/libc.so.6 (0x00007f64d110d000)

/lib64/ld-linux-x86-64.so.2 (0x00007f64d1d25000)

從輸出資訊中可以看出它是從 /lib64/ 目錄下查詢檔案,此時我們就需要在系統中找到libpcre.so.0的實際位置並做乙個軟體到/lib64/目錄,libpcre.so.0的位置一般為 /usr/lcoal/lib/libpcre.so.0

ln -s /usr/local/lib/libpcre.so.0  /lib64/libpcre.so.0

Nginx原始碼安裝 Linux

wget2.解壓安裝包 tar xvf nginx 1.14.2.tar.gz3.編譯 cd nginx 1.14.2 configure prefix usr local nginx user www group www with http stub status module with http...

linux下 原始碼安裝nginx

inux系統為centos 64位 第二步 解壓 tar zxvf nginx 1.5.9.tar.gz mv到 usr local nginx目錄下 第三步 設定一下配置資訊 configure prefix usr local nginx 或者不執行此步,直接預設配置 第四步 make 編譯 m...

linux下Nginx原始碼安裝

cd nignx wget 2 原始碼解壓到 usr src目錄 tar xzvf nginx 1.14.2.tar.gz 3 安裝依賴 yum y install gcc pcre pcre devel perl extutils embed zlib zlib devel openssl ope...