Red Hat7.4離線安裝nginx(非root用戶)啓動

Red Hat7.4離線安裝nginx(非root用戶啓動)

01、環境介紹

nginx下載地址https://nginx.org
系統版本:redhat 7.4
nginx版本:1.17
參考文章https://www.liangzl.com/get-article-detail-146620.html

02、環境準備

    首先配置好yum源,我使用的是系統自帶的yum安裝的相關依賴包,文件名取的是6.5查實際是7.4的ISO文件鏡像。

[root@xcxcc1 yum.repos.d]# ls -l /soft/rhel*
-rw-r--r-- 1 root root 4059037696 1121 2018 /soft/rhel-server-7.4-x86_64-dvd.iso
[root@xcxcc1 yum.repos.d]#mount -o loop /sof/rhel-server-7.4-x86_64-dvd.iso /soft/rhel6.5
[root@xcxcc1 yum.repos.d]#
[root@xcxcc1 yum.repos.d]# more /etc/yum.repos.d/rhel6.5.repo 
[rhel6.5]
name=rhel6.5 source
baseurl=file:///soft/rhel6.5/
enabled=1
gpgcheck=1
gpgkey=file:///soft/rhel6.5/RPM-GPG-KEY-redhat-release
[root@xcxcc1 yum.repos.d]# yum clean all
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
正在清理軟件源: rhel6.5
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
[root@xcxcc1 yum.repos.d]# more /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.4 (Maipo)

2、需要的依賴包括:gcc、pcre、libstdc++、libstdc+±devel、gcc-c++、zlib,下載地址https://pkgs.org,選擇對應的系統版本下載。我當前是通過yum方式安裝的,先前已經配置好yum源了,直接通過yum安裝gcc gcc-c++

[root@xcxcc1 yum.repos.d]# yum install gcc gcc-c++
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
rhel6.5                                                                                                                                    | 4.1 kB  00:00:00     
(1/2): rhel6.5/group_gz                                                                                                                    | 137 kB  00:00:00     
(2/2): rhel6.5/primary_db                                                                                                                  | 4.0 MB  00:00:00     
軟件包 gcc-4.8.5-16.el7.x86_64 已安裝並且是最新版本
軟件包 gcc-c++-4.8.5-16.el7.x86_64 已安裝並且是最新版本
無須任何處理
[root@xcxcc1 yum.repos.d]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由軟件;請參看源代碼的版權聲明。本軟件沒有任何擔保;
包括沒有適銷性和某一專用目的下的適用性擔保。
[root@xcxcc1 yum.repos.d]# gcc-c++ --version
bash: gcc-c++: 未找到命令...
[root@xcxcc1 yum.repos.d]# g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由軟件;請參看源代碼的版權聲明。本軟件沒有任何擔保;
包括沒有適銷性和某一專用目的下的適用性擔保。

安裝其它相關依賴包

[root@xcxcc1 yum.repos.d]# rpm -qa |grep libstdc*
libstdc++-4.8.5-16.el7.x86_64
libstdc++-devel-4.8.5-16.el7.x86_64
[root@xcxcc1 yum.repos.d]# rpm -qa |grep pcre*
pcre2-10.23-2.el7.x86_64
pcre-8.32-17.el7.x86_64
[root@xcxcc1 yum.repos.d]# rpm -qa |grep zlib*
zlib-1.2.7-17.el7.x86_64
[root@xcxcc1 yum.repos.d]# yum install pcre-devel
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 pcre-devel.x86_64.0.8.32-17.el7 將被 安裝
--> 解決依賴關係完成

依賴關係解決

==================================================================================================================================================================
 Package                                 架構                                版本                                      源                                    大小
==================================================================================================================================================================
正在安裝:
 pcre-devel                              x86_64                              8.32-17.el7                               rhel6.5                              480 k

事務概要
==================================================================================================================================================================
安裝  1 軟件包

