こちらのサイトでは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.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
- マリア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
以下のようにバージョンが表示されればインストールができています。
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でシステム構築を検討しているのであれば、選択肢の一つに入れてみてはいかがでしょうか。
参考
この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。