2017-06-26 12 views
0

私はnginxでLaravel 4.2を使用しようとしています。私はVPS(Dreamhost)を持っていて、ユーザーのルートパスにLaravelフレームワークを入れて(/home/vi360/)、公開パスは/home/vi360/vide360.com.brです。Laravel 4.2 on Nginx取得404(VPS)

私はLaravelのためにnginxを設定する方法を研究していましたが、何の成功も得られない。唯一のホームページは(www.vide360.com.br)を開いているが、(/home/vi360/app/routes.phpによって監督)他のすべてのページには、次のように私は/home/vi360/nginx/vide360.com.br/vide360.confを作成している404

エラーで戻ってきている。

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

    root /home/vi360/vide360.com.br; 
    index index.php index.html index.htm; 

    server_name [server ip address]; 

    location/{ 
     try_files $uri $uri/ /index.php?$query_string; 
    } 

    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 
} 

私はおそらく間違っていますか?

答えて

1

パブリックフォルダ名を変更したと思います。

Laravelはpublicフォルダ内のファイルを検索します。あなたのlaravelアプリケーションが/home/vi360で実行されているとしたら、パブリックフォルダのパスは/home/vi360/publicになります。

は、その後、あなたのnginxの上で、それが戻ってpublicからvide360.com.brフォルダの名前を変更してみて、それは罰金になります

root /home/vi360/public; 

ようにする必要があります。これは、フレームワークが起動して、それをpublic/index.phpファイルに転送することによって要求に従うためです。

設定が変更された後、nginxとphp-fpmを再起動することを忘れないでください。

EDIT

開発者は、他のフォルダへpublicフォルダからlaravelの公開ディレクトリを変更したい場合は、vide360.com.br言い、その後、App\Providers\AppServiceProvider.phpに位置していますあなたのApplication Service Provider (ASP)を編集します。 registerメソッドの下にnew public folder nameのコードを追加します。

$this->app->bind('path.public', function() { 
     return base_path().'/vide360.com.br'; 
    }); 
+0

ありがとうございました!私はすでに '/home/vi360/boostrap/path.php'を変更してパブリックフォルダを 'vide360.com.br'と認識しました(これはサーバーのパブリックのデフォルトパスです)。 Btw、インデックスページが開かれている場合、フレームワークは適切にブートストラップしていますか? –

+0

@DanielGroppoコードがお客様のシナリオに更新されました。コードがそれを検出できるように、新しい場所をアプリケーションにバインドする必要があります。ブートストラップパスを変更すると、アプリケーションは新しい場所を検出するのではなく、新しいフォルダにのみ要求が送信されます。 –