【Drupal】レンタルサーバーLOLIPOPにDrupal10をインストールしてみた
はじめに
DrupalをLOLIPOPレンタルサーバーにDrupalをインストールしてみました。確かに要件的には満たしていそうですが、ルート権限を持たないためDrushなどバックエンド側のコマンドやパーミッションの設定に疑問を感じてやっていませんでした。しかし、レンタルサーバーはVPSやクラウド環境と比べて格安な上にサーバーやOSに関する保守は管理会社任せにすることができます。今回利用するLOLIPOPレンタルサーバー ハイスピードプランは、月額550円〜と格安価格にも関わらず、WebサーバーにLiteSpeedを採用しており高速で動作する上に400GBのSSDストレージが使用できます。LOLIPOPレンタルサーバー ハイスピードプランはコストパフォーマンス的に優れていますので、Drupalを利用したサイト構築をおすすめします。
【ロリポップとConoHa WING徹底比較】失敗しないサーバーの選び方!
Drupal 10インストール要件
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
Drupal10の場合、PHP7以前は利用できません。
PHPのバージョン | Drupal によるサポート | サポート付きの最初の Drupal リリース | おすすめされた? |
---|---|---|---|
7.3 | 9.x (以下の注 2) | 8.6.4 | いいえ |
7.4 | 9.x | 8.8.3 | いいえ |
8.0 | 9.x | 9.1.0 | はい |
8.1 (以下の注 1) | 9.x、10.x | 9.3.0 | はい |
8.2 | 10.x | 10.0.0 | はい |
Database
データベースにはMYSQL以外にもPOSTGRESなどがご利用いただけますが、LOLIPOPレンタルサーバーで利用できるデータベースに制限があるので、ここではMYSQLの要件のみ記載します。
MYSQL
- マリアDB 10.3.7+
- MySQL/Percona 5.7.8+
Memory
Minumum 1GB以上
Lolipopはベーシックプラン(旧ハイスピードプラン)でテストしてみます。
ベーシクップランはWEBサーバーが、Drupal要件のNGINXかAPACHE2ではありません。ただスペックもコストパフォーマンス的にも良いプランですのでこちらでやってみます。
LOLIPOPレンタルサーバーハイスピードプランの契約
LOLIPOPは契約前に10日間の無料お試し期間がありますので、じっくり触ってみてから契約することができます。
SSH設定
レンタルサーバーですのでルート権限はありませんが、SSHでターミナルから操作することも可能です。
※OS関連の保守はサーバー管理会社が行いますので安心です。
ここで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設定確認
レンタルサーバーは必要なパッケージはインストール済みですので、バージョン等は管理画面で設定する必要があります。
Lolipopレンタルサーバー ハイスピードプランではPHP7以前のバージョンはご利用いただけないので、Drupal7など古いバージョンのアプリをインストールする際には注意が必要です。
ドキュメントルートでphpが動作するようにpathを通しておく。ここではphp8.2の場合を想定しています。phpのバージョンにより下記フォルダの名称を7.4、8.1に変更してください。
# phpのパスを通しておく
export PATH="$PATH:/usr/local/php/8.2/bin"
2024/4/21 追記
ログイン時のパス自動設定追加
shellを起動した時に、~/.bashrc
ファイルを読み込めよって設定をしています。
vi ~/.bash_profile
以下の内容を~/.bash_profile
に貼り付けます
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
以下コードを~/.bashrc
に設定します。
export PATH="$PATH:/usr/local/php/8.2/bin"
以上で、設定が完了しました。
ssh接続をして、shellが起動されるたびに、毎度pathが設定されるようになりました。
再起動してphp -vが実行されることを確認してみてください。
php -v
phpコマンドが使用できるようになりました。
Drupalファイルの取得
ここではComposerを使用して、LolipopレンタルサーバーにDrupalインストール用のファイルを取り込みます。
プロジェクトフォルダに移動します。
この場合は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
以下のようにバージョンが表示されればインストールができています。
Database作成
LOLIPOPレンタルサーバーではMYSQLが利用できます。Drupal用のデータベースを管理画面であらかじめ作成します。
ドキュメントルートの設定確認
Drupalをインストールする場合、ドキュメントルートはDrupalプロジェクトフォルダの中のwebフォルダに設定する必要があります。ロリポップサーバーでは、メインメニューから独自ドメインの画面でドキュメントルートフォルダを変更することが可能です。
Drupalインストール
ここまできてようやくDrupalのインストールができるようになります。
しかし残念ながら、DRUSHコマンドでDRUPALインストールを最後まで完了することはできません。
理由は、先程作成したデータベースが外部のサーバーに存在していて、SSHから直接MYSQLデータベースを操作できないためです。
本来はDrushコマンドを実行することでインストールが完了しますが、今回はウェブからインストーラの画面の指示にしたがってインストールを実施します。
ちなみに、以下がDRUSHコマンドでインストールを実行するコマンドです。
LILIPOPレンタルサーバーで実際に実行してみると、以下のようなエラーが発生します。
drush site:install --db-url=mysql://${recipe}:${recipe}@database/${recipe} \
--account-name=${adminuser} \
--account-pass=${adminpass} \
-y
Drupalインストーラを利用したウェブからのインストール
WEBからドメインをアクセスするとインストール画面が表示されて対話形式でインストールすることができます。ガイダンスにしたがって入力します。
データベースは先ほど作成したデータベース情報を入力します
データベースのホスト名は、Localhostから変更する必要があるので、高度なオプションをクリックしてデータベース作成時に管理画面に表示されたホスト名を設定します。
問題なければインストールが始まります
サイト環境設定画面が表示されますので必要な情報を入力してください。
インストールが正常に終了すると以下のような画面が表示されます。
提供モジュールのインストール
Composerコマンドを使用して提供モジュールをインストールしようとしたところ、メモリー不足のエラーが発生しました。FTPまたはSFTPで実施するしか方法がないみたいです。
モジュールによってはライブラリのインストールが必要なものもあります。レンタルサーバーの場合は追加でインストールすることができないため、ライブラリーのインストールを要求された場合は諦めるしかありません。レンタルサーバーはパッケージとしてすでに出来上がった環境のためその点仕方ないですね。
さいごに
いかがでしたでしょうか。ロリポップサーバーは長期契約の場合、利用料金は月額500円程度です。そしてなんといっても400GBのSSDを自由に利用することができます。WordPressでは実績があり皆さんLOLIPOPで運用されている方も多いと思いますが、Drupalはあまり情報なく制約が多いレンタルサーバーで運用されている方は少ないと思います。時代はクラウドやVPSですが、レンタルサーバーはサーバーのコストパフォーマンスやメンテナンス性を考えると、捨てたものではないと思っています。もしいまDrupalでシステム構築を検討しているのであれば、選択肢の一つに入れてみてはいかがでしょうか。
参考
【ロリポップとConoHa WING徹底比較】失敗しないサーバーの選び方!
https://qiita.com/ArataKinjo/items/0fa2b50ec04047fb5183
この記事に関するご質問やご意見などございましたらお問い合わせフォームからお気軽にご連絡ください。