Umi Blog

ウミブログ

Drupal 9 を動かすための環境要件・Linux ディストリビューション

2020.05.21
大野 裕太郎
Drupal 9 を動かすための環境要件・Linux ディストリビューション

こんにちは。大野です。Drupal 9 のリリースがあと2週間に迫ってきましたね!今回はその Drupal 9 を動かすのに必要なミドルウェアのバージョンやLinux のディストリビューション(以下、便宜上OSと呼びます)についてまとめてみました。

結論から言うと次の通りです。

  • Drupal 9 を動かすには2020年以降にリリースされたOSが必要
  • Drupal 8 から Drupal 9 へのアップグレードは簡単だけど、インフラのアップグレード対応が必要になる

さて、このブログを書く動機から説明します。勉強会のネタを探すため Drupal 9 のβ版を試そうと思い、いつも使っているUbuntu 18.04(2年前にリリースされたOS)の開発環境で動かそうとしたところ、ミドルウェアのバージョンが低くて動かすことができず、このくらいの時期のOSなら当然動くと勝手に思っていたので大変衝撃的でした。そこで「一体どのOSなら動くんだ」と言う疑念が生まれ、一般的にサーバーとしてよく利用されるOSにイントールされるミドルウェアのバージョンを調べることにしました。せっかくなのでブログを通じて皆さんに共有することにしました。

※ミドルウェアとはあるアプリケーションを動かすために必要なソフトウェアのことを指します。Drupalで言えば Apache などのウェブサーバー、PHP、MySQLなどのデータベースサーバーがそれにあたります。

Drupal 9 の環境要件

Drupal 9 の環境要件が書かれているページに動作するミドルウェアのバージョンが書かれています。ソフトウェア名とバージョンだけ抜粋したものが次の表です。(2020年5月20日現在)

Drupal 9 に必要なミドルウェア

ミドルウェアバージョン
Apache2.4.7以上
PHP7.3 or 7.4
MySQL / Percona5.7.8以上
MariaDB10.3.7以上
PostgreSQL10以上
SQLite3.26以上

ミドルウェアのバージョンだけで、どのOSで動くか分かる方はかなりのインフラオタクかその筋の方だと思いますが、普通はこれだけ見ても分からないので、現在もサポートが続いているメジャーなサーバー用の Linux ディストリビューションに搭載されるミドルウェアのバージョンとサポート期限をまとめてみました。

メジャーな Linux ディストリビューションのミドルウェアバージョン

OSApachePHPMySQLMariaDBPostgreSQLSQLiteリリース日更新期限
CentOS 62.2.155.3.35.5.62-8.4.203.6.202011年7月9日2020年11月30日
CentOS 72.4.65.4.165.5.625.5.659.2.243.7.172014年7月7日2024年6月30日
CentOS 8.12.4.377.3, 7.28.0.2010.3.1712.1, 10.6, 9.63.26.02020年1月15日2029年5月
Ubuntu 18.04 LTS2.4.297.25.7.3010.1.44103.22.02018年4月26日2023年4月
Ubuntu 20.04 LTS2.4.417.48.0.2010.3.223.31.12020年4月23日2025年4月
  • Ubuntu の有償の延長保証 ESM(Extended Security Maintenance) は対象外としました。
  • RHEL は使う機会があまりないので調べていませんが、おそらく CentOS と同じです。
  • CentOS の Software Collections リポジトリはサポート期間が短いため考慮していません。
  • CentOS 8 以降はマイナーバージョンが上がると、モジュールシステムによりインストールできるアプリケーションのバージョンが選べるようになったそうです。

ここに記載されたバージョンはOS標準のパッケージ管理システムのリポジトリを利用してインストールできるものです。非公式のリポジトリを使ったインストールはサポート期限がOSと異なるためここでは考慮しませんでした。

各Linuxディストリビューションの Drupal 動作可否

Drupal が動くかどうかだけでまとめたものが次の表です。ついでに Drupal 7/8 も含めました。

