Laravelをエックスサーバーにデプロイできない時は、次の5個の原因が考えられます。どれもわたし自身が潜り抜けてきたエラーばかりです^^;
あなたの状況に合った方法をトライしてみてくださいね。
原因① シンボリックエラーがちゃんとできていない
エラーの検証方法としては、まずターミナルを使ってログイン後、デフォルトでプロジェクトが表示されるべきディレクトリ(ドメイン名/public_html)に移動します。
| 1 | cd ドメイン名/public_html | 
ここで【ls -l】コマンドを入力すると、ディレクトリ内のファイルの詳細が表示されます。
シンボリックリンクがちゃんと設定されていれば、下記のように、黄色枠にリンク名、->の後の赤枠に実際に表示するディレクトリが表示されるはずです。

もし上記のように表示されなければ、シンボリックリンクを設定してください。設定方法は下記で解説しています。
原因② PHPのバージョンが古すぎる
特徴としては、下記のようなエラーが出ます。

これはエックスサーバーのPHPが古すぎるために生じます。Laravel8以降を使うのであれば、PHPは7.3.0以上を用意しましょう。
PHPのバージョンの確認方法とバージョン変更方法は下記で解説しています。
原因③ .envファイルをアップロードしていない
特徴としては、下記のようなエラーが出ます。
プロジェクトにいる場所で下記のように入力してください。-aを付けると .env のような非表示ファイルも表示されます。
| 1 | ls -a | 
.envファイルが表示されなければ、作成しましょう。
FTP経由でアップロードでもよいですし、コマンドを使う場合には、下記の2つを入力しましょう。
| 1 2 | cp .env.example .env php artisan key:generate | 
.envファイルにはデータベースの設定等をいれておく必要がありますが、このあたりは下記の記事をご覧ください。
原因④ まだエックスサーバー側の準備が終わっていない
次のような画面がでてきます。

エックスサーバーのサーバーパネル/サブドメイン設定/サブドメイン一覧 でも【反映待ち】になっているかと思います。

設定が完了するまで、しばらく待ちましょう。
原因⑤ .htaccessの設定を行っていない
もし忘れていた場合は、こちらの記事を参考にしてください。
その他のエラー:まずはログを見てみましょう
ログにヒントが隠されていることも多くあります。ターミナルにログインし、プロジェクトをプルした場所に移動します。
| 1 | cd laravel/プロジェクト名 | 
ここからさらに、ログが入っているstorage/logsディレクトリに移動します。
| 1 | cd storage/logs | 
この中のlaravel.logファイルを開きます
| 1 | less laravel.log | 
ログが表示されます。最終行に移動するときは、Windowsの場合は【shiftキー】+ 【>】を押します。
日付+時刻から最新のログを見つけます。そこに書かれたエラーメッセージを確認して、解決の糸口にします。
お役立ちコード
デバック作業で役立つコードをピックアップしますね。
| ls | 今いる場所にあるものを表示 | 
|---|---|
| ls -l | 今いる場所にあるものを詳細表示 | 
| ln -s | シンボリックリンク作成 書き方:ln -s サーバーがアクセスするディレクトリ 実際に表示されるディレクトリ | 
| unlink | シンボリックリンク削除 書き方:unlink 削除するシンボリックリンク名 | 
| rm | ファイル削除 書き方:rm ファイル名 | 
| less | ファイル内確認・編集 書き方:less ファイル名 *:qコマンドで終了 | 
さいごに
エラーがあったときには、まずは原因を見つけていきましょう。
上記の5つのエラー対策の中で使えるものがなければ、エラーログをチェックしてみてください。ブラウザに表示されるエラーメッセージもヒントになります。
なおLaravelプロジェクトをエックスサーバーにデプロイする方法は、前回までで8回にわたって解説しています。併せて参考にしてください。
 
  
  
  
  




