【Drupal】レンタルサーバーLOLIPOPにDrupalをインストールしてみた

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

はじめに

DrupalをレンタルサーバーLOLIPOPにDrupalをインストールしてみました。確かに要件的には満たしていそうですが、ルート権限を持たないためDrushなどバックエンド側のコマンドやパーミッションの設定に疑問を感じてやっていませんでした。レンタルサーバーでも動作できるのであれば、コストパフォーマンス的に優れているので、ぜひ使っていきたいです。

Drupal 要件

Web sever

Drupal は、UNIX/Linux、OS X、または Windows でホストされる Apache 2.x 上で動作します。 Drupal 9 には少なくとも Apache 2.4.7 が必要です。Nginxの場合は、レガシー バージョン (0.7.x、0.8.x、1.0.x、1.2.x)、安定版 1.8.x バージョン、およびメインライン 1.9.x バージョンで動作します。
また、WindowsIISでは、PHP が正しく構成されている場合、Drupal コアは IIS 5、IIS 6、IIS 7、IIS 8、または IIS 10 で動作します。

PHP

PHPのバージョンDrupal によるサポートサポート付きの最初の Drupal リリースおすすめされた?
7.39.x (以下の注 2)8.6.4いいえ
7.49.x8.8.3いいえ
8.09.x9.1.0はい
8.1 (以下の注 1)9.x、10.x9.3.0はい
8.210.x10.0.0はい

Database

MYSQL

  • マリアDB 10.3.7+
  • MySQL/Percona 5.7.8+

Memory

Minumum 1GB以上

Lolipopはベーシックプラン(旧ハイスピードプラン)でテストしてみます。

ベーシクップランはWEBサーバーが、Drupal要件のNGINXかAPACHE2ではありません。ただスペックもコストパフォーマンス的にも良いプランですのでこちらでやってみます。

LOLIPOP 契約

SSH設定

ここでSSHを有効にするを選択するとSSH情報が表示されて接続できるようになります。

公開鍵の設定

ssh {ユーザアカウント}@ssh.lolipop.jp -p 2222

パスワードを聞かれるので画面に表示されているパスワードをコピーして画面上にペーストします。

このままでは毎回パスワードを要求されるため公開鍵をサーバーに設定してクライアントから秘密鍵で接続できるようにします。

設定場所は、~/.ssh/authorized_keysです。

mkdir  ~/.ssh/authorized_keys
vi ~/.ssh/authorized_keys

ここに公開鍵を設定します。

chmod 600  ~/.ssh/authorized_keys

これで、秘密鍵から接続できるようになりました!

ちなみに、~/.sshフォルダのconfigファイルに以下の設定をすると、ショートカットを利用することができ毎回sshコマンドを叩く必要はなくなります。

以下の場合だと、ssh lolipopd で接続が可能になります。

複数のサーバーを管理している場合はとても重宝する機能ですのでぜひ使ってみてください。

#lolipop common ssh info
Host  lolipop*
  HostName ssh.lolipop.jp
  Port 2222
  HostKeyAlgorithms +ssh-rsa
  PubkeyAcceptedKeyTypes +ssh-rsa
#lolipop
Host  lolipopd
  User ここにユーザアカウントを設定
  IdentityFile ここに秘密鍵のパスを設定

LOLIPOP ドメイン設定

サブドメインまたはドメインを設定します。

サブドメインを設定する場合は、ドメインとサブドメインを入力します。

独自ドメインまたはサブドメイン作成時にはドキュメントルートとなる公開フォルダを作成しますが、Drupalをインストールするときは、プロジェクトフォルダの下にwebフォルダを作成します。

具体的には、公開フォルダ入力時に、例えばプロジェクトフォルダがdrupal10の場合には以下ののように入力します。

drupal10/web

こうすることにより、drupal10フォルダの下にwebフォルダが作成され、最下層のwebフォルダがドキュメントルートになります。

PHP設定確認

