web-dev-qa-db-ja.com

LaravelプロジェクトをWebサーバーにアップロードする

LaravelプロジェクトをWebサーバーにアップロードしようとしていますが、過去2回の試みは失敗しました。ファイルを適切な場所にアップロードしていないと思います。

これは私のWebサーバーの構造です-> WebServer Structure

すべてのlaravelファイルをpublic_htmlにアップロードする必要があると言ってもいいですか?

これは私のLaravelプロジェクトのディレクトリです:

Laravel Project Directory

編集:すべてのファイルをルートフォルダーに追加し、public_htmlに公開しましたが、どのルートも機能していないようです。 (ローカルホストで完全に動作します)。すべてが404をスローします

54

いいえ。ただし、いくつかのオプションがあります。

最も簡単な方法は、所有しているすべてのファイルを現在のディレクトリ(つまりcPanelユーザーのホームディレクトリ)にアップロードし、publicの内容をpublic_htmlに入れることです。そうすれば、ディレクトリ構造は次のようになります(少し複雑ですが、動作します)。

/
    .composer/
    .cpanel/
    ...
    app/                 <- your laravel app directory
    etc/
    bootstrap/           <- your laravel bootstrap directory
    mail/
    public_html/         <- your laravel public directory
    vendor/
    artisan              <- your project's root files

正しいパブリックディレクトリを指すようにbootstrap/paths.phpを編集する必要がある場合もあります。

もう1つの解決策は、これらのファイルをすべて「ルート」ディレクトリに入れたくない場合、それらをルートディレクトリにある独自のディレクトリ(「laravel」など)に配置し、パスを編集して正しく動作させることです。ただし、publicの内容をpublic_htmlに入れる必要がありますが、今回はpublic_html/index.phpを編集して、アプリケーションを正しくbootstrapします。この方法では、フォルダー構造はかなり整頓されます(ただし、フレームワークの設計された構造をさらに混乱させるために、パスに関するいくつかの頭痛の種があります)。

/
    .composer/
    .cpanel/
    ...
    etc/
    laravel/      <- a directory containing all your project files except public
        app/
        bootstrap/
        vendor/
        artisan
    mail/
    public_html/  <- your laravel public directory
43
alexrussell

Laravelファイル/フォルダーはルートディレクトリに配置しないでください。

例えばドメインがpublic_htmlディレクトリを指している場合、すべてのコンテンツはそのディレクトリに配置する必要があります。どうやって ?言っておくけど

  1. パブリックHTML内のすべてのファイルとフォルダー(パブリックフォルダーを含む)をコピーします。
  2. パブリックフォルダーのすべてのコンテンツをコピーし、ドキュメントルート(つまり、public_html)に貼り付けます
  3. パブリックフォルダーを削除する
  4. Bootstrap/paths.phpを開き、'public' => __DIR__.'/../public','public' => __DIR__.'/..',に変更しました

  5. そして最後にindex.phpで、

    変更

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

into

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';

Laravelアプリケーションが動作するはずです。

8
Raj Sf

共有ホスティングでLaravelアプリをホストしようとしている場合、これが役立つ場合があります。

共有ホスティング#1でLaravelをホスト

共有ホスティング#2でLaravelをホスト

PHP 5.4が必要な場合は、この行を.htaccessファイルに追加するか、ホスティングプロバイダーに連絡してください。

AddType application/x-httpd-php54 .php

5
Abhinandan N.M.

すべてのLaravelファイルは1つの場所にある必要があります。 Laravelは、そのpublicフォルダーをサーバーに公開しています。このフォルダーは、アプリケーション全体に対する何らかのフロントコントローラーを表します。サーバーの構成に応じて、サーバーパスをそのフォルダーにポイントする必要があります。ご覧の通り、あなたの写真にはwwwのサイトがあります。 wwwは、Unix/Linuxマシンのデフォルトのルートディレクトリです。サーバー構成の内部を見て、ルートディレクトリの場所を検索することをお勧めします。ご覧のとおり、Laravelには既に。htaccessというファイルがあり、Apacheの構成が準備されています。

1
carousel

この問題もあり、最も簡単な方法は、ドメインをパブリックフォルダーにポイントし、それ以外はすべてそのままにしておくことです。

PHPの正しいバージョンを使用するようにしてください。ストレスを軽減してください:)

1
Overcomer

Laravel 5.xにはpaths.phpはありません

したがって、public/index.phpを編集し、次の行を変更してbootstrapディレクトリにピントする必要があります。

require __DIR__.’/../bootstrap/autoload.php’;

$app = require_once __DIR__.’/../bootstrap/app.php’;

詳細については、 this の記事をご覧ください。

0