国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx泛解析到子目錄后自動判斷有無public目錄詳解

2024-08-30 12:06:34
字體:
來源:轉載
供稿:網友

我們大家在配置本地 PHP 開發環境時,除非是在 Windows 下,否則我都是偏向于 Nginx + PHP-FPM, 即使 Mac 下已經有了自帶的 Apache+PHP 環境,依然如此。一方面是因為 Mac 自帶的 PHP 版本不夠新(5.6.x),另一方面,Nginx + PHP-FPM 更接近于我的生產服務器環境,而且也方便用 Homebrew 來管理版本和擴展。

在 Mac 下開發 Laravel, 官方提供了 valet, 可以方便地把子目錄映射為虛擬主機,但我在使用的時候,遇到一些問題:

真實錯誤信息難以追蹤,總是報 valet 的 index.php 或者 laravel 的 index.php 錯誤;

Symfony 框架里的 config.php/app_debug.php 等無法直接訪問。

于是我只保留了 dnsmasq 來管理特定后綴的域名(實現自動解析),然后放棄了 valet,自己做了一個泛解析綁定到本地子目錄的配置。

具體配置如下(域名是 *.app):

  1. server { 
  2.  listen 80; 
  3.  server_name ~^(?<subdomain>.+).app$; 
  4.  set $root /Users/kairee/Sites/$subdomain
  5.     
  6.  if ( -d "/Users/kairee/Sites/$subdomain/public") { 
  7.   set $root /Users/kairee/Sites/$subdomain/public
  8.  } 
  9.  root $root
  10.  charset utf-8; 
  11.  client_max_body_size 128M; 
  12.  index index.php; 
  13.     
  14.  location / { 
  15.   try_files $uri $uri/ /index.php$is_args$args
  16.  } 
  17.     
  18.  access_log off; 
  19.     
  20.  location ~ /.php/?? { 
  21.   fastcgi_split_path_info ^(.+/.php)(/.+)$; 
  22.   fastcgi_pass unix:/tmp/php.sock; 
  23.   fastcgi_index index.php; 
  24.   include fastcgi_params; 
  25.   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
  26.  } 
  27.     
  28.  location ~ //.ht { 
  29.   deny all; 
  30.  } 

采用這個配置以后:

如果存在 ~/Sites/domain/public, 則 domain.app 域名的根目錄會指向 ~/Sites/domain/public;

如果存在 ~/Sites/domain 但是不存在 ~/Sites/domain/public, 則 domain.app 域名的根目錄會指向 ~/Sites/domain;

網站根目錄下真實存在的 php 文件可以直接訪問,只有不存在的文件才會通過入口文件(index.php)處理;

如果需要支持其它框架,可以在配置文件中加一條 if 語句實現,比如要支持 symfony 的話,復制一下 if 判斷塊,把 public 改成 web 即可。

我雖然只是用于 mac/linux, 但實際上 Windows 下當然也是可以的,如果你在 Windows 下也使用 Nginx 的話。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 夏邑县| 三河市| 夹江县| 彭阳县| 双鸭山市| 沈阳市| 德保县| 永善县| 霍林郭勒市| 灵璧县| 牡丹江市| 奎屯市| 城固县| 长阳| 红原县| 霍邱县| 鲜城| 和顺县| 慈溪市| 靖州| 武宁县| 绥宁县| 盐山县| 高清| 三门县| 四会市| 温州市| 邹平县| 合阳县| 二连浩特市| 渝中区| 鄂温| 乌鲁木齐市| 积石山| 临朐县| 丰原市| 东莞市| 卓尼县| 江源县| 安泽县|