ロリポップでDrupal9のサイトを動かす


はじめに

仕事でDrupalを使っており、プライベートでもDrupalを触りたかった。
せっかくなのでレンタルサーバーにDrupalを入れてみたので、今後同じようなことする人がいればぜひ参考にしてみてください。

環境

macOS Monterey 12.0.1

ロリポップ
Drupal9.3.6(2021年2月19日現在の最新版)
Apache
MySQL5.7
PHP8.0

導入手順

PHP設定

PHP8.0有効化

Drupal9を利用する場合PHP8.0以上が推奨されています。
PHP Requirements
※ソース忘れてしまいましたが、PHP7系は近々サポート終了になるってどこでみた気が・・・・

ロリポップの管理画面「PHP設定」より、DrupalをインストールするドメインのPHPバージョンを8.0(CGI版)に変更します。

php.ini設定

Drupalを動かせるようにphp.iniを設定します。
ロリポップの管理画面「PHP設定」より、Drupalをインストールするドメインのphp.ini設定を選択
以下のように設定変更します。

mbstring.encoding_translation: Off
opache.enable                : Off
opache.enable_cli            : Off

DB作成

Drupalのデータを保存するデータベースを作成します。
ロリポップの管理画面「データベース」より、データベースを新規作成。
・データベース名
・パスワード
を入力して保存。

SSH有効化

ロリポップ管理画面「SSH」より、SSHを有効化します。
なおライトプランでは使用できません。

Drupalインストール先フォルダの作成

ロリポップサーバーにSSH接続してDrupalをインストールするフォルダを作成します。

SSH接続

SSH有効後、ターミナルでSSH接続します。

~$ ssh <アカウント>@<サーバー> -p 2222

実際にターミナルにコマンドを打ち込むときは「ssh @ -p 2222」を入力してください。
・上記コマンドの「~」はコマンドを実行するディレクトリ(場所)を表しています。
・上記コマンドの「$」は「これ以降がコマンドですよ」と言う目印です。

フォルダ作成

SSH接続できたらDrupalをインストールするフォルダを作成します。
ついでに作成したフォルダにアクセスします。

~$ mkdir web/drupal
~$ cd web/drupal

PHPのパスを通す

Drupalのインストールや拡張モジュールのインストールにcomposerを使用します。
composerを使用するためにPHPにパスを通します。

drupal$ echo "export PATH=/usr/local/php/8.0/bin:$PATH" >> ~/.bash_profile
drupal$ source ~/.bash_profile
drupal$ php -v
PHP 8.0.16 (cli) (built: Feb 18 2022 10:24:34) ( NTS )...
drupal$ composer --version
Composer version 2.1.3 2021-06-09 16:31:20

公開ディレクトリ設定

ロリポップ管理画面「独自ドメイン設定」または「サブドメイン設定」より、Drupalサイトの公開ディレクトリを設定します。
使用するドメインの設定を開き、公開フォルダに下記を入力します。

drupal/web

Drupalインストール

先述したDrupalインストール先フォルダにDrupalをインストールします。

recommend-projectからDrupalをダウンロード

drupal$ composer create-project drupal/recommended-project .

初期設定

ブラウザにアクセスし、のホームパスにアクセスします。
初期設定画面が表示されるので画面に従って設定していきます。

途中データベースの構成の設定画面が表示されたときは以下のように設定します。

Drupal設定項目 ロリポップDB設定値
データベース名 データベース名
データベースのユーザー名 ユーザー名
データベースのパスワード パスワード
ホスト データベースホスト

最後に下記のようにトップ画面が表示されればインストール完了です。

サイトの状態を確認

管理用ツールバーの「レポート」 > 「サイトの状態」にアクセスします。
見つかったエラーに下記のようなエラーが発生していると思います。

HTTPホストヘッダの偽装を防ぐために、ホストの設定をしておきます。

/sites/default/settings.phpを編集します。

/sites/default/settings.php 712行目あたり
$settings['trusted_host_patterns'] = [
   '^example\.com$',
   '^.+\.example\.com$',
];

当該ファイルは読み込み専用ファイルとなっているので強制保存してください。

サイトの状態を確認してエラーが消えていることを確認できれば作業完了です。
お疲れさまでした。