最新のDrupal9をAWSにインストールしてみる
- はじめに
- 事前準備
- 完成図
- 手順
- 1. EC2インスタンス(Linuxサーバー)の作成
- 2. Apache、PHPなどをインストールしWEBサーバーの機能構築
- 3. WEBブラウザからEC2のホームページを確認
- 4. RDSインスタンス(DB(MySQL)サーバー)の作成
- 5. EC2にMySQLクライアントをインストールしEC2からRDSへのアクセス確認
- 6. EC2にDrupalダウンロード(インストーラーをWEBブラウザから実行できるように配置)
- 7. WEBブラウザからDrupalインストール
- 8. WEBブラウザからDrupalのTopページを表示することを確認
- おわりに
はじめに
皆さん、Drupal(ドルーパル)をご存じでしょうか?
オープンソースソフトウェアのコンテンツ管理システム:CMS(Contents Management System)の一つです。
聞いたことない方も多いかもしれません、私も仕事で聞くまで知りませんでした^^;
CMSで有名なのはWordPressですが、株式会社DataSignの2021年8月版の調査結果によりますと1位 WordPress(3110件)、4位 Drupal(104件)みたいです。
今回はこのDrupalの最新版(2021/7/6現在)であるDrupal9.2.0をAWSにインストールし、ブラウザからDrupalのTopページを表示させるところまでしたいと思います。
※AWSは無料枠の範疇でしようと思ってますので固定IPアドレス化などはしませんw
※2021/10/12追記
こちらの記事によりますとDrupal10は2022/6のリリースを予定としているみたいです。
事前準備
以下の項目が必要となりますので事前に準備お願いします。
- AWSのアカウントを用意
- TeraTermを用意(こちらで使用するバージョンは4.105です)
完成図
こんな感じで構築をイメージしています(雑な絵ですみませんw)
LAMPですね^^
手順
以下の流れで順に対応していきたいと思います。
- EC2インスタンス(Linuxサーバー)の作成
- Apache、PHPなどをインストールしWEBサーバーの機能構築
- WEBブラウザからEC2のホームページを確認
- RDSインスタンス(DB(MySQL)サーバー)の作成
- EC2にMySQLクライアントをインストールしEC2からRDSへのアクセス確認
- EC2にDrupalダウンロード(インストーラーをWEBブラウザから実行できるように配置)
- WEBブラウザからDrupalインストール
- WEBブラウザからDrupalのTopページを表示することを確認
1. EC2インスタンス(Linuxサーバー)の作成
AWSログイン後にサービスからEC2を選択します。
マシンイメージには無料枠のAmazon Linux 2AMIを選択します。
インスタンスタイプも無料枠のt2.microを選択していることを確認し確認と作成ボタンを押します。
このページでは特に何もせずに起動ボタンを押します。
すると以下の画面のようにキーペアを作成する画面になるので、キーペア名にキーペア名を何か適当に(今回はkeyとします)入力し、キーペアのダウンロードボタンを押してPCのどこかにキーペアファイル(key.pem)を保存しておきます。
保存したらインスタンスの作成ボタンを押します。
※これは後ほどTera Termからの遠隔操作で使用しますので無くさないようにしましょう。無くなったらアクセスできなくなりますのでご注意を。
以下の画面が表示されたら赤丸の個所をクリックします。
生成したインスタンスの情報が確認できるので、パブリックIPアドレス(今回は54.65.61.202)とプライベートIPアドレス(172.31.38.68)を忘れないようにどこかにメモしておきます。
2. Apache、PHPなどをインストールしWEBサーバーの機能構築
Tera Termを起動し、生成したインスタンスのパブリックIPアドレスを入力しSSHで接続するためOKボタンを押します。
初回接続時のみ以下の画面出ますので続行ボタンを押します。
ユーザー名は「ec2-user」、パスワードはなし、認証方式にRSAを使う、インスタンス生成の時に保存したキーペアファイル(key.pem)を選択した後にOKボタンを押します。
以下の画面が表示されたら接続成功しています。
以下のコマンドを上から順に入力しLinuxを更新しておきます(途中の選択肢はすべてyで)
sudo su -
amazon-linux-extras -yinstall epel
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum update -y
以下のコマンドを上から順に入力しApacheをインストールしサービスを開始します。
yum -y install httpd
service httpd start
以下のコマンドを上から順に入力しPHP8.0をインストールします。
※なぜPHP8.0かというとDrupal9の要件でPHPが8以上必須のためです^^;
https://www.drupal.org/docs/system-requirements/php-requirements
yum -y install php80 php80-php php80-php-mbstring php80-php-pdo php80-php-xml php80-php-fpm php80-php-mysqlnd php80-php-gd php80-php-opcache
alternatives --install /usr/bin/php php /usr/bin/php80 1
以下のコマンドでhttpd.confを編集開始し、AllowOverrideをNoneからAllに変更しておきます。
vim /etc/httpd/conf/httpd.conf
以下のコマンドでTopページをPHPで作成しておきます(中身は何でもいいですが、今回はPHPの情報を表示させるページにしています)
vim /var/www/html/index.php
以下のコマンドでApahceのサービスを再起動します。
service httpd restart
3. WEBブラウザからEC2のホームページを確認
AWSに戻りEC2インスタンスのセキュリティグループのインバウンドルールにHTTPを許可するようにします。
タイプをHTTP、ソースに0.0.0.0/0を選択し、ルールを保存ボタンを押します。
ブラウザ上でhttp://インスタンスのパブリックIPアドレス(今回の場合はhttp://54.65.61.202)を入力してみます。
以下のような画面が表示されていたらEC2でApache+PHPが無事動作しています。
4. RDSインスタンス(DB(MySQL)サーバー)の作成
AWSのサービスからRDSを選択します。
データベースからデータベースの作成を押します。
エンジンのオプションはMySQLを選択します。
テンプレートは無料利用枠、DBインスタンス識別子はdrupalを入力します。
パスワードを設定しておきます。
※後ほどDrupalのインストール時に必要になりますので忘れないようにして下さい。
ストレージの自動スケーリングを有効にするのチェックを外しておきます。
データベース用に新しいセキュリティグループを割り当てておきます。
今回はDatabaseSecGroupとしておきました。
アベイラビリティゾーンにap-northeast-1aを選択しておきます。
追加設定を開いて、最初のデータベース名にdrupalを入力しておきます。
データベースの作成を押します。
ステータスが利用可能になるまで待ち(数分かかると思います)、利用可能になったらDB識別子の個所をクリックします。
VPCセキュリティグループのインバウンドを設定するべく、赤丸の個所を順次クリックしていきます。
ルールを追加ボタンを押します。
タイプをMYSQL/Aurora、ソースにEC2のプライベートIPアドレスを選択し、ルールを保存ボタンを押します。
5. EC2にMySQLクライアントをインストールしEC2からRDSへのアクセス確認
Tera Term上で以下のコマンドを入力しMySQLクライアントをインストールします。
yum -y install mysql
以下のコマンドを入力しEC2からRDSにアクセスできることを確認します。
mysql -h drupal.cyy0bgoeffbi.ap-northeast-1.rds.amazonaws.com -P 3306 -u admin -p
以下のような表示であればRDSにアクセスできています。
quitを入力してmysqlを終了します。
6. EC2にDrupalダウンロード(インストーラーをWEBブラウザから実行できるように配置)
以下のコマンドを上から順に入力しDrupalをダウンロードし展開します。
cd /var/www/html/
wget https://ftp.drupal.org/files/projects/drupal-9.2.0.tar.gz
tar -xzvf drupal-9.2.0.tar.gz
cd /var/www/html/drupal-9.2.0/sites/default
cp -pr default.settings.php settings.php
chmod a+w settings.php
mkdir files
chmod a+w files
以下のコマンドでApahceのサービスを再起動します。
service httpd restart
7. WEBブラウザからDrupalインストール
ブラウザ上でhttp://インスタンスのパブリックIPアドレス/drupal-9.2.0(今回の場合はhttp://54.65.61.202/drupal-9.2.0)を入力してみます。
以下のような画面が表示されていたらEC2でDrupalのインストーラーが無事動作しています。
Choose languageをEnglishに変更し、Save and Continueボタンを押します。
Save and Continueボタンを押します。
Database nameをdrupal、Database usernameをadmin、Database passwordをRDSのインスタンス作成時に設定したものに設定します。
ADVANCED OPTIONSを開いて、Hostにdrupal.cyy0bgoeffbi.ap-northeast-1.rds.amazonaws.comを設定し、Save and Continueボタンを押します。
インストール中の画面に切り替わるのでしばらく待ちます。
しばらくすると以下の画面が表示されますので。
Site nameとSite email addressに適当な内容を入力します(内容はなんでもいいです)
UsernameとPasswordに管理用情報を入力します(Drupalの管理で必要になります)
赤丸をすべて入力したら、Save and Continueボタンを押します。
以下の画面が表示されたらDrupalのインストールが成功です。
8. WEBブラウザからDrupalのTopページを表示することを確認
ブラウザ上でhttp://インスタンスのパブリックIPアドレス/drupal-9.2.0(今回の場合はhttp://54.65.61.202/drupal-9.2.0)を再度入力してみます。
今度はDrupalのTop画面が表示されましたね^^
おわりに
お疲れさまでした、結構やることあって長かったですね^^;
今回導入したのはDrupalのCoreの部分だけですが、拡張モジュールもいろいろありそうで面白そうですね。
時間があれば今度はDrupalの機能について触れてみたいと思います。
最後に今回参考にさせていただいたURLを記載させて頂きます。