ロリポップでDrupal 9を動かす2021


概要

  • ロリポップに Drupal 9 を導入するときに若干手間取ったので備忘録。
  • 2021/09/13に書いています
    • Qiitaは後から編集すると記事のタイムスタンプが変わってしまう仕様なので念のためここに書いておきます。

今回試した環境

  • Drupal 9.2.5
  • ロリポップ・スタンダードプラン

前提

  • ここではレンタルサーバの使い方、SSHやDNSなどの仕組みはだいたいわかっている前提で進めます。また、ロリポップのコントロールパネルの説明は簡略化しています。
  • 試しに入れてみようと思った時のメモなので、本番運用はあまり想定していません。
  • 以下は独自ドメインにアクセスするとルート直下でDrupalが表示される、という前提の設定になります。

ロリポップの初期設定

PHP7.4にする。

  • コントロールパネルで「独自ドメイン設定」もしくは「サブドメイン設定」を行い、ドメインに対して公開フォルダを指定します。
  • 「PHP設定」に行き、上記で設定したドメインに対し、バージョンを7.4(CGI版)にします。

OPCacheを有効にする。

  • php.iniの設定で opcache.enable とopcache.enable_cli をOnにします。

SSHでComposerを使えるようにする。

  • SSHを有効にします。
  • SSHでログインするとコマンドラインでは php5.5 が認識されているので、7.4に変えます。
$ php -v
PHP 5.5.35 (cli).....
$ ls -1 /usr/local/php
5.2
5.3
5.4
5.5
5.6
7.1
7.3
7.4
$ echo "export PATH=/usr/local/php/7.4/bin:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
$ php -v
PHP 7.4.12 (cli).....

データベースを作成する

  • 適当に作ってください。データベース名、データベースホスト、ユーザー名を控え、パスワードを覚えておきます。
    • ただしロリポップはパスワードを忘れてもコントロールパネルで確認できます(この仕様どうなの)。

Drupalのインストール

ファイルの展開

  • SSHでログインし、公開フォルダに移動します。
  • ComposerでDrupalをインストール
$ composer create-project drupal/recommended-project .

ルートディレクトリの変更

  • ComposerでインストールしたDrupalはwebというサブディレクトリに入っているので、コントロールパネルのドメイン設定で公開ディレクトリの後ろに/webを追加しておく。

Drupalの初期設定

ブラウザでアクセス。

日本語が良ければ日本語を選択。

ここはお好きに。

ここで設定を一旦中断(データベースのセットアップは現状ではうまく行かない)

Drupal 9 を MySQL5.6 で使えるようにする

  • ロリポップのMySQLは5.6のため最新の Drupal9 はデフォルトでは入らない。このため「MySQL 5.6 and MariaDB 10.0 database driver for Drupal 9」を導入する必要がある。
    • この手順では setttings.php の手動編集を行うため、上記GUIからの初期設定を途中まで進めておく必要がある。
$ cd web
$ mkdir -p drivers/lib/Drupal/Driver/Database/mysql
$ cd drivers/lib/Drupal/Driver/Database/mysql
$ wget https://ftp.drupal.org/files/projects/mysql56-8.x-1.2.tar.gz
$ tar -xvzf mysql56-8.x-1.2.tar.gz --strip-components=1
  • ブラウザで設定したドメインにアクセス。Drupalの初期設定画面が表示される。
  • MySQL 5.6 and MariaDB 10.0 database driver for Drupal 9のマニュアル通りに設定。ただしマニュアルでは配列名が \$databases とtypoしている。ここは \$database が正しい。
web/sites/default/settings.php
....
$database['default']['default']['namespace'] = 'Drupal\\Driver\\Database\\mysql'; #末尾に追加

初期設定つづき


データベース名、ユーザ名、パスワードに加え、高度なオプションを開き、データベースホストの値を入れます。

ここはお好きに。

以上で Drupal9 がロリポップ上にインストールされます。