---
# System prepended metadata

title: Nginx build in SE Linux with MobaXterm 2022-10-24
tags: [Web server, MobaXterm, 後端心得, Back end, Nginx]

---

# Nginx build in SE Linux with MobaXterm 2022-10-24  
###### tags: `Nginx` `MobaXterm` `Web server` `Back end` `後端心得`  

---

安裝 Nginx 之前先安裝以下套件   
Nginx 會用到   
 > yum -y install pcre-devel  gcc  zlib-devel  openssl-devel   lrzsz.x86_64 

使用指令在 Linux 虛擬機上比較好操作, 通常不會在虛擬機上裝太多壓縮檔   
**使用指令的話可以略過 2. ~ 6. 的步驟**

使用指令安裝 nginx   
> yum install nginx

對 bash 可進行設置   
> vi /etc/nginx/nginx.conf

nginx 開啟啟動以及自動啟動指令   
> systemctl start nginx
> systemctl enable nginx

----

會常用到的指令之一 ↓   

[linux 壓縮及解壓縮指令](https://blog.xuite.net/pclin31/twblog/142141892-Linux+%E5%A3%93%E7%B8%AE%E6%8C%87%E4%BB%A4+-+tar)   

---

有需要可以在 Nginx 官網下載 stable 壓縮檔   
http://nginx.org/

以下文章均參考 https://blog.csdn.net/qq_45273552/article/details/110084915  

所建立    

----

## 0. MobaXtern 教學   

可參考: [MobaXtern 教學](https://blog.csdn.net/xuanying_china/article/details/120080644?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166657756516800182788354%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166657756516800182788354&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-120080644-null-null.142^v59^control_1,201^v3^control_2&utm_term=mobaxterm&spm=1018.2226.3001.4187)   

----

## 1. 使用 SSH session to root   

假設有 Linux 虛擬機, 使用 SSH session, 並將 root@192.168.66.16 後, 使用 password 716T 登入   

----

## 2. 成功登入後, 假如是從 Nginx 官方網站下載安裝包   


將安裝包, nginx stable 的版本拖至 SSH browser(SFTP), 並使用指令 `ls` 查看目錄   

接著使用解壓縮命令解壓縮 nginx 安裝包 `tar -xvf nginx-1.22.1.tar.gz`   

由於直接安裝在 root 下, 因此會看到三個檔案:   

> anaconda-ks.cfg  nginx-1.22.1.tar.gz  niginx

---

## 3. 移動到 root 底下的 nginx 資料夾   

使用指令移動 `cd nginx`  

這時使用 `./configure` 會發現, 虛擬機下找不到 ==C compiler==   

![](https://i.imgur.com/gFqVWZH.png)   

這時候需要安裝 `gcc` 套件, 用 `cd -` 回到上層 `root@xxxxx` 並使用指令 `yum -y install gcc-c++` 安裝 `gcc`   


---   

## 4. 在參考該文章的狀況下, 會發現需要 PCRE library   

https://blog.csdn.net/qq_45273552/article/details/110084915   


完成後再次在 `root@xxxxx` 該層下, 使用指令 `./configure` 

會發現多了一行錯誤提示:   

```
./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.

```

用 `cd -` 回到上層 `root@xxxxx`, 一樣需要使用指令 `sudo yum install pcre-devel
` 安裝 PCRE library   

參考: https://www.cpming.top/p/nginx-http-rewrite-module-requires-pcre   

---

## 5. 完成後使用指令 `./configure` 再檢查一次   

使用 `cd nginx` 移動回 nginx 資料夾, 並且使用指令 `./configure` 再檢查一次   

![](https://i.imgur.com/oYs2rWz.png)   
發現缺少 http_gzip module   

用 `cd -` 回到上層 `root@xxxxx`, 一樣需要使用指令 `sudo yum install zlib-devel
` 安裝 http_gzip module   


使用 `cd nginx` 移動回 nginx 資料夾, 並且使用指令 `./configure` 再檢查一次   


參考: https://www.zhangbj.com/p/247.html   

---

## 6. 在參考該文章 使用 `make` 指令   

https://blog.csdn.net/qq_45273552/article/details/110084915   

使用 `make` 指令後會看到跑一大串安裝模組的程序, 這時候參考上面那篇文章會發現找不到 sbin, 這是因為我們把 nginx 安裝在 root 底下, 此時用 `nginx -v` 也看不到 nginx 的版本   

參考該文章: https://blog.csdn.net/wjkwan/article/details/106710607   

發現在 root 下安裝 和 在 usr 內安裝的位置是不一樣的, 並使用組態 Nginx 環境變數   

執行 `vi /etc/profile` 命令，`shift + G` 跳到最後，按 `I` 進入編輯模式將下面兩行程式碼新增到最後   

```
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
```

執行 `source /etc/profile` 命令重新載入組態檔案, 可以看到 nginx 版本號碼   

執行 `ps -ef | grep nginx` 可以查看是否有Nginx處理程序   

在 `root@xxxx` 下 nginx 的壓縮檔和解壓縮的資料夾會在 root 使用者的底下, 而一般會以個人使用者底下做使用 `/usr/local/nginx/sbin/`  

參考: https://blog.csdn.net/wjkwan/article/details/106710607   

[vim 指令](https://ithelp.ithome.com.tw/articles/10230986)   

----


## 7. Linux 有兩種系統   

RedHat series: RedHat, Centos, Fedora...等   
> RedHat series 的管理工具是 yum   

Debian series: Debian, Ubuntu...等   
> Debian 的管理工具是 apt-get...等   

使用指令 `cat /proc/version` 可以看到系統版本   

----

## 8. 如果在 root 底下使用 yum 安裝 nginx   

在 linux 機器, root 底下使用指令 `sudo yum install sudo yum install nginx`  目錄會指向 ==/usr/local/==   


比較完整的安裝教學參考: https://blog.csdn.net/qq_42815754/article/details/82980326   

---

## 9. 解決中文編碼問題   

使用指令 `sudo yum -y install kde-l10n-Chinese && yum -y reinstall glibc-common`  

參考: https://juejin.cn/post/7001150300266430472   

---

## 10. 解決防火牆、port 問題   

使用指令 `ip addr` 或 `ip a` 去找出虛擬機的 ip   
  
接著用指令 `ping` 去去看連接順利與否   

檢查 port: 80 有沒有開啟 `firewall-cmd --query-port=80/tcp`  
> 出現 no 表示沒有開啟 port   

開啟 port 並且新啟動防火牆
```
firewall-cmd --add-port=80/tcp --permanent
#重新啟動防火墙
systemctl restart firewalld
```

*--permanent 表示永久生效, 沒有此數值, 重新啟動後會失效   

參考: https://www.cnblogs.com/xxoome/p/5866475.html   


---

## 11. 常用 Linux 指令   

參考: https://it.chc.edu.tw/modules/tad_book3/page.php?tbsn=1&tbdsn=2   


----

## 12. Nginx 與 php-fpm 運作參考   

可以切換 php 版本   

https://tec.xenby.com/20-nginx-%E8%88%87-php-fpm-%E9%81%8B%E4%BD%9C%E4%BB%8B%E7%B4%B9%E8%88%87%E8%A8%AD%E5%AE%9A%E8%AC%9B%E8%A7%A3   

----

## 13. Nginx 移除教學參考   

https://cloud.tencent.com/developer/article/1841908   

---

## 14. 反向代理開啟參考:   

反向代理定義:   
> https://ithelp.ithome.com.tw/articles/10188498   

打開網路權限, 並且使用反向代理:   

指令使用:   
>  setsebool -P httpd_can_network_connect 1

參考教學:   

https://www.twblogs.net/a/5c966f24bd9eee4a0d091329   

---

## 15. 其他參考網站   

[網站一條龍 - 從架站到前端 ](https://ithelp.ithome.com.tw/articles/10263854?sc=iThomeR)   

[常用的 Nginx Config 與相關指令教學](https://linyencheng.github.io/2019/07/13/tool-nginx/)   

[前端工程師一起來種一棵後端技能樹吧](https://ithelp.ithome.com.tw/articles/10241354)   

[[基礎觀念系列] Web Server & Nginx](https://medium.com/starbugs/web-server-nginx-2-bc41c6268646)   

[負載均衡器技術Nginx和F5的優缺點對比](https://www.itdaan.com/tw/9461b6629f90f200469221b245555905#:~:text=1%E3%80%81nginx%E6%87%89%E7%94%A8%20nginx%20%EF%BC%88engine,x%EF%BC%89%E6%98%AF%E4%B8%80%E5%80%8B%E5%8F%AF%E4%BB%A5%E4%BD%9C%E7%82%BAHTTP%20WEB%E6%9C%8D%E5%8B%99%E5%99%A8%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8B%99%E5%99%A8%E3%80%81%E9%83%B5%E4%BB%B6%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8B%99%E5%99%A8%E5%92%8C%E4%B8%80%E5%80%8B%E9%80%9A%E7%94%A8%E7%9A%84TCP%20%2F%20UDP%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8B%99%E5%99%A8%EF%BC%881.9.0%E7%89%88%E6%9C%AC%E5%90%8E%EF%BC%89%E7%9A%84%E5%A4%9A%E5%8A%9F%E8%83%BD%E6%9E%B6%E6%A7%8B%E7%B5%84%E4%BB%B6%EF%BC%8C%E5%90%8C%E6%99%82%E4%B9%9F%E5%8F%AF%E4%BB%A5%E6%8F%90%E4%BE%9B%E4%B8%80%E5%AE%9A%E7%9A%84%E7%B7%A9%E5%AD%98%E6%9C%8D%E5%8B%99%E5%8A%9F%E8%83%BD%E3%80%82)   

[第八章 TCP Socket 程式介面](http://tsnien.idv.tw/Internet_WebBook/chap8/8-1%20Socket%20%E7%B0%A1%E4%BB%8B.html)   

----



