カラフルボックス

カラフルボックスでLaravel9アプリを公開する方法を紹介します。

カラフルボックスでLaravelアプリを公開したいんだけど・・・

そんな疑問を解消すべく今回はカラフルボックスでLaravelアプリケーションを公開するっていうことをやっていきます。

この記事でやること

  • カラフルボックスの環境確認
  • カラフルボックスのPHPのアップグレード
  • Composerのインストール
  • Laravelアプリケーションをカラフルボックスにアップロード
  • データベースの作成
  • 作成したデータベースとLaravelアプリケーションの紐付け
  • .envの作成
  • composer install
  • .htaccessの作成
  • ブラウザからアクセス!!

ローカルで作成したLaravelアプリケーションをアップロードして公開するので、同じ様なことをしたい方は参考にしてみてください。

ポイント

作業に関してはSSH接続するか、カラフルボックスの管理画面から使えるTerminalを使ってやるといいですよ。

Laravelアプリを公開していきましょう。

カラフルボックスの環境確認

カラフルボックスのサーバー内がまずはどんな環境なのかを確認します。

$ php -v
PHP 7.4.30 (cli) (built: Jun 16 2022 05:53:23) ( NTS )

$ composer --version
Composer version 2.2.12 2022-04-13 16:42:25

phpとcomposerは入っていますね。phpもcliだしcomposerと相性良さそうです。

phpのバージョンも他のないかな?と思ってみてみると8.0使えそうな予感がする。

$ ls /usr/local/bin
ea-php53  ea-php54  ea-php55  ea-php56  ea-php70  ea-php71  ea-php72  ea-php73  ea-php74  ea-php80  lsphp  php

やっていきましょう。

Laravelアプリを公開する手順

  • カラフルボックスのPHPのアップグレード
  • Composerのインストール
  • Laravelアプリケーションをカラフルボックスにアップロード
  • データベースの作成
  • 作成したデータベースとLaravelアプリケーションの紐付け
  • .envの作成
  • composer install
  • .htaccessの作成
  • ブラウザからアクセス!!

公開するアプリケーション

今回カラフルボックスで公開するのはこんな感じのLaravelアプリケーション。

それぞれ使っているバージョンなんかはこんな感じです。

$ php -v
PHP 8.1.0 (cli) (built: Nov 30 2021 06:20:01) (NTS)

$ php artisan -V
Laravel Framework 9.31.0

$ composer --version
Composer version 2.1.14 2021-11-30 10:51:43

$ mysql --version
mysql  Ver 15.1 Distrib 10.8.2-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

このアプリケーションをカラフルボックスで動かしていきますよ。

ドメインを追加する

公開するドメインがなければ何もできないので、ドメインをカラフルボックスに登録していなかったら登録しましょう。

面倒だったら初期ドメインで公開することもできますよ。


以下の記事でお名前.comで取得したドメインを使えるようにするっていうことやっているので、よかったら参考にしてみてください。

カラフルボックス

カラフルボックスにお名前.comで取得したドメインを使う方法を紹介します。

2022/9/24  

そんな疑問を解消するためにこの記事ではお名前.comで取得したドメインをカラフルボックスで使用する方 ...

PHPのアップグレードを行う

デフォルトでphp -vすると7.4.30になるので、これを8以上に変更したいです。ea-php81が入っているのが確認できたので、これにします。

と思ったんですが、ea-php81の中にphpが見当たらないのでea-php80にすることにしました。(これだとphp8.0とかなんだよなあ・・・)

# シンボリックリンクの作成
/home/〇〇

$ mkdir bin
$ ln -s /opt/cpanel/ea-php80/root/usr/bin/php $HOME/bin/php
$ vi ~/.bash_profile

# PATHの記述を以下に変更。
PATH=$HOME/bin:$PATH
$ source ~/.bash_profile

これでバージョンを再度確認すると8.0.23になりましたね。

$ php -v
PHP 8.0.23 (cli) (built: Sep  8 2022 13:26:09) ( NTS )

ドメインのPHPバージョンも変更する

ドメインのPHPバージョンも変更して合わせるようにします。

これしないとアクセスした時の画面表示時にエラーが出ました。

Composerのインストールを行う

既にインストールされているComposer使ってもできそうな気がするけど、コマンド打つと権限関係でエラー起きそうなので新たにインストールします。

Composerのサイトを参照しながらインストール。

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

$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"

インストールしたら移動させます。

$ mkdir -p .config/composer/vendor/bin/
$ mv composer.phar .config/composer/vendor/bin/composer

.bash_profileに移動させたパスを追加します。

$ vi ~/.bash_profile
PATH=$HOME/.config/composer/vendor/bin:$HOME/bin:$PATH
$ source ~/.bash_profile

