Laravelをエックスサーバーにデプロイできない時の対処法5個

Laravelデプロイ

Laravelをエックスサーバーにデプロイできない時は、次の5個の原因が考えられます。どれもわたし自身が潜り抜けてきたエラーばかりです^^;

あなたの状況に合った方法をトライしてみてくださいね。

原因① シンボリックエラーがちゃんとできていない

エラーの検証方法としては、まずターミナルを使ってログイン後、デフォルトでプロジェクトが表示されるべきディレクトリ(ドメイン名/public_html)に移動します。

ここで【ls -l】コマンドを入力すると、ディレクトリ内のファイルの詳細が表示されます。

シンボリックリンクがちゃんと設定されていれば、下記のように、黄色枠にリンク名、->の後の赤枠に実際に表示するディレクトリが表示されるはずです。

もし上記のように表示されなければ、シンボリックリンクを設定してください。設定方法は下記で解説しています。

原因② PHPのバージョンが古すぎる

特徴としては、下記のようなエラーが出ます。

syntax error, unexpected ‘) Unexpected Error: Illuminate/Testing/Concerns/TestDatabases.php

これはエックスサーバーのPHPが古すぎるために生じます。Laravel8以降を使うのであれば、PHPは7.3.0以上を用意しましょう。

PHPのバージョンの確認方法とバージョン変更方法は下記で解説しています。

原因③ .envファイルをアップロードしていない

特徴としては、下記のようなエラーが出ます。

Class env does not exit

プロジェクトにいる場所で下記のように入力してください。-aを付けると .env のような非表示ファイルも表示されます。

.envファイルが表示されなければ、作成しましょう。

FTP経由でアップロードでもよいですし、コマンドを使う場合には、下記の2つを入力しましょう。

.envファイルにはデータベースの設定等をいれておく必要がありますが、このあたりは下記の記事をご覧ください。

原因④ まだエックスサーバー側の準備が終わっていない

次のような画面がでてきます。

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

設定が完了するまで、しばらく待ちましょう。

原因⑤ .htaccessの設定を行っていない

もし忘れていた場合は、こちらの記事を参考にしてください。

その他のエラー:まずはログを見てみましょう

ログにヒントが隠されていることも多くあります。ターミナルにログインし、プロジェクトをプルした場所に移動します。

ここからさらに、ログが入っているstorage/logsディレクトリに移動します。

この中のlaravel.logファイルを開きます

ログが表示されます。最終行に移動するときは、Windowsの場合は【shiftキー】+ 【>】を押します。

日付+時刻から最新のログを見つけます。そこに書かれたエラーメッセージを確認して、解決の糸口にします。

お役立ちコード

デバック作業で役立つコードをピックアップしますね。

ls 今いる場所にあるものを表示
ls -l 今いる場所にあるものを詳細表示
ln -s シンボリックリンク作成

書き方:ln -s サーバーがアクセスするディレクトリ 実際に表示されるディレクトリ

unlink シンボリックリンク削除

書き方:unlink 削除するシンボリックリンク名

rm ファイル削除

書き方:rm ファイル名

less ファイル内確認・編集

書き方:less ファイル名

*:qコマンドで終了

さいごに

エラーがあったときには、まずは原因を見つけていきましょう。

上記の5つのエラー対策の中で使えるものがなければ、エラーログをチェックしてみてください。ブラウザに表示されるエラーメッセージもヒントになります。

なおLaravelプロジェクトをエックスサーバーにデプロイする方法は、前回までで8回にわたって解説しています。併せて参考にしてください。

 

コメント

タイトルとURLをコピーしました