爲何!!!我配過的服務器已經有五、6個了吧,爲何每一次配置都能要了個人老命??此次寫清楚過程,之後再要被配服務器坑,我特麼要砍人了。php
提示:測試網站可否訪問的時候,最好關掉瀏覽器的緩存功能或者勤清瀏覽器的緩存,以免被緩存坑!nginx
1. nginxlaravel
mac上經過brew安裝nginx,萬事開頭容易,配置難。git
找到nginx.conf,保持其所在文件夾常年打開不要關閉,由於後面還會常常來這個文件夾找東西。github
nginx.conf 內容參照 https://github.com/daylerees/laravel-website-configs/blob/master/nginx.conf web
注意上面只給出了server塊裏的內容,不過server塊之外的內容保持默認都行。瀏覽器
還請注意 ‘location /’ 塊內的內容,這裏不推薦上文的配置,還請改爲這個:緩存
try_files $uri /index.php?$query_string;
刪去了 「$uri/」。若是不刪去這一條,而且沒有開啓autoindex的話,直接訪問一個目錄會致使HTTP 403,這在前期配置的時候會形成沒必要要的困擾。服務器
除此以外最好啓用error.log,相應配置應該在文件的開頭。php-fpm
同時也請常年打開nginx的 error.log 所在文件夾,判斷問題的時候也會常常用到。
2. php-fpm
這玩意至關於運行php的服務器,總之若是你的站點想運行php文件的話,php-fpm 和 nginx 都得保持在後臺運行。
安裝很少說,根據平臺查找本身合適的方案。
也請找到這玩意的配置文件並常年打開。
修改user及group。
這玩意自己沒什麼坑的配置之處,主要仍是得看nginx調用這玩意的那部分配置是否正確。
回到nginx.conf。
找到 location ~* php 啥啥啥的塊。
這裏有幾個配置很是重要
1 fastcgi_pass unix:/var/run/php5-fpm.sock; 2 fastcgi_index index.php; 3 fastcgi_split_path_info ^(.+\.php)(.*)$; 4 include /etc/nginx/fastcgi_params; 5 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
第1行,告訴nginx去哪裏找php-fpm服務。這個得看你的php-fpm 是什麼樣的,有的經過如上所示的sock進行通訊,有的經過127.0.0.1:9000(通常狀況下)進行通訊,請搞清楚你的php-fpm用的那種方案並修改這一行。
第4行,這裏須要include 一個叫 fastcgi_params 的文件,應該和 nginx.conf 在一個文件夾下,路徑填正確就行。
配置完後重啓各個服務,再試試應該能夠正常使用了。
下面貼出訪問網站時可能遇到的問題及解決思路
1. 500 Internal Server Error
通常是php部分執行的時候出錯了,翻看php-fpm 的error log以定位錯誤。
2. 403 Forbidden
多是訪問了一個文件夾,可是又沒有開啓autoindex(自動列出文件夾下的全部內容),因而被nginx禁止。
有可能在訪問網站根目錄時出現這個狀況,請檢查 ‘location /’ 塊內的tryfiles有沒有刪去 "$uri/"。
3. 502 Gateway Error
nginx找不到php-fpm 服務,多是php-fpm沒開或者 ‘location php’ 塊內的 fastcgi_pass 未正確填寫。