LaravelプロジェクトをWebサーバーにアップロードしようとしていますが、過去2回の試みは失敗しました。ファイルを適切な場所にアップロードしていないと思います。
これは私のWebサーバーの構造です->
すべてのlaravelファイルをpublic_htmlにアップロードする必要があると言ってもいいですか?
これは私のLaravelプロジェクトのディレクトリです:
編集:すべてのファイルをルートフォルダーに追加し、public_htmlに公開しましたが、どのルートも機能していないようです。 (ローカルホストで完全に動作します)。すべてが404をスローします
いいえ。ただし、いくつかのオプションがあります。
最も簡単な方法は、所有しているすべてのファイルを現在のディレクトリ(つまり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
Laravelファイル/フォルダーはルートディレクトリに配置しないでください。
例えばドメインがpublic_html
ディレクトリを指している場合、すべてのコンテンツはそのディレクトリに配置する必要があります。どうやって ?言っておくけど
Bootstrap/paths.phpを開き、'public' => __DIR__.'/../public',
を'public' => __DIR__.'/..',
に変更しました
そして最後に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アプリケーションが動作するはずです。
共有ホスティングでLaravelアプリをホストしようとしている場合、これが役立つ場合があります。
PHP 5.4が必要な場合は、この行を.htaccess
ファイルに追加するか、ホスティングプロバイダーに連絡してください。
AddType application/x-httpd-php54 .php
すべてのLaravelファイルは1つの場所にある必要があります。 Laravelは、そのpublicフォルダーをサーバーに公開しています。このフォルダーは、アプリケーション全体に対する何らかのフロントコントローラーを表します。サーバーの構成に応じて、サーバーパスをそのフォルダーにポイントする必要があります。ご覧の通り、あなたの写真にはwwwのサイトがあります。 wwwは、Unix/Linuxマシンのデフォルトのルートディレクトリです。サーバー構成の内部を見て、ルートディレクトリの場所を検索することをお勧めします。ご覧のとおり、Laravelには既に。htaccessというファイルがあり、Apacheの構成が準備されています。
この問題もあり、最も簡単な方法は、ドメインをパブリックフォルダーにポイントし、それ以外はすべてそのままにしておくことです。
PHPの正しいバージョンを使用するようにしてください。ストレスを軽減してください:)
Laravel 5.xにはpaths.php
はありません
したがって、public/index.php
を編集し、次の行を変更してbootstrap
ディレクトリにピントする必要があります。
require __DIR__.’/../bootstrap/autoload.php’;
$app = require_once __DIR__.’/../bootstrap/app.php’;
詳細については、 this の記事をご覧ください。