Craft CMS のサーバー要件について

前回の記事で触れたように、Craft 3 で動いているサイトもいずれアップグレードの機会が訪れます。

その際に気をつけたいのが、Craft 3 と Craft 4 で必須要件が異なる点。。。
場合によってはサーバーの手配も必要になるかもしれません。

そこで、Craft CMS のシステム要件について改めて確認しておきましょう。
これは Craft CMS Advent Calendar 2022 3日目の記事です。

バージョンごとの要件を比較

Craft CMS のシステム要件は、公式ドキュメントに記載されています。(実際に確認される際は、メニュー上部にあるプルダウンで対象バージョンの切り替えが可能です。)

Requirements | Craft CMS Documentation | 3.x
https://craftcms.com/docs/3.x/requirements.html

Requirements | Craft CMS Documentation | 4.x
https://craftcms.com/docs/4.x/requirements.html

それぞれ違いがある項目について、比較してみます。

最低限必要なシステム構成

Craft 3Craft 4
PHPPHP 7.2.5 以上PHP 8.0.2 以上
データベースMySQL 5.5 以上(InnoDB)
MariaDB 5.5 以上
PostgreSQL 9.5 以上
MySQL 5.7.8 以上(InnoDB)
MariaDB 10.2.7 以上
PostgreSQL 10 以上
PHP 割り当てメモリ256MB 以上256MB 以上
ディスクスペース200MB 以上200MB 以上

Craft 3 と Craft 4 では必須となる PHP およびデータベースのバージョンが異なるため、インストール先のサーバーがそもそも対応可能かを確認してください。

開発元が推奨するシステム構成

Craft 3Craft 4
PHPPHP 7.4 以上PHP 8.1 以上
データベースMySQL 5.7 以上(InnoDB)
MariaDB 10.5 以上
PostgreSQL 9.5 以上
MySQL 5.7.8 以上(InnoDB)
MariaDB 10.5 以上
PostgreSQL 10 以上
PHP 割り当てメモリ512MB 以上512MB 以上
ディスクスペース200MB 以上200MB 以上
ComposerComposer 1.3 以上Composer 2.0 以上

Craft 3 本体は PHP 8.0.x に対応しています。

ただし、追加インストールした個々のプラグインが PHP 8.0.x をサポートしていることが条件となるため、必要なプラグインが対応済みかどうかは事前に確認してください。

PHP 拡張モジュール

Craft 3Craft 4
ctype
cURL
GD または ImageMagick
iconv
JSON
Multibyte String
OpenSSL
PCRE
PDO MySQL Driver または PDO PostgreSQL Driver
PDO
Reflection
SPL
Zip
DOM


ctype
cURL
GD または ImageMagick
iconv
JSON
Multibyte String
OpenSSL
PCRE
PDO MySQL Driver または PDO PostgreSQL Driver
PDO
Reflection
SPL
Zip
DOM
BCMath
Intl

Craft 4 では、新たに BCMathIntl が必須となりました。

Freeform プラグインなど Craft 3 で利用するにあたり既に追加インストールしている場合は問題ありませんが、インストール先のサーバーが対応可能か、こちらも確認が必要です。

追加で確認しておきたいこと

max_input_vars

過去記事でも触れていますが、PHP の max_input_vars がデフォルト値の 1,000 で足りるかを検討してください。

自分の場合、Matrix フィールドを多用するエントリが「編集画面下段にある入力項目だけ保存されない」ことで早めに気づけたのですが、サーバーを移設した際など PHP の設定漏れがないよう注意しましょう。

最大アップロードサイズ

Craft CMS のシステムデフォルトのアップロード上限サイズは 16MB です。
そのため、PHP の設定で upload_max_filesizepost_max_size に余裕を持たせていても、アップロードエラーになるかもしれません。

その場合、config/general.phpmaxUploadFileSize を追記しましょう。

'maxUploadFileSize' => 134217728,  // 最大アップロードサイズを 128MB に変更

General Settings | Craft CMS Documentation | 4.x
https://craftcms.com/docs/4.x/config/general.html#maxuploadfilesize

最後に

備忘録を兼ねて Craft CMS のシステム要件を確認してみました。
いずれも Yii2 ベースなこともあり、それほど違いはないんですよね。

にも関わらずアップグレードが大変なのだとしたら、独自プラグインやテンプレートのカスタマイズによるところが大きいのだな、と改めて。