2017-10-31 27 views
0

私はグローバルプロジェクト(web wrapp)と複数のプロジェクトを持っています。ファイルの構造laravel nginx異なるプロジェクトへのルーツ

project/ 
    application/ 
    index.php 
    project1/ 
    project2(on laravel)/ 
     public/ 
     index.php 

私はプロジェクトを呼び出すと、私はindex.phpを取得します。 url/project2でproject2/public/index.phpを実行します。以下 nginxのconfに:この構成で

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 

    root /home/user/projects/project/application; 
    index index.php index.html index.htm; 

    location /project2/ { 
    root /home/user/projects/project/application/project2/public/; 
    try_files $uri $uri/ /index.php$is_args$args; 
    } 

    location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.1-fpm.sock; 
    fastcgi_read_timeout 600; 
    } 
} 

/Project2のを頼むとき、私はnginxのの404を取得します。私は

location /project2/ { 
    root /home/user/projects/project/application/project2/public; 
    try_files $uri $uri/ /project2/public/index.php$is_args$args; 
} 

location /project2/ { 
    root /home/user/projects/project/application/project2/public/; 
    try_files $uri $uri/ /index.php$is_args$args; 
} 

をreplaseた場合、私はLaravelから見つかりませんます。私の問題を解決することは可能ですか?

答えて

0

あなたはProject2のlocationrootを設定する必要はありません。私は、この時点で問題がlaravelにあった、と思っ

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 

    root /home/user/projects/project/application; 
    index index.php index.html index.htm; 

    location ~ /project2 { 
     try_files /project2/public/$uri /project2/public/$uri/ /project2/public/index.php?q=$uri&$args; 
    } 

    location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/run/php/php7.1-fpm.sock; 
     fastcgi_read_timeout 600; 
    } 
    } 
+0

私を助けてくれてありがとう。あなたのソリューションは私の(laravelのnot foundページ)と同じ結果を返しましたが、symbol〜〜/ project2の前にサーバーを壊しました。 – sawfly

+0

奇数、他のサーバで実行中のものはありますか?またはこの1つのサイトだけ? –

+0

8つのプロジェクトがあります。これはサイトであると言っても間違いありません。それらは内部の会社を使用するためのWebアプリケーションであり、1つのプロジェクトでそれらを実行するために非常に固有のものです – sawfly

0

:これを試してみてください

。私はすべてのルートをRoute::prefix('project2', function(){ ... });に入れていました。私は使用

location /project2/ { 
    root /home/user/projects/project/application/project2/public; 
    try_files $uri $uri/ /project2/public/index.php$is_args$args; 
} 
関連する問題