ColorfulBoxにLaravelをデプロイする手順。エラー対策も。

投稿日:

エックスサーバーへのLaravelのデプロイは詳しいサイトが沢山ありますが、
カラフルボックスへのLaravelのデプロイ情報ってまだまだ少ないですよね。

先日、ColorfulBoxサーバーでLaravelが動くかテストしてみた所、
苦戦しつつも、ちゃんとデプロイできたので、共有していきます。

 

ColorfulBoxにLaravelをデプロイする手順

基本的にはこちらのブログのXサーバーにLaravelをデプロイする方法の手順通りなのですが、一部変更しないとカラフルボックスだと表示されないので、解説していきます。

上のリンク先の記事を見ながらやってください。

手順としては、

 

  1. アドオンドメインでドメイン作成
  2. ColorfulBoxにSSHで接続
  3. PHPのバージョン確認(基本変更しなくて大丈夫)
  4. Composerのインストール(ていうか多分入ってる)
  5. Node Brewのインストール
  6. GITHUBからLaravelをデプロイ
  7. データベースとの接続
  8. シンボリックリンク作成(ここ落とし穴)

0. アドオンドメインの作成

まず、Laravelをインストールするドメインを作成します。

 

基本的にはアドオンドメインって奴を使います。サブドメインの場合はサブドメインを選んでください。

上記のような感じに入力して、ドメイン追加を押せば、public_html配下に、ドメインが作成されます。

Laravelをインストールするディレクトリはこんなイメージです。

 

1 + 2. SSH接続してPHPのVr確認

次にColorfulBoxにSSH接続します。

これは公式サポートページにやり方が書いてあります。

https://help.colorfulbox.jp/manual/ssh-use/

 

次に、SSH接続したら、そのまま php -v と打ってみてください。

PHPのバージョンが分かります。当方の場合はPHP 7.4.19 と出てます。

これがインストールするLaravelで使えるバージョンかを確認してください。
自分の使うLaravelで使えないPHPバージョンなら、バージョンを変更します。

バージョン変更のやり方は先程のブログへ。

 

3 + 4. ComposerとNodebrewのインストール

ComposerとNodebrewをインストールします。これもやり方は先程のブログへ。

「どのディレクトリにインストールすればいいの?」という疑問が出ると思います。

自分は、〇〇.com直下のディレクトリにインストールしました。
単純にpublic_html直下でも大丈夫なはずです。

 

もし、nodebrewのインストールでつまづいたら、この記事が参考になりますよ。

 

5. GITHUBからLaravelをデプロイ

すでにPC上、もしくは他のサーバー上にあるLaravelをGIT経由でクローンします。

で、このクローンする場所ですが、

先程も出しましたが、〇〇.comの直下です。そこにLaravelフォルダをまるっとクローンします。

クローンの仕方がよく分からんという場合は、こちらの記事

GITでレンタルサーバーにアップロード。やり方とコマンドを完全解説!

 

vendorフォルダのインストール

で、クローンだけだと、vendor フォルダがない状態なので、
Laravelフォルダ内にCDコマンドで移動して、composer install を再度やります。

 

composer install でエラーが出る場合

自分の場合も何度かエラーが出たんですが、
Class 'hogehoge' not found みたいなエラーが出た場合、クローン元で入れてたパッケージがたぶん入ってないんだと思います。

その場合、ネット検索して、必要なパッケージをインストールし直すと大抵直ります。上の画像なら、Jenssegersというパッケージが足りなかったので、Jenssegersの公式へ行き、そこに書かれたインストールコマンド
composer require jenssegers/mongodb を打ってインストールし、またcomposer install を再度実行した所、エラーがなくなりました。

それでも、パッケージのインストール自体が失敗したり、キャッシュ削除などを繰り返してもエラーが消えない場合は、

Laravelフォルダ直下にあるcomposer.lockをまるごと削除します
(念の為、コピーを取っておきましょう)

削除後、もう一回、composer install をやると直ります。
こちらのフォーラムに書いてあった方法です。

 

6. データベースと接続

で、これがちょっとXサーバーとは異なります。

まず、データベースを作成します。

カラフルボックスのCPanelにログインして、MySQLデータベースウィザードに行きます。そこで新しいデータベースを作成してください。(データベース名、ユーザーネームとパスワードをメモっておく)

 

次に .envファイルをクローン元からコピーしてきます。

App keyはもう一度作り直すので、空欄にしておきます。

で、DB_HOSTはlocalhost にします。

「え?localhost!? サーバーなのに!?」と心配になったと思うんですが、実際にColorfulBoxのphpMyAdminにログインしてみてください。

localhostって出てるはずです。なぜかというと、unix socketっていう接続方法だかららしいです。

で、ポートはここに出てる番号、3306。

あとは、今作成したデータベース名、ユーザーネーム、パスワードを入れて、
これで保存、FTPなどでLaravelフォルダに保存してください。
(特に.envにunix socketに関する記述は不要です。これだけで接続できます)

 

APP_KEY再生成

ここまでできたら、またSSHで、

php artisan key:generate

と打てば、先程消したAPP_KEYが生成されます。

 

Migrationする

次にphp artisan migrate と打ちます。(ディレクトリはLaravelフォルダ内)
これで、データベースにテーブルが全部できてるはずです。

後は、データベース内のデータがすでにある場合は、phpMyAdminからエクスポート→インポートでコピーしましょう。

phpMyAdminでデータベースの一部テーブルのみインポートのやり方。初心者でも分かるように解説。

phpMyAdminでデータベースを丸ごとインポートのやり方。初心者でもできるように解説。

 

7. シンボリックリンク作成(ここ落とし穴)

Laravel自体のインストール、データベースの設定と、一通り終わりました。

この時点で、https://〇〇.com/ laravelフォルダ名/ public とブラウザに打てば、Laravelサイトは表示されると思います。

 

と言っても、まだドメイン自体をColorfulBoxに紐づけてないでしょうから、
その場合は、ColorfulBoxが提供してるサブドメインか、hostsファイルをイジる事で、表示させる事ができます。

 

でも、500 internal server error とか 404 not found とか出るかもしれませんが、
現時点では大丈夫です。

先程の解説ブログの最後の手順「シンボリックリンクの作成」をやっていくんですが、Xサーバーと同じ書き方をしても、500番エラーでこれがうまく作動しません。

まず、シンボリックリンク作成コマンドを打ちます。

ln -s /homeからpublicまでのパス /homeから〇〇.comまでのパス

という感じにします。例えば、下のような構成なら、

ln -s /home/nebi/public_html/nebikatsu.com/nebikatsu/public /home/nebi/public_html/nebikatsu.com/

こうなります。

これでシンボリックリンクができます。

ただ、これでブラウザから〇〇.comにアクセスしても、500 internal server errorできっと表示されません。

ここで、さらに2つの.htaccessを編集する必要があります。

 

1. publicフォルダ内に.htaccessを設置

まず、Laravelフォルダ/publicの中に、.htaccessファイルがあるか確認してください。

「え?そんな所にないでしょ?」と思いますか?必要なんです!

無いなら作成します。

コピーしました

コピー

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</ifModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</ifModule>

 

これをそのまま、コピーして、.htaccess としてpublicフォルダに保存します。

こちらのサイトを参考にさせて頂きました。

 

2. 〇〇.com直下の.htaccessを編集する

さらに今度は、〇〇.com直下に.htaccessがあるか確認してください。
あれば、それを開いて追記。無ければ作ります。

コピーしました

コピー

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ /home/nebi/public_html/nebikatsu.com/nebikatsu/public/$1 [QSA,L]
</IfModule>

このRewriteRuleの所のパスをご自身のパスに書き換えてください。
ここ、Xサーバーだったら、publicとだけ書けばいいんですが、ColorfulBoxだと、フルパスを書かないと500エラーになります。

これで、保存し、ブラウザから〇〇.comにアクセスしてみてください。
ちゃんと表示されれば、Laravelサイトの設置完了です。

 

Storageフォルダがない場合

Storageフォルダが移行できてない場合は、

php artisan storage:link コマンド

をした後、StorageフォルダをFTPでアップロードすればOKです。

 

ColorfulBoxへのLaravelデプロイ、かなりハマりましたが、
ちゃんと使えますのでご安心を。

 
  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門