Centos7通過yum跟源碼編譯安裝Nginx


源碼編譯安裝

http://nginx.org/en/download.html

到官網下載,然后用XFTP上傳到root目錄

 

把文件解壓出來

tar -zxvf nginx-1.16.0.tar.gz

 

 然后用yum安裝依賴項

yum install gcc pcre-devel zlib-devel

如果沒裝以上相關的依賴,會在./configure過程中出現各種錯誤

下圖是沒裝gcc包的錯誤,我看網上要裝gcc-c++,但我發現我只安裝gcc也沒問題

  下圖是沒裝pcre-devel出現的錯誤

 

下圖是沒裝zlib-devel出現的錯誤

進入nginx-1.16.0目錄后,輸入命令./configure,這個命令會在目錄里生成Makefile文件

./configure

成功后會提示如下圖所示,在目錄也會生成Makefile跟objs目錄

 

再輸入make命令生成二進制文件,屏幕會出現一堆命令,最后如下圖所示

 

然后輸入make install,把相關文件拷貝到對應的目錄中,默認是/usr/local/nginx

make
make install

 你會發現這種安裝方法非常的綠色,好像跟沒安裝一樣,連服務都沒有,那只能自己動手創建服務了

cd /etc/systemd/system
vi nginx.service

將以下內容復制到nginx.service里保存退出,以下內容,我是從官方yum安裝后的service里面復制修改的

[UNIT]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

然后將nginx設置為開機啟動

systemctl enable nginx

你會發現現在無法啟動nginx,我也搞不懂為什么,不過我重啟后就正常了。

 

通過Yum安裝Nginx

這種方式是非常簡單方便,nginx官網上也有介紹

http://nginx.org/en/linux_packages.html#RHEL-CentOS

官方說明就是在/etc/yum.repo.d目錄下面創建一個nginx的yum源,然后就可以直接用yum install nginx安裝了,超級簡單,這種方式就直接幫你把服務、都安裝好了

cd /etc/yum.repo.d    #切換到yum安裝源文件目錄
vi nginx.repo    #創建一個安裝包源

 

把以下內容復制進去,保存退出

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

 

 

然后查看一下是否成功加載了這個安裝源

yum repolist

 

 

 現在就可以通過yum安裝nginx了

yum install nginx

安裝好后,直接用systemctl啟動nginx服務

systemctl enable nginx  #設置nginx為開機啟動
systemctl start nginx  #啟動nginx服務

剛裝好,發現啟動失敗了

 

 

不過我重啟下服務器,發現又能正常啟動了。。然后記得把防火牆關了 systemctl stop firewalld,輸入服務器ip,發現ok了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM