我已经在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文件。我怎么能这样做?
答案 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;