プライム・ストラテジーの福田です。
KUSANAGIは超高速CMS実行環境と謳うとおり、WordPressなどを始めとするCMSを簡単かつ高速に実行できるように設計されていますが、アプリケーションフレームワークや、静的サイトもデプロイできるようになっています。
今回は、LAMPオプションを使ってLaravelのデフォルトページを表示するところまでこぎつける方法をご紹介します。
想定する環境
今回は、開発環境での運用を想定して以下の構成で構築します。
- OS: KUSANAGI 9
- ドメイン名: mydomain.example.com (HTTPSなし)
- プロファイル名: myartisan
- RDBMS: MySQL
- データベース名: laravelmydom
- データベースユーザー名: laravelmydom
- データベースパスワード: Pa..w0rd
- コマンド実行ユーザー: kusanagi
Laravel構築の準備をする
まずはなによりもプロファイルのセットアップが必要になります。これは、以下のコマンドで完了できます。
kusanagi provision --lamp --fqdn mydomain.example.com --noemail --dbname laravelmydom --dbuser laravelmydom --dbpass Pa..w0rd myartisan
上記のコマンドを実行すると、/home/kusanagi
の下にmyartisanという名前でディレクトリが作成され、その中にドキュメントルートやログディレクトリが作成されます。また、kusanagi initで指定した既定のRDBMSにlaravelmydom
という名前でデータベースとユーザーが作成されます。
また、KUSANAGIのprovision
コマンドの他のオプション解説については、こちらのリンクをクリックして確認できます。
ここまで実行したら、次のステップである、Laravelの導入へと進みます。
Laravelの導入
前のステップまでで、すでにサイトへのアクセスは可能となっています。
ですが、もちろん中身はまだ空なのでLaravelの画面は表示されません。そこで、Laravelをダウンロードしてファイルを設置します。
KUSANAGIにはcomposer
が標準で入っているので、以下のコマンドを実行して構築します。
cd ~kusanagi/myartisan
composer create-project laravel/laravel laravel-app
しかし、これだけでは以下の理由によりまだ動作しません。
- Laravelの本体が別ディレクトリに配置されていること
- LaravelのドキュメントルートはKUSANAGI標準とは異なること
これを解決するため、先程のコマンドに続いて、以下のコマンドを実行してください。
rm -r DocumentRoot
ln -s laravel-app/public DocumentRoot
このコマンドでは、KUSANAGIの規定のドキュメントルートディレクトリを削除し、Laravelのドキュメントルートディレクトリへのシンボリックリンクに置き換えるように張ります。
以上を実行し、サイトにアクセスすると、以下に示すスクリーンショットのような画面が表示されるはずです。
データベースのセットアップ
データベース接続するためには、環境変数ファイルを書き換える必要があります。
これをするためには、お好みのエディタでlaravel-app/.env
を開き、適切な値になるよう、以下のように書き換えます:
APP_URL=http://mydomain.example.com
DB_DATABASE=laravelmydom
DB_USERNAME=laravelmydom
DB_PASSWORD=Pa..w0rd
以上のように書き換えたら、保存してDBと通信ができるかどうかを確認します。このためには、以下のコマンドを実行してください:
cd laravel-app
php artisan migrate
以下のように、すべてのマイグレーションでDONEと出ていればOKです。
まとめ
ここまですれば、あとはいつも通り開発やデプロイをしていくことができます。
なお本番で利用する場合はHTTPSの利用など、他に注意するべきベストプラクティスがあります。
詳しくはLaravelの設定や、デプロイ時の注意事項などの、公式ドキュメントも合わせてご確認ください。
Laravelも高速に実行できる環境、KUSANAGIをぜひお試しください。