我目前正在开发一个laravel应用程序,在nginx webserver上,我总是通过编辑/ etc / hosts访问我的项目,并为项目名称添加一个条目,然后在默认文件中添加一个带有服务器名称的服务器块nginx,所以如果我有一个名为“Missouri”的项目,我会这样称呼:
我现在想改变一下,并使用我的IP地址或我的localhost在项目名称之前,如下所示:
我搜索了很多,找到了很多不同的组合,但没有一个是高效的,这是一般服务器配置的配置块:
server {
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ^~ /Missouri {
alias /var/www/html/Missouri/public;
try_files $uri $uri/ /Missouri/index.php?$query_string;
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
如果我使用以前的配置并调用localhost / Missouri,我会找不到文件。白页错误,但是如果我使用以下代码并调用Missouri /它可以工作:
server {
listen 80;
server_name missouri;
root /var/www/html/Missouri/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
感谢您的帮助,谢谢。
答案 0 :(得分:0)
我不是DevOps,但我认为您可以在nginx服务器块中编写正则表达式,因此“localhost / foo”将是“localhost / foo / public”的别名。通过这样做,您不需要为每个网站添加块。
另一方面,关于你的问题,我建议你使用“root”而不是“别名”。这是一个示例代码:
location /Missouri {
root /var/www/html/Missouri/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我希望它有效。