美文网首页
thinkphp5 nginx 虚拟主机配置

thinkphp5 nginx 虚拟主机配置

作者: xiaFeng | 来源:发表于2017-06-10 18:44 被阅读0次

想在mac上写一个 thinkphp5 的项目,用的 nginx 服务器,配置了一天各种500404not fond file,活活的在虚拟主机上浪费了一天,如此,将配置贴出来分享给大家。

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

$ nginx -v
nginx version: nginx/1.10.3

虚拟主机配置:

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;
    }
}

参考鸟哥的博文:Nginx(PHP/fastcgi)的PATH_INFO问题

更新 : 2017-6-22

对于 2014 年后的 nginx 都已经支持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

还有一点

在引用 public/static 中的css,js和图片的时候,不能使用/public/static/css/xxx.css 的地址,要去掉 public/static/css/xxx.css 引用,不然会报 404,或者框架报 public 未找到

相关文章

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • Nginx 虚拟主机配置和日志管理 [2]

    一、nginx虚拟主机配置 Nginx虚拟主机对应的文件实体就是/usr/local/nginx/nginx.co...

  • Nginx

    安装Nginx 配置虚拟主机

  • nginx2-路由

    1.nginx管理虚拟主机 基于域名虚拟主机配置 基于端口虚拟主机配置 基于ip虚拟主机配置 2.Location...

  • Nginx虚拟主机与安全认证实战

    知识要点: 配置Nginx虚拟主机实践 安全认证实践 安装验证 Nginx虚拟主机配置讲解 讲解配置之前我们要了解...

  • Nginx——虚拟主机配置

    基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机nginx的主配置文件/etc/nginx/nginx....

  • Nginx 常用配置

    1. Nginx 配置虚拟主机 1.1 基于 IP 的虚拟主机 修改配置文件 nginx.conf 重启服务 测试...

  • Nginx 虚拟主机

    什么是虚拟主机 Nginx 配置文件的结构 基于 IP 的虚拟主机配置 基于端口的虚拟主机配置 基于域名的虚拟主机...

  • nginx 403 forbidden

    首先确保虚拟主机路径配置正确 nginx django .conf 配置nginx python Django 集...

  • Nginx location

    上一篇 Nginx 虚拟主机 Nginx location  在 nginx 的配置文件中,经常可以看到虚拟主机配...

网友评论

      本文标题:thinkphp5 nginx 虚拟主机配置

      本文链接:https://www.haomeiwen.com/subject/vblcqxtx.html