これで確認するとComposerのバージョンが2.4.2になりましたね。

$ composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.4.2 2022-09-14 16:11:15

ローカルのLaravelアプリケーションフォルダをカラフルボックスにアップロードする

カラフルボックスにアップロードする際にはFTPソフトを使ってアップロードします。

以下の記事でFTPソフトでの接続方法は書いているからよかったら参考にしてみてください。

カラフルボックス

カラフルボックスでFTP(SSL)/SFTP接続する方法を紹介します。

2022/9/26  

そんな悩みを解消するべくこの記事ではカラフルボックスでFTP接続する方法を書いていきます。 接続情報 ...

Laravelアプリをアップロードする

vendor以外のLaravelアプリケーションのファイルたちをアップロードします。

これでファイルたちはカラフルボックスのサーバーにアップロードできました。

composer install

Laravelアプリケーションをアップロードしたディレクトリに移動してcomposer installします。

# composer installしたらダメだったので、composer update
$ composer update

.envの作成

本番用の.envを作成しましょう。

APP_NAME=MyApp
APP_ENV=production
APP_DEBUG=false
APP_URL=https://自分のドメイン
APP_KEY=

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=作成したユーザー名
DB_PASSWORD=作成したパスワード

APP_KEYの作成

APP_KEYをコマンドで作成します。

$ php artisan key:generate

一応実行したら、.envのAPP_KEYに値が書き込まれるか確認してみてください。

カラフルボックスでデータベースを作成する

今回のアプリケーションではデータベースを使うので、カラフルボックスでデータベースを作成します。

ここで設定するデータベース名やパスワードなどは後でアプリケーションから接続する際に使うので覚えておきましょう。

データベースを作成する

cPanelからMySQLデータベースを選択。

データベース名を入力して作成です。

ユーザーを作成する

データベースにアクセスできるユーザーも作成します。

ユーザーをデータベースに追加する

作成したユーザーをデータベースに追加します。

  • ユーザー・・・作成したユーザー
  • データベース・・・作成したデータベース

権限も与えておきます。

これでデータベースとデータベースユーザーの作成は完了です。

データベース接続情報の変更

今作成したデータベースに接続できるように.envの情報を編集しましょう。

APP_NAME=MyApp
APP_ENV=production
APP_DEBUG=false
APP_URL=http://〇〇
APP_KEY=〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=作成したデータベース名
DB_USERNAME=作成したユーザー名
DB_PASSWORD=作成したパスワード

migrateを実行する

データベース接続情報が正しければ、ちゃんとmigrateできるはずです。

$ php artisan migrate

これでデータベースにテーブルができました。

データの挿入

カラフルボックスの管理画面からデータを入れたり、Seederを使って入れてもいいんですが面倒なのでコマンドでやります。

$ mysql -u 作成したDBユーザー名 -p
# パスワードを入力

$ use 作成したデータベース名

# 適当に表示するために入れておきます。
$ insert into todos(id, text) values(1, "writing");

.htaccessの作成

そのままだとLaravelの画面を表示できないので、.htaccessをいじります。カラフルボックスのドキュメントルートは以下です。

  • 初期ドメイン・・・/home/kyhmxnhk/public_html
  • 追加したドメイン・・・/home/kyhmxnhk/public_html/ドメイン名

今回は追加したドメインなので下の方ですね。ドキュメントルートの流れは変えられないので、.htaccessをいじって向き先をLaravelアプリケーションに変更します。

.htaccessを編集する

#/home/kyhmxnhk/public_html/ドメイン名

$ vim .htaccess
<Ifmodule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(.*)$ app/public/$1 [QSA,L]
</IfModule>

RewriteRule ^(.*)$ app/public/$1 [QSA,L]のappは自分のアプリケーションフォルダ名にしてください。

cacheコマンドを実行する

Laravelのページにデプロイプロセスの中で実行するように書かれているので、実行します。

アプリケーションをプロダクションへデプロイする場合、デプロイプロセスの中で、確実にconfig:cache Artisanコマンドを実行してください。

多くのルートを持つ大きなアプリケーションを構築した場合、デプロイプロセス中に、route:cache Artisanコマンドを確実に実行すべきでしょう。

実機環境へアプリケーションをデプロイする場合は、その手順の中でview:cache Artisanコマンドを実行すべきでしょう。

Laravel9.xデプロイ
$ php artisan config:cache
$ php artisan route:cache
$ php artisan view:cache

ブラウザから確認する

ここまでやったらブラウザから確認すると表示されました。

色々設定する項目はあって大変だったかもしれません。お疲れ様でした。カラフルボックスはLaravelのインストールも簡単なので、使ってみるのもいいかもしれませんね。

-カラフルボックス