🛠️

CORESERVER V2 で Laravel を動かしてみよう

2022/02/13に公開

最初は 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 (今回は無関係)

composer

example-app の下で composer のセットアップをして composer.phar を作る。
./composer.phar install でインストール。

動作確認

example.com にアクセスする。

まとめ

今回、初めて CORESERVE V2 を使ってみたが、既存の V1 に比べて柔軟性が高く、複数サービスを運用するためのディレクトリ構成も扱いやすいようになっていると感じた。(ただ初期費用がかかるのがネック)

レンタルサーバーで Laravel を運用するナレッジは少ないけれども、composer と artisan が使えればそんなに困ることはないし、インフラの面倒を見るのがダルい人が月500円くらいでサービス運用したい場合には悪くない選択肢では。

Discussion