mac下安裝nginx 啓動和 關閉重啓

前言:nginx的強大不必多言,所以很自然很應當的我也來玩一玩。但是網上許多安裝和配置都太那啥了,在這裏真的想說一句帶有引戰性質但我真的無意引戰的言論:現在的好多程序員的文筆實在是爛,寫的教程讓人着實難懂啊,該不會語文都是體育老師教的吧。

當前系統環境:

安裝工具:

homebrew(還沒用過的小夥伴可以點鏈接進行了解或者自行百度)

步驟:

  1、打開終端,習慣性命令:

brew update
//結果:Already up-to-date.

 

  2、終端繼續執行命令:

brew search nginx   //查詢要安裝的軟件是否存在

  3、這裏我們多執行一步“廢”命令,不過有利於我們後面的配置:

brew info nginx

  運行結果:

  

  我們可以看到,nginx在本地還未安裝(Not installed),nginx的來源(From),Docroot默認爲/usr/local/var/www,在/usr/local/etc/nginx/nginx.conf配置文件中默認端口被配置爲8080從而使nginx運行時不需要加sudo,nginx將在/usr/local/etc/nginx/servers/目錄中加載所有文件,以及我們可以通過最簡單的命令 ‘nginx’ 來啓動nginx。

  4、正式開始安裝:

brew install nginx

  5、查看nginx安裝目錄(是否如info所說): 

open /usr/local/etc/nginx/

    

  成功打開nginx目錄,也可以看到如info所說servers目錄以及nginx.conf的配置文件(後面會用到這個配置文件)。但我們並沒有找到nginx被安裝到了哪裏。

  終端繼續執行:

open /usr/local/Cellar/nginx  //其實這個纔是nginx被安裝到的目錄

  

  會看到一個以當前安裝的nginx的版本號爲名稱的文件夾,這個就是我們安裝的nginx根目錄啦。進入1.12.2_1/bin 目錄,會看到nginx的可執行啓動文件。

  同樣的,我們在1.12.2_1/目錄下還可以看到一個名字爲html的快捷方式文件夾(暫且就這麼叫吧),進入該目錄我們會發現其實它指向的就是/usr/local/var/www目錄,這個在上面我們查看的info信息中有提到(Dcroot)

   6、啓動nginx,終端輸入如下命令:(就在當前目錄輸入就可以)

nginx

  沒有報錯即爲啓動成功。
  7、訪問驗證:

    打開瀏覽器訪問localhost:8080,這裏跟網上的一些教程會有些不一樣,正常情況下到這一步就會能看到nginx的歡迎界面啦,然而博主卻遇到了坑爹的情況(如果你能正常看到nginx歡迎界面,可以直接跳過這一步了)

 

   想必這個錯誤大家都很熟悉了,我就不再多做解釋,接下來直接說原因(該原因僅爲猜測,因爲無從驗證):安裝的nginx會默認在html(也就是/usr/local/var/www)目錄下生成一個歡迎頁面文件,而出現上面這種情況就是歡迎頁面文件沒有生成(至於爲什麼沒有生成就不得而知了,一切都是猜測)。

  那在解決這個問題之前,我們先來了解一下nginx的配置文件吧(nginx.conf):

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

  顯示配置文件的代碼爲:

複製代碼

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
     #偵聽8080端口
        listen       8080;
     #定義使用 localhost訪問
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
       #定義服務器的默認網站根目錄位置
            root   html;
        #定義首頁索引文件的名稱
            index  index.html index.htm;
        }
     ...
     ...
     ... (註釋代碼太多,就不全部貼出來了)

    include servers/*;
}

複製代碼

  通過配置文件我們可以看到其默認的網站根目錄爲html(即/usr/local/var/www),而默認的索引文件爲index.html 和 index.htm,這下就找到原因了,原來我們的根目錄少了首頁索引文件,那就來手動創建一個吧:

cd /usr/local/var/www/                      //進入到www目錄下
touch index.html                            //創建一個新的index.html文件
vim index.html                              //編輯該文件 

  將如下代碼寫入index.html文件中:

複製代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>
    <div>
        <h1>我的nginx歡迎頁面</h1>
    </div>
</body>
</html>

複製代碼

  按esc鍵,輸入:wq推出編輯並保存(這個相信大家都會,但還是強迫症的寫上了)。

  回到瀏覽器(localhost:8080)刷新:

  OK,大功告成啦!

 

 

在終端中輸入 ps -ef|grep nginx  獲取到nginx的進程號,注意是找到“nginx:master”的那個進程號,如下面的進程好是 15800

?

1

2

3

501 15800   1  0 12:17上午 ??     0:00.00 nginx: master process /usr/local/Cellar/nginx/1.8.0/bin/nginx -c /usr/local/etc/nginx/nginx.conf

501 15801 15800  0 12:17上午 ??     0:00.00 nginx: worker process

501 15848 15716  0 12:21上午 ttys000  0:00.00 grep nginx

在終端中輸入以下幾種命令都可以停止

?

1

2

3

kill -QUIT 15800 (從容的停止,即不會立刻停止)

Kill -TERM 15800 (立刻停止)

Kill -INT 15800 (和上面一樣,也是立刻停止)

四、重啓

如果配置文件錯誤,則將啓動失敗,所以在啓動nginx之前,需要先驗證在配置文件的正確性,如下表示配置文件正確

?

1

2

3

promote:bin yangqianhua$ /usr/local/Cellar/nginx/1.8.0/bin/nginx -t -c /usr/local/etc/nginx/nginx.conf

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

重啓有兩種方法

1)在終端輸入輸入如下命令即可重啓

?

1

2

3

promote:~ yangqianhua$ cd /usr/local/Cellar/nginx/1.8.0/bin/

promote:bin yangqianhua$ ./nginx -s reload

promote:bin yangqianhua$

2)根據進程號重啓,執行命令 kill -HUP 進程號 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章