閱讀234 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

目錄結構

Homebrew安裝及說明

安裝及說明

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作為開發模型


mac Sierra 10.12.4 ?


安裝過程

Homebrew請繞過

Homebrew,因為這裏介紹的安裝方式需要brew命令

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

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


? 2.正式安裝

? ? ?還是命令: ??brew?install?nginx?

? 一條命令搞定

nginx啟動,重啟,關閉

安裝完以後,可以在終端輸出的信息裏看到一些配置路徑:

? ? ? ? ? ? ?/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?

? ? ? 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?主進程號

出錯解決辦法

?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)

其他說明

? ? ? nginx -V 查看版本,以及配置文件地址
? ? ? nginx -v 查看版本
? ? ? nginx -c filename 指定配置文件
? ? ? nginx -h 幫助

? ? ? sudo?nginx

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

? ??

? ? ? ? ?執行命令:

         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)

? ?打開 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;

  sudo nginx
  sudo php-fpm

? ? ? ?然後訪問localhost:8080,看到配置信息,就說明 ok 了

? ? 修改 nginx.conf 後,重載配置文件

   sudo nginx -s reload

? ?停止 nginx 服務器

  sudo nginx -s stop

? ?停止 php-fpm可以直接在 Activity Monitor 中停止。也可以使用腳本來停。

最後更新:2017-05-09 14:31:37

  上一篇:go 服務器RAID信息丟失怎麼恢複數據?
  下一篇:go 聊聊淘寶天貓個性化推薦技術演進史