OSDrupal 7Drupal 8Drupal 9
CentOS 6✓
CentOS 7✓
CentOS 8.0✓ 1✓
CentOS 8.1✓ 1✓✓ 2
Ubuntu 18.04 LTS✓ 1✓
Ubuntu 20.04 LTS✓ 1✓✓
  1. PHP 7.x がインストールされます。Drupal 7 のコアは正式に PHP 7.x をサポートしていますが、拡張モジュールが PHP 7 に対応していないことが多く、動作しない可能性があります。
  2. 標準の状態では PHP 7.2 が入るため Drupal 9 は動作しません。CentOS のモジュールシステムで PHP 7.3 を使う設定をする必要があります。

OSが正式にサポートする環境で Drupal 9 を動かせるのは CerntOS 8.1 と Ubuntu 20.04 だけと言うことがわかりました。つまり2020年以降にリリースされたOSでしか動かないようです。Drupal 9 の正式版は2020年にリリースされるので、当たり前と言えば当たり前ですね。。

なお上記の表で Drupal 9 が動作しないOSでも、非公式リポジトリ使ったり各ミドルウェアの公式リポジトリを登録、自前でコンパイルしたりすれば動作させることは可能です。サポート期限がOSと異なるため保守を続けていく上では注意が必要です。

セキュリティやPHP8に関する余談

公式のサポート期限が切れたミドルウェアのセキュリティ

ミドルウェアの公式のサポート期限は切れてるけど、OSはサポート期限内にあってセキュリティの脆弱性が見つかった時にがどうなるかご存知でしょうか? OSがサポート期間内かつ公式のリポジトリで管理されているものであれば、脆弱性の問題のみバックポート(関連する部分だけ上位バージョンから取り込む)されてセキュリティが担保されるそうです。

ただし公式のリポジトリだからと言って手放しで安心できるわけではない様です。CentOS の PHP は本当に安全かによると脆弱性の対応版のリリースまでに時間が掛かるケースが多く、長いと2ヶ月掛かるそうです。緊急性の高いセキュリティリリースがあった場合は注意が必要ですね。

PHP 8 への対応

2020年の年末に PHP 8 のリリースが予定されています。今回の目玉はJIT (Just In Time) と言うコンパイル機能で、これまでの中間コード生成方式よりもより一層動作が早くなるらしいです。一説によると C++ でコンパイルしたコードより早くなるとか。サーバースピードが気になる私にとってはとても楽しみなバージョンです。Drupal 9 はまだ PHP 8 に未対応とのことですが、対応作業中と公式サイトに書かれていたので、おそらく Drupal 9.1 か 9.2 で正式対応するのではないでしょうか。

まとめ

Drupal 8 から Drupal 9 へのアップグレードは「過去10年の中で1番簡単」と謳われていますが、それは Drupal 単体の話であって、実際にはインフラ環境を含めたアップグレードが必要になり、それなりに移行が大変になるのではないかと思いました。お客さんに Drupal のアップグレードを提案する際は、インフラのアップグレードも外せないことをお伝えしておいた方が無難ですね。

大野 裕太郎

大野 裕太郎

大野 裕太郎常務取締役 / COO

スタジオ・ウミ COO。Drupal 歴は20年を超え、コンサルティングや要件定義でプロジェクトを牽引しながら、社内のインフラ整備も自ら手がけています。サイトをいかに速く安定して表示させるかにこだわるパフォーマンス志向の技術者。座右の銘は「面白いことは、納得いくまでやる」。趣味は日本酒、車、バイク、男の料理。

\

小さなご意見も、私たちにとっては大きなヒントです!

ぜひ率直なご感想をお寄せください

/

この記事はお役に立ちましたか?

スタジオ・ウミのメンバー

Masters of Drupal Engineering.

人に、技術に、品質に、まっすぐ。

Download
会社案内をダウンロード
Contact
お気軽にお問い合わせください
Recruit
スタジオ・ウミの採用情報