Drupal 8のシステム要件
この連載では Drupal 8 を前提としますので、最初に Drupal 8 のシステム要件を確認しておきましょう。Drupal の公式サイトで次の資料が公開されています。
https://www.drupal.org/docs/8/system-requirements
Drupal を動かすには、データベース、PHP、Webサーバーの3つが必要になります。まずデータベースは、MySQL やその互換ソフトウェア(MariaDB、Percona Server)が推奨されています。PHP は(Drupal 8 の場合)バージョン 5.5.9 以上が必要です。Web サーバーは、Apache のほか Nginx も広く使われています。各要素とも他にもサポートされる製品がありますが、最初はここで挙げた最も一般的なものから始めるのが良いでしょう。
Drupal 8のシステム要件一覧表
システム要素 | サポートされる製品/バージョン | 備考 |
---|---|---|
データベース |
MySQL 5.5.3 以上 |
他にPostgreSQL、SQLiteもサポート。 |
PHP | 5.5.9 以上 | 5.6、7 もOK |
Webサーバー |
Apache 2.x |
mod_rewrite(クリーンURLのため) |
Drupal 8 を動かす方法
Drupalを動かすには、次のような方法が考えられます。
- ローカルで動かす方法
- クラウドサービスを利用する方法
- レンタルサーバーを利用する方法
最終的にサイトをホストするにはクラウドサービスやレンタルサーバーを利用することになりますが、サイト構築や開発の過程では、やはりローカル環境が必要になると思います。今回はまず、ローカル環境にインストールする方法を紹介します。ローカル環境で Drupal 8 を動かす方法については、ANNAI マガジンの過去記事 「Drupalのローカル開発環境の構築方法について詳細解説」 に解説があります。
この記事で整理されているように、Drupal のような Web システムをローカル環境で動かすには次の3種類の方法があります。
- ホストOS上で直接実行する方法
- 仮想マシンを利用する方法
- コンテナを利用する方法
以下、順に紹介します。
ホストOS上で直接実行する方法
Drupalは、一般的な LAMP(Linux、Apache、MySQL、PHP)環境で動作します。普段の作業に使う OS は Mac や Windows の人が多いと思いますが、同じ環境で Drupal を動かすには、それぞれの OS 用にビルドされた Apache、MySQL、PHP をインストールする必要があります。これを簡単に実行するお手軽インストールパッケージが複数存在します。
さらに、Drupal のインストールまで含めてサポートしてくれるものとして、Acquia 社が配布している Acquia Dev Desktop や、Bitnami の Drupal Stack が挙げられます。こうしたパッケージを利用すれば、簡単にローカル開発環境を構築できます。Acquia Dev Desktop については、ANNAI マガジンの過去記事 「Acquia Dev Desktopで、Drupal 8のローカル開発環境を構築しよう」 でインストール手順を解説していますのでチェックしてみてください。
Bitnami は、さまざまなオープソースアプリケーションのワンクリック・インストールを実現する自己完結型のパッケージで、既存の環境と干渉することなく目的のアプリケーションを導入できます。使い方は簡単で、ダウンロードページからインストーラをダウンロードして実行するだけです。
- Bitnami Drupal Stack https://bitnami.com/stack/drupal
インストールが完了すると、Drupal Stack Manager Toolという管理画面から MySQL やApache サーバーの起動/停止や構成、PHPMyAdminによるデータベース操作などができます。
Drupalサイトはローカルホストの/drupal/ディレクトリとしてアクセスできます。
ただし、初期状態ではサイトの言語が英語になっているので、管理画面のUIを日本語にするには、次の2つのモジュールを有効にしてから日本語を設定します。
- Language
- Interface Translation
Drupalの言語設定の詳細は改めて紹介したいと思います。
Bitnami Drupal Stack にはコマンドライン管理ツールの Drush も含まれています。Windowsでも専用のバッチファイル(dr.bat)として利用できます。サイトとコマンドプロンプトの文字コードの不一致でメッセージが文字化けする場合は、次のコマンドでUTF-8に合わせることで解決します。 chcp 65001 ブラウザから操作するだけなら特別な調整は不要で、まさにワンクリックでローカルのDrupalサイトを立ち上げることができます。手軽にDrupalを試せる選択肢だと思います。
仮想マシンを利用する方法
デスクトップ OS 上に直接環境を構築する代わりに、Linux 等の仮想マシンを立ち上げて、その中でサイトを構築する方法もあります。ホスト OS とは完全に独立した環境を構築できるほか、より本番環境に近いプラットフォームで開発作業を行える、Linux の豊富な開発ツールが利用できる、クラウド環境との親和性が高い、などのメリットがあります。
こうした環境の多くは、冪等性(べきとうせい=構成を何度実行しても同じ環境が得られること)を保証するためにansibleやchefなどの構成管理ツールを利用しますが、慣れない人にはそのこと自体敷居が高く、手を出しづらい側面もあると思います。
単に手元で使う環境を導入するだけなら、Drupalサイトが動作する仮想マシン環境を丸ごとコピーして使うのが簡単です。仮想マシンの導入を自動化するツールとして Vagrant が広く使われていますが、このツール用の導入パッケージを共有する Vagrant Cloud というサービスがあります。これを利用すれば、Drupal 用に調整した Linux 環境を用意して共有/再利用することができます。
例として、筆者がコミュニティでのデモやハンズオンで使用している環境を紹介します。公式の Centos/7 をベースに、Apache2、PHP、MariaDB および関連ツール類一式を導入したもので、仮想化ソフトウェアとしてVirtualBoxを利用します。maxOS と Windows(64bit)で動作を確認しています。
https://app.vagrantup.com/bkenro/boxes/centos7dsm
使い方は次のとおりです。
- VirtualBoxのインストーラをダウンロードしてインストールします。 https://www.virtualbox.org/wiki/Downloads
- Vagrantのインストーラをダウンロードしてインストールします。 https://www.vagrantup.com/downloads.html
- 作業用のフォルダを作り、次の Vagrantfile(Vagrantの構成ファイル)を作成します。
Vagrant.configure("2") do |config| config.vm.box = "bkenro/centos7dsm" config.vm.network "private_network", ip: "192.168.12.34" config.vm.hostname = "centos7dsm.local" config.vm.provider "virtualbox" do |vb| vb.name = "vm-centos7dsm" vb.customize ["modifyvm", :id, "--memory", "1024"] end config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.synced_folder "vagrant/", "/vagrant", mount_options: ['dmode=777','fmode=777'] config.vm.synced_folder "www/", "/var/www", mount_options: ['dmode=777','fmode=666'] end
- Vagrantfileと同じ場所に vagrant、www、および www/html というフォルダを作成します。これらは仮想マシンとの共有フォルダになります。
- vagrant up コマンドを実行します。Vagrant Cloud で公開しているパッケージのダウンロードと導入が行われた後、仮想マシンが起動します。
仮想マシンには IP アドレス 192.168.12.34 を割り当ててあり、http://192.168.12.34/ で Web サーバーにアクセスできます。上で作成した www/html フォルダが Web サーバーのルートディレクトリに対応しており、ここに Drupal 7/8 のフォルダを展開してサイトをインストールできます。たとえば、www/html の下に Drupal 8 を d8 という名前のフォルダに展開した場合、 http://192.168.12.34/d8/ にアクセスしてインストールを開始できます。MariaDB に d7、d8という名前で(ユーザー名、パスワードも同じ)空のデータベースを作成してあるので、インストール時にそのまま使用できます。 (なお、データベースの root ユーザーのパスワードは ‘root’ に設定)
drush、composer、drupal console といったツールも導入済みです。公式の CentOS/7 がベースなので、Linux の知識があれば導入後は自由にカスタマイズできます。
コンテナを利用する方法
これは Docker コンテナを利用する方法です。やや高度なので、ここでは詳細は触れませんが、弊社スタッフが Drop Fabrik という環境を公開していますので、興味がある方はぜひチェックしてみてください。
https://github.com/blauerberg/dropfabrik
まとめ
今回はローカル環境で Drupal 8 を動かすための選択肢と、その具体例として Bitnami Drupal Stack と Vagrant/VirtualBox の共有パッケージを利用する方法を紹介しました。
次回はクラウドサービスやレンタルサーバーで Drupal を動かす方法を見ていきたいと思います。
関連コンテンツ
- 手軽に本格的な Drupal のローカル開発環境を構築してみよう
- 第 5 回 Drupal 9 / 10 のインストール (2)
- 第 4 回 Drupal 9 / 10 のインストール (1)
- AWS LightsailでDrupalサイトを立ち上げる
- Drupal 8のデモ用インストールプロファイルUmami を日本語化してみた
- Drupal 8インストール方法:XREA編
- Drupal 8インストール方法:ロリポップ編
- Drupal 8インストール方法:エックスサーバー編
- 第5回 Drupal 8のインストール (2)
- Drupal 8インストール方法:さくらのレンタルサーバスタンダードプラン(共用)編
Drupal 8初心者講座バックナンバー
- Drupal 8初心者講座について
- 第1回 歴史に見るDrupalのDNA
- 第2回 Drupalはフレームワークか?CMSか?他のCMSとの比較
- 第3回 Drupalの特徴
- 第4回 Drupal 8のインストール (1)
- 第5回 Drupal 8のインストール(2)
- 第6回 Drupalにコンテンツを投稿してみる
- 第7回 Drupalのボキャブラリとタクソノミーの使い方
- 第8回 コンテンツ管理におけるDrupalと他のCMSとの比較
- 第9回 Drupal 8のブロックシステム
- 第10回 Drupalの標準クエリービルダ Viewsの使い方
- 第11回 Drupalと他のCMSのクエリビルダー機能を比較
- 第12回 Drupal 8の多言語機能と他のCMSやサービスとの比較
- 第13回 Drupalの権限設定とWordPressやMovable Typeとの比較
- 第14回 Drupalのテーマシステムについて
- 第15回 Drupalの拡張モジュールの選定と使い方
- 第16回 Drupalをもっと知りたい方に向けた各種情報