Xserverが今なら最大50%OFF! 2022年11月25日(金)12:00まで

Laravelで作られたサイトを他のサーバーに移転する手順

この記事は約7分で読めます。
本文は約4491文字です

WordPressサイトのサーバー移転は、手順は決まっており、プラグインも揃っていて、今では誰でも簡単にできる作業の一つです。

しかし、PHPのフレームワークのLaravelで作られたサイトをサーバー移転する場合はどうでしょうか?

自分でLaravelをインストールして構築したサイトであれば、まだいいでしょう。

他人がレンタルサーバーにLaravelをインストールして構築したサイトを移転する場合は一気にハードルが上がります。

この記事は、他人がレンタルサーバーにLaravelをインストールして構築したサイトを移転した時のメモです。

この記事を読むことで以下のような疑問が解消し、Laravelを触ったことが無い初心者でもサーバー移転することができるようになるでしょう。

こんな疑問にお答えします!
  • Laravelが動作するレンタルサーバーを知りたい
  • Laravelをサーバー移転する時の手順を知りたい
  • Laravelをサーバー移転する時の注意点・トラブルと対処方法を知りたい
この記事の内容

Laravelが動くレンタルサーバーは?

composerがインストールできるサーバーであれば、Laravelは動くと思います。

Laravelを動かしているサーバーとしてよく見かけるのが以下の2つです。

Laravelが動くレンタルサーバー
  • Xserver
  • さくらサーバー

特にさくらサーバーでは、公式サイトでLaravelの導入手順が説明されています。

Laravelのサイトは他のサイトにコピーしても動かない

Laravelを導入したことが無い人が、見よう見真似でファイル一式を他のサーバーにコピーしてもトラブルになることが多いです。

単純にコピーしただけでは、500エラーが出やすく、原因もわかりにくいです。

Laravelを新規にインストールして、venderディレクトリも再構築する必要があります。

Laravelのサイトがデータベースを使っているかどうかを調べるには?

.envファイルの中身を確認します

DB_*という項目にDB設定の記載があれば、DBを使用している可能性があります。

記載がない場合は、DBを使用していません。

resources/views/page/を確認します

DBを使用していない場合は、DB以外にサイトのHTMLを出力するphpにHTML一式が書かれている必要があります。

resources/views/page/以下に*.blade.phpというファイルがあれば、それはwordpressで言うところのテンプレートファイルになります。

*.blade.phpというファイルの中身を見て、サイトのHTMLと対応が取れるのであればDBを使用せずにページを表示しています。

Laravelのサイトを他のサイトに移転する手順(DB未使用の場合)

STEP
サイトのファイル一式をサーバーにアップロードする

Laravelのサイトのファイル一式を移転先にアップロードする。

ディレクトリの構造などを移転元から変更しないようにします。

例えば、Xserverの公開ディレクトリはpublic_html以下にありますが、laravelのサイトはその上の階層にLaravelがインストールされていることが多いです。

公開ディレクトリの上位にもファイルがある場合は、上位ディレクトリから一式を他のサーバーにコピーします。

STEP
Composerをインストールする

Composerのインストールは数行のコマンドをSSHにコピペするだけの簡単な作業です。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

ハッシュ値の不一致でエラーが起きやすいので、公式サイトを必ず確認します。

STEP
Laravelインストーラーをインストールする

Laravelをインストールするコマンドでよく見かけるのが、次のコマンドです。

composer create-project laravel/laravel .

このコマンドは、laravelを現在のディレクトリにインストールしてくれるのですが、laravelのファイルが既にある場所では実行できません。

composer create-projectを分解して、laravelのインストーラーだけまずはインストールします。

composer global require "laravel/installer" --prefer-dist
STEP
composer installを実行

LaravelインストーラーだけではLaravelは動かないので、venderディレクトリなど必要なファイルが用意されるようにします。

composer.jsonファイルがあれば、composer installコマンドで必要なファイルが用意されます。

この時、composer.lockとvenderディレクトリは削除しておきます。

composer install
STEP
.envファイルを修正する

.envファイルに正しい情報が記載されていないと、Laravelが動作しません。

DBを使用していないサイトの場合、必要なのは1つです。

  • APP_*の項目

APP_URLをインストールしたドメインに書き換えます(例: APP_URL=https://example.com (空白を開けないこと))。

wwwの有り無しもAPP_URLの指定に従いますので、www有りで公開したい場合はwww有りのURLを記載します。

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:<ランダムな文字列>
APP_DEBUG=true
APP_URL=https://example.com

DBを使用する場合は、DBの接続情報も設定する必要があります。

Laravelは、DBの使用が必須ではありません。移転元でDB接続情報が未設定であればDBを使用していません。

DB_CONNECTION=mysql
DB_HOST=
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
STEP
サイトが表示できれば完了です

サイトの表示を確認して500エラーや表示崩れなどが無ければ大丈夫です。

よくあるトラブル

Laravelのサイトを他のサーバーに移すと500エラーで表示できないトラブルが起こりやすいです。

PHPのバージョンが古い

LaravelはPHP 7以上じゃないとインストールできませんでした。

PHP 7.4にしてから移転作業をしましょう。

さくらサーバーの場合は、コンパネからドメイン毎にPHPバージョンを変更できないので、php.cgiを用意して公開ディレクトリ毎にPHPバージョンを設定します。

リダイレクトループになってしまう

リダイレクトループや500エラーになった時は以下の項目をチェックします。

  • .htaccessの間違いはないか?
  • composer installを実行し忘れてないか?
  • .envファイルがあるか?
  • .envファイルの内容は正しいか?

まとめ

この記事ではレンタルサーバーに構築されたLaravelのサイトを他のサーバーに移転する時の手順をまとめました。

Laravelのサイトを移転する時にわかりにくいのは、通常のLaravelのインストール手順と異なることです。

そこで悩むのは、以下の2つです。

  • 移転元からファイル一式をコピーしていいのかどうか?
  • コピーすべきはどのファイルか?

移転元のLaravelのサイトのphpファイルをそのまま使う前提なので、Laravelを新規にインストールするのではなく、以下の手順で行います。

  • 移転元のファイル一式をディレクトリ階層を維持しながらコピー
  • composerをインストール
  • laravelのインストーラーをインストール
  • composer.lockとvernderディレクトリを削除
  • composer installを実行
  • .envファイルを移転先に合わせて書き換える
Laravelが動作するレンタルサーバーを知りたい

Laravelはcomposerが動くサーバーであればインストールできます。

XserverやさくらサーバーでLaravelを動かしているユーザーが多いです。

Laravelをサーバー移転する時の手順を知りたい

Laravelをサーバー移転する時にはDBを使用しているかどうかで手順が変わります。

  • DBを使用していない場合は、ファイル一式をサーバーにアップロードしてからLaravelをインストールすれば完了です。
  • DBを使用している場合は、DBのダンプファイルをインポートする作業が必要です。
Laravelをサーバー移転する時の注意点・トラブルと対処方法を知りたい

Laravelサイトを移転した時に問題となるのはPHPバージョンの違いや、リダイレクトループになるケースが多いです。

参考なったらシェアお願いします!

この記事を書いた人

サーバーソムリエのアバター サーバーソムリエ レンタルサーバー鑑定士

国内のあらゆるレンタルサーバーを使用、管理した経験があります。サーバー選びからWordpressを使ったサイト運営まで丸っとお任せください。あなた様のご希望にそった本当に使える最適なサーバーをご紹介します。

コメントを閉じる

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

この記事の内容