1. 程式人生 > 實用技巧 >MAMP(MAC php整合環境)thinkphp5 nginx 配置(fastadmin配置)

MAMP(MAC php整合環境)thinkphp5 nginx 配置(fastadmin配置)

thinkphp5的 nginx 配置,官方文件參考:http://static.kancloud.cn/manual/thinkphp5/177576

fastadmin的 nginx 配置,官方文件參考:https://doc.fastadmin.net/doc/faq.html

server {
        listen       80;
        server_name  www.fa.com *.fa.com;
        root   "C:/phpstudy/WWW/fastadmin/public";
        location / {
            index  index.html index.htm index.php;
            #主要是這一段一定要確保存在
            
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } #結束 #autoindex on; } location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info
^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }

使用MAMP PRO配置的時候, 可以將location /規則新增到nginx的第一個文字框。

#主要是這一段一定要確保存在
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;
                break;
            }

第二段location是匹配的偽靜態規則,需要修改對應的nginx配置。

如果直接新增到nginx配置介面的server部分,則會被追加到末尾,這就造成該規則不起作用

這裡的server 額外新增的規則應該是解析靜態資源目錄的規則,如下:

location @rewrite {
        set $static 0;
        if  ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map|mp3|wav|m4a)$) {
            set $static 1;
        }
        if ($static = 0) {
            rewrite ^/(.*)$ /index.php?s=/$1;
        }
    }

下面才是真正修改偽靜態規則的方法:

開啟MAMP PRO ,選單欄的 File -> Edit Template -> nginx, 修改大約196行開始,註釋掉原來的 php解析規則,更改為:

location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

儲存,並重啟nginx即可生效。