2017-03-05 97 views
1

我目前正在nginx網絡服務器上開發一個laravel應用程序,我總是通過編輯/ etc/hosts來訪問我的項目,並添加一個項目名稱,然後添加一個服務器塊在nginx的默認文件,所以如果我有一個所謂的「密蘇里」號的項目,我想這樣稱呼它:Nginx laravel配置

http://missouri/

現在我想改變這一點,並使用我的IP地址或我的本地主機在項目名稱之前,如下所示:

http://localhost/missouri/

我尋覓了很多

,發現了很多不同的組合,但沒有一個高效的,這是一般的服務器配置的配置塊:

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我找不到文件。白色頁面錯誤,但是如果我用下面的代碼,並呼籲密蘇里州/它的工作原理:

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

我不是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; 
     } 
} 

我希望它的作品。

+0

感謝您的評論,不幸的是它並沒有爲我工作。 –