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,大功告成啦!