mac系統下nginx的詳細安裝過程及使用(適合新手)

極趣發表於2017-05-09
目錄結構

          

      · 前置條件:介紹nginx

      · 配置說明

      · 安裝過程

        ·Homebrew安裝及說明

        ·nginx安裝及說明

      ·nginx啟動,重啟,關閉

    ·出錯解決辦法:只列出自己出的錯

    ·其他說明:包括常用指令及修改配置等

前置條件

         

         nginx說明:是個伺服器

        Nginx (“engine x”) 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。

      Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、新浪、網易、騰訊等。

優點是可以在大多數 Unix like OS 上編譯執行,並有 Windows 移植版。 Nginx 的1.4.0穩定版已經於2013年4月24日釋出,一般情況下,對於新建站點,建議使用最新穩定版作為生產版本,已有站點的升級急迫性不高。Nginx 的原始碼使用 2-clause BSD-like license。

     Nginx 是一個很強大的高效能Web和反向代理伺服器,它具有很多非常優越的特性:

在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品:Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平臺之一。能夠支援高達 50,000 個併發連線數的響應,感謝Nginx為我們選擇了 epoll and kqueue作為開發模型


作者本人環境配置

 

1.mac Sierra 10.12.4  


安裝過程

  

  1.安裝前置安裝說明(已安裝Homebrew請繞過

     1.1 解釋:首先需要安裝Homebrew,因為這裡介紹的安裝方式需要brew命令

      1.2 命令       ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 

   1.3命令說明:在“終端”中輸入以上命令,系統會自動執行,只需在需要點選的時候根據提示點選就可以。下來就是安裝nginx了


  2.正式安裝

     還是命令:   brew install nginx 

  一條命令搞定

nginx啟動,重啟,關閉

      1.安裝完以後,可以在終端輸出的資訊裡看到一些配置路徑:

             /usr/local/etc/nginx/nginx.conf (配置檔案路徑)

            /usr/local/var/www (伺服器預設路徑)

           /usr/local/Cellar/nginx/1.12.0 (安裝路徑)(我安裝的是1.12.0,具體參照自己安裝的版本)

   2.訪問localhost:8080,成功說明安裝好了,如果沒有出現頁面,可參照下面解決辦法試著處理

   3.啟動 

      3.1進入安裝路徑   cd  /usr/local/Cellar/nginx/1.12.0/bin

      3.2啟動 sudo ./nginx

3.3重啟 sudo ./nginx -s reload 

3.4 判斷配置檔案是否正確  sudo ./nginx -t 

3.5 nginx停止  首先查詢nginx主程式號  ps -ef|grep nginx

正常停止   sudo kill -QUIT 主程式號

快速停止   sudo kill -TERM 主程式號

出錯解決辦法

   

   1.1 安裝完nginx 輸入localhost:8080沒出現頁面  

            可以試著啟動下nginx。

                   如果出現

                     sudo ./nginx

           nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

           nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

           nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

           nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

           nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)    

                   這說明8080埠被佔用,可以找到配置檔案,修改埠號(詳見其他說明)

      其他錯誤可以百度

其他說明

     1.常用的指令有: 

      nginx -V 檢視版本,以及配置檔案地址
      nginx -v 檢視版本
      nginx -c filename 指定配置檔案
      nginx -h 幫助

      #重新載入配置|重啟|停止|退出 nginx

      nginx -s reload|reopen|stop|quit

      #開啟 nginx

      sudo nginx

      #測試配置是否有語法錯誤

      nginx -t         

    

      2. 修改 php-fpm 檔案

         執行命令:

         sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf

         找到目錄下的 php-fpm 檔案

         /private/etc/php-fpm.conf

         找到32行的 error_log ,改為(正行替換,注意 ‘;’ 和空格):

         error_log = /usr/local/var/log/php-fpm.log

         否則 php-fpm 時會報錯:

   ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)

      3.修改 Nginx 配

            開啟 nginx.config 檔案

        /usr/local/etc/nginx/nginx.conf

          找到 server 的 location 配置,給 index 加一個 index.php

     location / {
         root   html;
         index  index.html index.htm index.php;
     }

         並開啟 server 下被註釋的 location ~.php$(即刪除程式碼前面的 ‘#’),如下:

location ~ .php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

        並修改 fastcgi_param 引數

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
改為
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

   4.啟動相關服務

  sudo nginx
  sudo php-fpm

       然後訪問localhost:8080,看到配置資訊,就說明 ok 了

  5.其他命令

    修改 nginx.conf 後,過載配置檔案

   sudo nginx -s reload

   停止 nginx 伺服器

  sudo nginx -s stop

   停止 php-fpm可以直接在 Activity Monitor 中停止。也可以使用指令碼來停。


相關文章