1. 程式人生 > >nginx 的安裝和gcc gcc-c++配置詳解(新手必看)

nginx 的安裝和gcc gcc-c++配置詳解(新手必看)

首先玩linux的話,

gcc gcc-c++,fast-cgi,wget,yum

這些包請確保已經安裝好了,

#下載nginx openssl,pcre,zlib 

wget http://nginx.org/download/nginx-1.12.0.tar.gz 

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz 

wget https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz 

wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz?download

以上四個包是nginx的依賴包,必須安裝,不然後期會有問題,如果安裝請忽略,你也可以使用yum安裝更加簡單,

yum install openssll

yum install pcre

yum install zlib

最後yum install nginx;

如果編譯安裝,請wget後,解壓 -zxvf 

tar -zxvf nginx-1.12.0.tar.gz 

tar -zxvf openssl-1.1.0e.tar.gz 

tar -zxvf pcre-8.37.tar.gz 

tar -zxvf zlib-1.2.11.tar.gz?download

然後,進入包,配置:./configure ,最後make && make install。

安裝php的話,之前文章已經介紹過了,因為我是apache換成nginx的,所以,我把apache埠做了修改,並且停用了httpd的所有服務。踩到的坑:埠問題,如果你配置好了環境和修改了埠,仍然不能訪問,那就要去騰訊或者阿里雲的後臺,去開啟一個埠規則了,因為埠開放都是需要自己去阿里雲伺服器賬號後天配置的

apache可以不解除安裝,但是需要修改埠和停用。

新手不會建議yum快速安裝。

完成後,會提示你complete,說明安裝成功了,然後啟動;

因為我是cenos7.2的,yum安裝的,所以我的啟動方式是systemctl start nginx。如果是編譯安裝,cd usr/local/nginx/sbin ./nginx ,對應自己目錄。

如果用yum install命令安裝的,yum命令會自動建立nginx.service檔案,

直接用命令 systemctl enable nginx.service 設定開機啟動即可。

用原始碼編譯安裝的,要手動建立nginx.service服務檔案。開機沒有登陸情況下就能執行的程式,存在系統服務(system)裡,即: /lib/systemd/system/ 

vi /lib/systemd/system/nginx.service

[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target

儲存退出。

 systemctl enable nginx.service 

啟動nginx服務 systemctl start nginx.service 

設定開機自啟動 systemctl enable nginx.service 

停止開機自啟動 systemctl disable nginx.service 

檢視服務當前狀態 systemctl status nginx.service 

重新啟動服務 systemctl restart nginx.service 

 檢視所有已啟動的服務 systemctl list-units --type=service



下面是啟動成功nginx後的配置:重點

找到nginx.conf,這個是nginx的配置檔案,如果是yum安裝的話,直接執行命令查詢

find / -name nginx.conf

開啟後

網際網路的預設埠是80,因此listen:80在url中未定義埠的話一般預設為80。因為你很有可能是去執行一個線上的伺服器,因此最好定義成80埠。

server_name主要用來匹配url地址。任意請求通過nginx時,它會檢視url並尋找 server_name 片段。如果你的站點地址為 http://xvfeng.me, 那麼你的 server_name 應當也為 xvfeng.me . 如果你在域名解析時使用了A記錄並通過伺服器指向 http://snargles.com , 你可以新增另外一個 server 程式碼,將 server_name 指向 snargles.com, 這段程式碼就會匹配來自於這個域名的請求。本地的話,寫成localhost

如果你想預設不訪問80埠,

server_name  127.0.0.1:8080

這樣就可以了。

配置多站點:

配置 httphost 步驟如下: 

1.檢查/etc/nginx/nginx.conf配置檔案,確保檔案中有:include /etc/nginx/conf.d/*.conf;

2.在目錄/etc/nginx/conf.d/下面新建檔案http.conf,檔名任意寫,自己看明白就OK,字尾名需要與步驟1配置的一致,這裡為.conf。

3.

訪問域名即可。



我喜歡把檔案放在 /var/www 目錄下,因此我們在這裡建立一個資料夾。

使用 mkdir 建立 /var/www/example 目錄,建立一個空白的 index.html 檔案,隨便新增一些段落輸出hello world之類的內容。程式碼如下: 

server { 

    listen 80; 

    server_name example.com; 

    root /var/www/example;

 } 基本變數設定完畢,下一步配置路由。

在這裡我們只需要訪問root目錄,因此只需要加上 / 即可,內容暫時為空,後面再做解釋。

配置完後,儲存退出,記得重啟伺服器,

訪問預設的/www/house/index.html頁面了。    


坑:最後發現不能解析php檔案的處理

netstat -tunpl | grep 9000

看時候啟動了fpm,fpm預設是9000埠,麼有啟動的話,執行命令/usr/local/php/sbin/php-fpm 自己路徑啟動。


下一篇文章接上