前回の記事で触れたように、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 3 | Craft 4 | |
---|---|---|
PHP | PHP 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 3 | Craft 4 | |
---|---|---|
PHP | PHP 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 以上 |
Composer | Composer 1.3 以上 | Composer 2.0 以上 |
Craft 3 本体は PHP 8.0.x に対応しています。
ただし、追加インストールした個々のプラグインが PHP 8.0.x をサポートしていることが条件となるため、必要なプラグインが対応済みかどうかは事前に確認してください。
PHP 拡張モジュール
Craft 3 | Craft 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 では、新たに BCMath
と Intl
が必須となりました。
Freeform プラグインなど Craft 3 で利用するにあたり既に追加インストールしている場合は問題ありませんが、インストール先のサーバーが対応可能か、こちらも確認が必要です。
追加で確認しておきたいこと
max_input_vars
過去記事でも触れていますが、PHP の max_input_vars
がデフォルト値の 1,000
で足りるかを検討してください。
自分の場合、Matrix フィールドを多用するエントリが「編集画面下段にある入力項目だけ保存されない」ことで早めに気づけたのですが、サーバーを移設した際など PHP の設定漏れがないよう注意しましょう。
最大アップロードサイズ
Craft CMS のシステムデフォルトのアップロード上限サイズは 16MB
です。
そのため、PHP の設定で upload_max_filesize
や post_max_size
に余裕を持たせていても、アップロードエラーになるかもしれません。
その場合、config/general.php
に maxUploadFileSize
を追記しましょう。
'maxUploadFileSize' => 134217728, // 最大アップロードサイズを 128MB に変更
General Settings | Craft CMS Documentation | 4.x
https://craftcms.com/docs/4.x/config/general.html#maxuploadfilesize
最後に
備忘録を兼ねて Craft CMS のシステム要件を確認してみました。
いずれも Yii2 ベースなこともあり、それほど違いはないんですよね。
にも関わらずアップグレードが大変なのだとしたら、独自プラグインやテンプレートのカスタマイズによるところが大きいのだな、と改めて。