CORESERVER V2 で Laravel を動かしてみよう
最初は Heroku で Laravel を動かそうと思ったけれども、Hobby プランは何かと制約あるし、Production プランだと $25/month は趣味で動かすにしてはちょっと高いな~と思って、いわゆる普通のレンタルサーバーである CORESERVER V2 で動かすことにした。
環境
- Laravel 9
- CORESERVER V2 プラン CORE-X
- PHP 8.0
- MariaDB 10.4
CORESERVER の設定
ドメインやら SSL やら SSH の設定
割愛
標準 PHP バージョンの変更
7.4 がデフォルトだが、Laravel 9 の最低要件である 8.0 にする。
これをするだけでコマンドラインの php
のバージョンが8になるので嬉しい。(V1 では php74cli
みたいに打たないといけないのでダルかった)
psr の無効化
そのまま composer install
するとこんな感じのエラーがでてしまう。
Problem 1
- ext-psr is present at version 1.0.0 and cannot be modified by Composer
- symfony/service-contracts v3.0.0 conflicts with ext-psr <1.1|>=2.
- symfony/service-contracts is locked to version v3.0.0 and an update of this package was not requested.
PHP Extensions
の設定から psr
のチェックを外して拡張モジュールとしての psr
を無効にする。
display_errors
ドメイン(サービス)ごとに display_errors
の設定ができるので、セットアップ中は任意で On
にする。
DB
CORESERVER V2 だと MariaDB 10.4 が動いている模様。
Laravel Sail で入る MySQL 8.0 とは完全互換ではないので、ローカルの開発環境を MariaDB にしたほうがいいかもしれない。
デプロイ
ディレクトリ構成
- domains
- example.com
- .htpasswd (今回は無関係)
- example-app (
git clone
なりunzip
なりで Laravel プロジェクトのリポジトリを配置する) - private_html -> example-app/public (デフォルトでは public_html にシンボリックリンクが張られているので、一度削除して Laravel プロジェクトの public に張り直す)
- public_ftp (今回は無関係)
- public_html (今回は無関係)
- example.com
composer
example-app
の下で composer のセットアップをして composer.phar
を作る。
./composer.phar install
でインストール。
動作確認
example.com にアクセスする。
まとめ
今回、初めて CORESERVE V2 を使ってみたが、既存の V1 に比べて柔軟性が高く、複数サービスを運用するためのディレクトリ構成も扱いやすいようになっていると感じた。(ただ初期費用がかかるのがネック)
レンタルサーバーで Laravel を運用するナレッジは少ないけれども、composer と artisan が使えればそんなに困ることはないし、インフラの面倒を見るのがダルい人が月500円くらいでサービス運用したい場合には悪くない選択肢では。
Discussion