ドキュメントルートでphpが動作するようにpathを通しておく。ここではphp8.2の場合を想定しています。phpのバージョンにより下記フォルダの名称を7.4、8.1に変更してください。

# phpのパスを通しておく
export PATH="$PATH:/usr/local/php/8.2/bin"

プロジェクトフォルダに移動します。

この場合はdrupal10です。

cd drupal10

次にcomposerをインストールします。

php  -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

ComposerコマンドでDrupalファイルを取得設定します。
このとき、念の為プロジェクトフォルダを直接置き換えるのではなくtmpフォルダに作成します。

php  composer.phar create-project drupal/recommended-project:10.0.x-dev@dev tmp

問題なくtmpフォルダが生成できれば、tmpフォルダ以下のものをすべてプロジェクトフォルダ(ここではdrupal10)にコピーします。

cp -r tmp/.  .

drushをインストールします。

php  composer.phar  require drush/drush

Drush Launcherがインストールできないため、venderフォルダ内のdrushスクリプトを直接実行します。

./vendor/drush/drush/drush --version

以下のようにバージョンが表示されればインストールができています。

  • ロリポップは共有サーバーのため、制限があります。SSH接続は可能ですが、ターミナルからデータベースの操作は制限がかけられています。そのため、Drushでデータベースのインポートやエクスポート、また設定の変更もできません。
  • ロリポップでcomposerを実行すると「PHP Fatal error: Out of memory」が表示される場合があります。ロリポップではphp.iniが変更できないため、このエラーが出てしまうとcomposerでのインストールを諦めるしかありません。他の方法としては、ローカル環境でcomposerを実施し、FTPなどでサーバーにアップする方法があります。

Database作成

Drupalインストール

残念ながら、DRUSHコマンドでDRUPALインストールを最後まで完了することはできません。SSHからMYSQLを操作できないため、以下のDRUSHコマンドを実行するとエラーになります。

drush site:install --db-url=mysql://${recipe}:${recipe}@database/${recipe} \
        --account-name=${adminuser} \
        --account-pass=${adminpass} \
        -y

WEBからドメインをアクセスするとインストール画面が表示されて対話形式でインストールすることができます。ガイダンスにしたがって入力します。

データベースは先ほど作成したデータベース情報を入力します

データベースのホスト名は、Localhostから変更する必要があるので、高度なオプションをクリックしてデータベース作成時に管理画面に表示されたホスト名を設定します。

問題なければインストールが始まります

サイト環境設定画面が表示されますので必要な情報を入力してください。

インストールが正常に終了すると以下のような画面が表示されます。

提供モジュールのインストール

Composerコマンドを使用して提供モジュールをインストールしようとしたところ、メモリー不足のエラーが発生しました。FTPまたはSFTPで実施するしか方法がないみたいです。

モジュールによってはライブラリのインストールが必要なものもあります。レンタルサーバーの場合は追加でインストールすることができないため、ライブラリーのインストールを要求された場合は諦めるしかありません。レンタルサーバーはパッケージとしてすでに出来上がった環境のためその点仕方ないですね。

さいごに

いかがでしたでしょうか。ロリポップサーバーは長期契約の場合、利用料金は月額500円程度です。そしてなんといっても400GBのSSDを自由に利用することができます。WordPressでは実績があり皆さんLOLIPOPで運用されている方も多いと思いますが、Drupalはあまり情報なく制約が多いレンタルサーバーで運用されている方は少ないと思います。時代はクラウドやVPSですが、レンタルサーバーはサーバーのコストパフォーマンスやメンテナンス性を考えると、捨てたものではないと思っています。もしいまDrupalでシステム構築を検討しているのであれば、選択肢の一つに入れてみてはいかがでしょうか。

参考

Lolipopサーバ に Drupal 10.0 を入れるまで - Qiita
目的オンラインプログラミングスクールのサイト構築を行う上で、会員別に購入コースに応じて、コンテンツの参照設定が必要なため、Drupalを検証しました。あまり私の考える教育に特化した動画配信サイ…
このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました