laravel 5.2的NGNIX服务器设置

时间:2016-08-22 08:21:03

标签: php laravel nginx

我已经在laravel中开发了一个网站,我想将它安装在运行nginx作为Web服务器的本地计算机上。这是我的配置文件

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root html;
    index index.html index.php;

    # Make site accessible from http://localhost/
    server_name localhost;


    location / {
        root   html;
        index  index.php;
    }

    location ~ .php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  C:/nginx/html/$fastcgi_script_name;
    include        fastcgi_params;
    }


}

当我浏览 http://localhost/mysite/ 时,它会运行C:/nginx/html/mysite/index.php

我想执行C:/nginx/html/mysite/public/index.php文件。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

从你的Nginx文件中我假设你的项目的根目录是html,所有的Laravel文件都在这个目录中。

如果是这种情况,那么您可以直接转到http://localhost/mysite/public或将您的Nginx配置中的root目录更改为html/public

如果这不起作用,请将root设置为本地计算机上的完整路径,以便访问Laravel项目的公用文件夹。

修改 尝试:

root /c/nginx/html/mysite/public

OR

root C:/nginx/html/mysite/public

答案 1 :(得分:0)

以下是我的配置:

server {
    server_name      laravel.mydomain;
    root             /home/me/domain/laravel.mydomain/public/;

    location / {
        try_files    $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass                      unix:/run/php-fpm/php-fpm.sock;
        fastcgi_split_path_info           ^(.+\.php)(/.*|$);
        fastcgi_param  PATH_INFO          $fastcgi_path_info;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

        include        fastcgi_params;
        internal;
    }
}

只需将root更改为public文件夹所在的位置。

try_files确保当文件系统上没有文件直接存在时index.php路径中的所有内容都由root提供。

答案 2 :(得分:0)

You have to change only one line: Looks the final code in below 

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root C:/nginx/html/mysite/public;
    index index.html index.php;

    # Make site accessible from http://localhost/
    server_name localhost;


    location / {
        root   html;
        index  index.php;
    }

    location ~ .php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  C:/nginx/html/$fastcgi_script_name;
    include        fastcgi_params;
    }
}

请仔细查看代码。我改变了 root html到root C:/ nginx / html / mysite / public;