thinkphp5 nginx 虛擬主機(jī)配置

想在mac上寫(xiě)一個(gè) thinkphp5 的項(xiàng)目,用的 nginx 服務(wù)器,配置了一天各種500,404,not fond file,活活的在虛擬主機(jī)上浪費(fèi)了一天,如此,將配置貼出來(lái)分享給大家。

$ php-fpm -v
PHP 7.0.15 (fpm-fcgi)

$ nginx -v
nginx version: nginx/1.10.3

虛擬主機(jī)配置:

server {
    listen 80;
    server_name www.tp5.com;
    root /Users/mac/www/tp5/public;
    index index.php index.html;

    location / {
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php/$1 last;
            break;
        }
    }

    location ~ \.php
    {
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        include      fastcgi_params;
        set $path_info "";
        set $real_script_name $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
        fastcgi_param SCRIPT_NAME $real_script_name;
        fastcgi_param PATH_INFO $path_info;
    }
}

參考鳥(niǎo)哥的博文:Nginx(PHP/fastcgi)的PATH_INFO問(wèn)題

更新 : 2017-6-22

對(duì)于 2014 年后的 nginx 都已經(jīng)支持path_info 模式了。
新的配置

server {
             listen 80;
             server_name www.tp5.com;
             set $root /Users/mac/www/tp5/public;
        
             location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
             {
                 root $root;
             }
        
             location / {
                 root    $root;
                 index    index.html index.php;
                 if ( -f $request_filename) {
                     break;
                 }
                 if ( !-e $request_filename) {
                     rewrite ^(.*)$ /index.php/$1 last;
                     break;
                 }
             }

             location ~ .+\.php($|/) {
                 fastcgi_pass 127.0.0.1:9000;
                 fastcgi_split_path_info ^((?U).+.php)(/?.+)$;    # 支持path_info
                 fastcgi_param PATH_INFO $fastcgi_path_info;
                 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                 fastcgi_param    SCRIPT_FILENAME    $root$fastcgi_script_name;
                 include        fastcgi_params;
             }
         }

參考:http://www.thinkphp.cn/topic/40391.html

還有一點(diǎn)

在引用 public/static 中的css,js和圖片的時(shí)候,不能使用/public/static/css/xxx.css 的地址,要去掉 public/static/css/xxx.css 引用,不然會(huì)報(bào) 404,或者框架報(bào) public 未找到 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 一、MemCache簡(jiǎn)介 session MemCache是一個(gè)自由、源碼開(kāi)放、高性能、分布式的分布式內(nèi)存對(duì)象緩存...
    李偉銘MIng閱讀 4,003評(píng)論 2 13
  • 起由 由于最近的“凈網(wǎng)”行動(dòng),很多網(wǎng)盤(pán)包括我一直在使用的快盤(pán)關(guān)停,仍然存活的百度云、360云等又沒(méi)有l(wèi)inux客戶(hù)...
    leoatchina閱讀 7,799評(píng)論 1 25
  • 孩子你好: 上封信說(shuō)了,你要當(dāng)個(gè)自由的人,而自由的人是需要學(xué)習(xí)的。 爸爸認(rèn)為,最需要學(xué)習(xí)的對(duì)象應(yīng)該是工程師—不是因...
    寧長(zhǎng)弓閱讀 348評(píng)論 0 2
  • 昨夜讀歐陽(yáng)修浪淘沙 尾句‘縱使花時(shí)常病酒,也是風(fēng)流’ 大感其是,故成詞 星漢漾花舟,夜夜中秋。金燈銀月十二樓。照影...
    風(fēng)兮兮__閱讀 370評(píng)論 0 1

友情鏈接更多精彩內(nèi)容