總下載量:480 k
安裝大小:1.4 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : pcre-devel-8.32-17.el7.x86_64                                                                                                                 1/1 
  驗證中      : pcre-devel-8.32-17.el7.x86_64                                                                                                                 1/1 

已安裝:
  pcre-devel.x86_64 0:8.32-17.el7                                                                                                                                 

完畢!
[root@xcxcc1 yum.repos.d]# yum install -y zlib-devel
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 zlib-devel.x86_64.0.1.2.7-17.el7 將被 安裝
--> 解決依賴關係完成

依賴關係解決

==================================================================================================================================================================
 Package                                 架構                                版本                                      源                                    大小
==================================================================================================================================================================
正在安裝:
 zlib-devel                              x86_64                              1.2.7-17.el7                              rhel6.5                               50 k

事務概要
==================================================================================================================================================================
安裝  1 軟件包

總下載量:50 k
安裝大小:132 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : zlib-devel-1.2.7-17.el7.x86_64                                                                                                                1/1 
  驗證中      : zlib-devel-1.2.7-17.el7.x86_64                                                                                                                1/1 

已安裝:
  zlib-devel.x86_64 0:1.2.7-17.el7                                                                                                                                

完畢!
[root@xcxcc1 yum.repos.d]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" gcc gcc-c++ libstdc++ libstdc++-devel pcre zlib pcre-devel zlib-devel
gcc-4.8.5.16.el7 (x86_64)
gcc-c++-4.8.5.16.el7 (x86_64)
libstdc++-4.8.5.16.el7 (x86_64)
libstdc++-devel-4.8.5.16.el7 (x86_64)
pcre-8.32.17.el7 (x86_64)
zlib-1.2.7.17.el7 (x86_64)
pcre-devel-8.32.17.el7 (x86_64)
zlib-devel-1.2.7.17.el7 (x86_64)

03、安裝配置

1、下載nginx包,http://nginx.org/en/download.html
在這裏插入圖片描述
2、通過sftp上傳服務器/soft目錄

# 將文件改爲czsbxcx用戶,便於有權限操作。
[root@xcxcc1 local]# chown -R czsbxcx:czsbxcx /soft/nginx-1.17.6.tar.gz
[root@xcxcc1 local]# su - czsbxcx
上一次登錄:三 1218 13:50:45 CST 201910.10.13.200pts/1 上
# 解壓
[czsbxcx@xcxcc1 soft]# tar -xvf nginx-1.17.6.tar.gz 
[czsbxcx@xcxcc1 soft]# cd nginx-1.17.6
[czsbxcx@xcxcc1 nginx-1.17.6]$  ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
#檢查安裝環境,是否符合
[czsbxcx@xcxcc1 nginx-1.17.6]$ ./configure --prefix=/home/czsbxcx/u01/nginx --user=czsbxcx --group=czsbxcx --with-http_ssl_module 
......
.......
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for sysconf(_SC_LEVEL1_DCACHE_LINESIZE) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for OpenSSL library ... not found
checking for OpenSSL library in /usr/local/ ... not found
checking for OpenSSL library in /usr/pkg/ ... not found
checking for OpenSSL library in /opt/local/ ... not found

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

3、發現報錯檢查ssl模塊失敗,檢查是否安裝openssl,發現少了一個openssl-devel沒有安裝,通過yum進行安裝。

[czsbxcx@xcxcc1 nginx-1.17.6]$ rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" openssl openssl-devel
openssl-1.0.2k.8.el7 (x86_64)
未安裝軟件包 openssl-devel 
[czsbxcx@xcxcc1 nginx-1.17.6]$ yum install -y openssl-deve
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
您需要 root 權限執行此命令。
[czsbxcx@xcxcc1 nginx-1.17.6]$ exit
登出
[root@xcxcc1 local]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" openssl openssl-devel
openssl-1.0.2k.8.el7 (x86_64)
未安裝軟件包 openssl-devel 
[root@xcxcc1 local]# yum install -y openssl-devel
已加載插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
rhel6.5                                                                                                                                    | 4.1 kB  00:00:00     
(1/2): rhel6.5/group_gz                                                                                                                    | 137 kB  00:00:00     
(2/2): rhel6.5/primary_db                                                                                                                  | 4.0 MB  00:00:00     
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 openssl-devel.x86_64.1.1.0.2k-8.el7 將被 安裝
--> 正在處理依賴關係 krb5-devel(x86-64),它被軟件包 1:openssl-devel-1.0.2k-8.el7.x86_64 需要
--> 正在檢查事務
---> 軟件包 krb5-devel.x86_64.0.1.15.1-8.el7 將被 安裝
--> 正在處理依賴關係 libkadm5(x86-64) = 1.15.1-8.el7,它被軟件包 krb5-devel-1.15.1-8.el7.x86_64 需要
--> 正在處理依賴關係 keyutils-libs-devel,它被軟件包 krb5-devel-1.15.1-8.el7.x86_64 需要
--> 正在處理依賴關係 libcom_err-devel,它被軟件包 krb5-devel-1.15.1-8.el7.x86_64 需要
--> 正在處理依賴關係 libselinux-devel,它被軟件包 krb5-devel-1.15.1-8.el7.x86_64 需要
--> 正在處理依賴關係 libverto-devel,它被軟件包 krb5-devel-1.15.1-8.el7.x86_64 需要
--> 正在檢查事務
---> 軟件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 將被 安裝
---> 軟件包 libcom_err-devel.x86_64.0.1.42.9-10.el7 將被 安裝
---> 軟件包 libkadm5.x86_64.0.1.15.1-8.el7 將被 安裝
---> 軟件包 libselinux-devel.x86_64.0.2.5-11.el7 將被 安裝
--> 正在處理依賴關係 libsepol-devel(x86-64) >= 2.5-6,它被軟件包 libselinux-devel-2.5-11.el7.x86_64 需要
--> 正在處理依賴關係 pkgconfig(libsepol),它被軟件包 libselinux-devel-2.5-11.el7.x86_64 需要
---> 軟件包 libverto-devel.x86_64.0.0.2.5-4.el7 將被 安裝
--> 正在檢查事務
---> 軟件包 libsepol-devel.x86_64.0.2.5-6.el7 將被 安裝
--> 解決依賴關係完成

依賴關係解決

==================================================================================================================================================================
 Package                                       架構                             版本                                      源                                 大小
==================================================================================================================================================================
正在安裝:
 openssl-devel                                 x86_64                           1:1.0.2k-8.el7                            rhel6.5                           1.5 M
爲依賴而安裝:
 keyutils-libs-devel                           x86_64                           1.5.8-3.el7                               rhel6.5                            37 k
 krb5-devel                                    x86_64                           1.15.1-8.el7                              rhel6.5                           267 k
 libcom_err-devel                              x86_64                           1.42.9-10.el7                             rhel6.5                            31 k
 libkadm5                                      x86_64                           1.15.1-8.el7                              rhel6.5                           174 k
 libselinux-devel                              x86_64                           2.5-11.el7                                rhel6.5                           186 k
 libsepol-devel                                x86_64                           2.5-6.el7                                 rhel6.5                            74 k
 libverto-devel                                x86_64                           0.2.5-4.el7                               rhel6.5                            12 k

事務概要
==================================================================================================================================================================
安裝  1 軟件包 (+7 依賴軟件包)

總下載量:2.3 M
安裝大小:4.4 M
Downloading packages:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
總計                                                                                                                               19 MB/s | 2.3 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : libkadm5-1.15.1-8.el7.x86_64                                                                                                                  1/8 
  正在安裝    : libsepol-devel-2.5-6.el7.x86_64                                                                                                               2/8 
  正在安裝    : libselinux-devel-2.5-11.el7.x86_64                                                                                                            3/8 
  正在安裝    : libcom_err-devel-1.42.9-10.el7.x86_64                                                                                                         4/8 
  正在安裝    : libverto-devel-0.2.5-4.el7.x86_64                                                                                                             5/8 
  正在安裝    : keyutils-libs-devel-1.5.8-3.el7.x86_64                                                                                                        6/8 
  正在安裝    : krb5-devel-1.15.1-8.el7.x86_64                                                                                                                7/8 
  正在安裝    : 1:openssl-devel-1.0.2k-8.el7.x86_64                                                                                                           8/8 
  驗證中      : keyutils-libs-devel-1.5.8-3.el7.x86_64                                                                                                        1/8 
  驗證中      : libverto-devel-0.2.5-4.el7.x86_64                                                                                                             2/8 
  驗證中      : libselinux-devel-2.5-11.el7.x86_64                                                                                                            3/8 
  驗證中      : krb5-devel-1.15.1-8.el7.x86_64                                                                                                                4/8 
  驗證中      : libcom_err-devel-1.42.9-10.el7.x86_64                                                                                                         5/8 
  驗證中      : libsepol-devel-2.5-6.el7.x86_64                                                                                                               6/8 
  驗證中      : 1:openssl-devel-1.0.2k-8.el7.x86_64                                                                                                           7/8 
  驗證中      : libkadm5-1.15.1-8.el7.x86_64                                                                                                                  8/8 

已安裝:
  openssl-devel.x86_64 1:1.0.2k-8.el7                                                                                                                             

作爲依賴被安裝:
  keyutils-libs-devel.x86_64 0:1.5.8-3.el7    krb5-devel.x86_64 0:1.15.1-8.el7     libcom_err-devel.x86_64 0:1.42.9-10.el7    libkadm5.x86_64 0:1.15.1-8.el7   
  libselinux-devel.x86_64 0:2.5-11.el7        libsepol-devel.x86_64 0:2.5-6.el7    libverto-devel.x86_64 0:0.2.5-4.el7       

完畢!
[root@xcxcc1 local]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" openssl openssl-devel
openssl-1.0.2k.8.el7 (x86_64)
openssl-devel-1.0.2k.8.el7 (x86_64)

4、重新進行編譯檢查,通過

[czsbxcx@xcxcc1 nginx-1.17.6]$ ./configure --prefix=/home/czsbxcx/u01/nginx --user=czsbxcx --group=czsbxcx --with-http_ssl_module

在這裏插入圖片描述
5、重新進行安裝

# 編譯
[czsbxcx@xcxcc1 nginx-1.17.6]$make
#安裝
[czsbxcx@xcxcc1 nginx-1.17.6]$ make install
#檢查安裝結果
[czsbxcx@xcxcc1 nginx]$ cd ~/u01/nginx/
[czsbxcx@xcxcc1 nginx]$ ls
conf  html  logs  sbin
[czsbxcx@xcxcc1 nginx]$ 
[czsbxcx@xcxcc1 nginx]$ sbin/nginx -t
nginx: the configuration file /home/czsbxcx/u01/nginx/conf/nginx.conf syntax is ok
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
nginx: configuration file /home/czsbxcx/u01/nginx/conf/nginx.conf test failed

6、檢查上面有兩個錯誤,一個是bind() to 0.0.0.0:80 failed (13: Permission denied)和配置文件錯誤。
1)針對第一個錯誤Permission denied,是因爲Linux只有root用戶可以使用1024以下的端口,啓動解決辦法:
a.用root權限啓動
b.將nginx.conf文件中的80端口改爲1024以上(我使用第二種辦法,修改默認端口爲8086)
2)第二個錯誤懷疑是第一個錯誤引起的,先修改完端口再重新驗證發現正常了。
在這裏插入圖片描述

[czsbxcx@xcxcc1 nginx]$ sbin/nginx -t
nginx: the configuration file /home/czsbxcx/u01/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/czsbxcx/u01/nginx/conf/nginx.conf test is successful

    關於./configure 參數詳解參考https://www.cnblogs.com/flashfish/p/11025961.html

7、啓動nginx

#查看版本
[czsbxcx@xcxcc1 sbin]$ ./nginx -v
nginx version: nginx/1.17.6
#啓動nginx
[czsbxcx@xcxcc1 sbin]$ ./nginx 
[czsbxcx@xcxcc1 sbin]$ ps -ef |grep nginx
czsbxcx   1756     1  0 16:05 ?        00:00:00 nginx: master process ./nginx
czsbxcx   1779  1756  0 16:05 ?        00:00:00 nginx: worker process
czsbxcx   1849 25594  0 16:05 pts/4    00:00:00 grep --color=auto nginx
[czsbxcx@xcxcc1 sbin]$ 

    瀏覽器訪問如:http://10.10.10.1:8086,能夠顯示nginx頁面即正常。
在這裏插入圖片描述

04、設置開機自啓動

    新增啓動文件:vim /usr/lib/systemd/system/nginx.service,7以前系統版本修改/etc/rc.local文件

#關閉nginx
[czsbxcx@xcxcc1 sbin]$ ./nginx -s quit 或者 ./nginx -s stop
[czsbxcx@xcxcc1 sbin]$exit
#新建服務文件
[root@xcxcc1 system]#cd /usr/lib/systemd/system
[root@xcxcc1 system]# vi more nginx.service 
[Unit]
Description=nginx
After=network.target

[Service]
User=czsbxcx
Group=czsbxcx
Type=forking
ExecStart=//home/czsbxcx/u01/nginx/sbin/nginx
ExecReload=/home/czsbxcx/u01/nginx/sbin/nginx -s reload
ExecStop=/home/czsbxcx/u01/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[root@xcxcc1 system]# 
#設置開機自啓動
[root@xcxcc1 system]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
#服務啓動nginx
[root@xcxcc1 system]# systemctl start nginx
[root@xcxcc1 system]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2019-12-18 17:00:28 CST; 6s ago
  Process: 13472 ExecStart=//home/czsbxcx/u01/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 13475 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13475 nginx: master process //home/czsbxcx/u01/nginx/sbin/nginx
           └─13476 nginx: worker process

1218 17:00:28 xcxcc1 systemd[1]: Starting nginx...
1218 17:00:28 xcxcc1 systemd[1]: Started nginx.
[root@xcxcc1 system]# ps -ef |grep nginx
czsbxcx  13475     1  0 17:00 ?        00:00:00 nginx: master process //home/czsbxcx/u01/nginx/sbin/nginx
czsbxcx  13476 13475  0 17:00 ?        00:00:00 nginx: worker process
root     13508  7962  0 17:00 pts/4    00:00:00 grep --color=auto nginx
[root@xcxcc1 system]# 

05、 nginx常用命令

nginx主要有如下4個目錄
…conf 配置文件
… html 網頁文件
…logs 日誌文件
…sbin 主要二進制程序

使用./sbin/nginx 命令啓動nginx
停止 Nginx

./sbin/nginx -s stop
./sbin/nginx -s quit

重載reload

./sbin/nginx -s reload

指定配置文件

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

常用命令

./nginx -h  # 顯示幫助信息
./nginx -v  # 顯示nginx的版本號
./nginx -V  # 顯示nginx的版本號和編譯信息
./nginx -t  # 檢查nginx配置文件的正確性
./nginx -t  # 檢查nginx配置文件的正確定及配置文件的詳細配置內容
./nginx -s  # 向主進程發送信號,如:./nginx -s reload 配置文件變化後重新加載配置文件並重啓nginx服務
./nginx -p  # 設置nginx的安裝路徑
./nginx -c  # 設置nginx配置文件的路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章