メインコンテンツに移動

エックスサーバーにDrupal 11をインストールする手順|SSH+Composerで構築

エックスサーバーにDrupal 11をインストールしました。

Drupalにはサーバー側から簡単に導入する方法もありますが、今回は使いません。

SSHでサーバーに接続し、Composerを使ってDrupal 11を構築します。

この方法を選んだ理由は、単にDrupalを動かすためではありません。

Drupal本体やモジュールなどの構成を、後からでも把握・再現できる状態にしておきたいからです。

この記事では、エックスサーバーでDrupal 11を動かすまでの手順を、実際に構築した流れに沿ってまとめます。

なお、Drupal 11はPHP 8.3以上が必要です。Drupal公式の11.xのインストール要件でも、PHP 8.3以上とComposer 2.9.3以上が案内されています。

エックスサーバーでは複数のPHPバージョンをドメイン単位で切り替えられます。

 

今回の構成

今回は、次のような構成にします。

project/
  composer.json
  composer.lock
  vendor/
  web/
    core/
    modules/
    themes/
    sites/ 

ブラウザからアクセスさせるのは web/ の中だけです。

Drupal本体やComposerの管理ファイルを公開領域から分離できます。

ここが、今回のインストールで最も重要なポイントです。

「Drupalを入れて動かす」だけなら、もっと簡単な方法もあります。

しかし、長く運用することを考えるなら、最初からディレクトリ構成を決めておいた方が後で楽になります。

 

エックスサーバーでPHPのバージョンを確認する

まず、Drupal 11が動作するPHPバージョンになっているか確認します。

エックスサーバーのサーバーパネルから「PHP Ver.切替」を開き、対象ドメインのPHPバージョンを確認します。

Drupal 11ではPHP 8.3以上が必要です。

今回はPHP 8.3以上を選択します。

ここで注意したいのが、ブラウザから実行されるPHPとSSHから実行するPHPは、確認方法が違う場合があることです。

SSH接続後、次のコマンドでも確認します。

php -v

バージョンが表示されれば、まずPHPが使える状態です。

エックスサーバーではSSHなどのコマンドラインから実行するPHPの標準バージョンも変更されています。

そのため、Web側だけでなくSSH側のPHPも実際に確認しておくことをおすすめします。

 

SSHでエックスサーバーに接続する

次にSSHでサーバーへ接続します。

Macならターミナル、WindowsならPowerShellなどからSSHを実行できます。

ssh ユーザー名@ホスト名 

初回接続時には確認が表示される場合があります。

ログインできたら、まず現在位置を確認します。

pwd

その後、必要に応じてディレクトリを移動します。

cd ~

SSHで直接操作すると、ファイルをFTPで1つずつアップロードするより、構築作業をかなり効率化できます。

 

Composerが使えるか確認する

Drupal 11はComposerで管理します。

まずComposerが利用できるか確認します。

composer --version

バージョンが表示されればComposerを実行できます。

ここで重要なのは、Composerを単なる「Drupalをインストールするためのコマンド」と考えないことです。

Composerは、Drupal本体や追加したモジュールなどの依存関係を管理するための仕組みです。

そのため、インストール後もComposerを使って更新していきます。

 

ComposerでDrupal 11を作成する

いよいよDrupalを作成します。

Drupal公式でもComposerによる drupal/recommended-project の利用が案内されています。

composer create-project drupal/recommended-project:^11 project 

これでDrupalのファイル一式とComposerによる依存関係の管理環境が作られます。

作成されたディレクトリに移動します。

cd project 

中身を確認します。

ls -la

composer.json や composer.lock、vendor、web などが作成されています。

ここまで来れば、Drupal本体のインストール自体は完了です。

まだWebからアクセスできる状態ではありません。

 

公開ディレクトリをwebに向ける

ここがエックスサーバーで少し考えるところです。

Composer構成では、プロジェクト全体ではなく web を公開します。

イメージとしては次のようになります。

project/
├ composer.json
├ composer.lock
├ vendor/
└ web/ ← 公開する場所 

ドメインの公開ディレクトリを、この web に合わせます。

これによって、composer.json や vendor などを直接URLから公開しない構成にできます。

ここを間違えると、Drupalは動いてもComposer構成のメリットが薄れてしまいます。

 

データベースを作成する

Drupalを動かすにはデータベースが必要です。

エックスサーバーのサーバーパネルから、Drupal用のデータベースを作成します。

必要になるのは、主に次の情報です。

項目内容
データベース名作成したデータベース
ユーザー名データベースユーザー
パスワードデータベースユーザーのパスワード
ホスト名エックスサーバーで指定されたMySQLホスト

この情報はDrupalのインストール画面で使用します。

 

ブラウザからDrupalのインストールを開始する

公開ディレクトリの設定とデータベースの準備ができたら、ブラウザからドメインへアクセスします。

Drupalのインストール画面が表示されます。

言語を選択し、インストールプロファイルを選びます。

通常は標準の構成から始めれば問題ありません。

次にデータベースの情報を入力します。

先ほど作成したデータベース名、ユーザー名、パスワード、ホスト名を入力します。

Drupalがデータベースへ接続できれば、インストールが進みます。

 

settings.phpとfilesディレクトリを確認する

Drupalのインストールが完了したら、設定ファイルも確認しておきます。

web/sites/default/settings.php

Drupalでは、このファイルにデータベース接続などの重要な設定が入ります。

また、画像などのアップロード先として使用する files ディレクトリも確認します。

インストール直後だけ動けばいいのではなく、管理画面から画像をアップロードしたり、コンテンツを更新したりできることまで確認します。

 

Drupalの管理画面にログインする

インストールが完了したら、管理画面へログインします。

まず確認するのは、サイトが正常に表示されることです。

次に管理画面から、次のような基本動作を確認します。

コンテンツを作成できるか。

画像をアップロードできるか。

テーマを変更できるか。

キャッシュをクリアできるか。

インストールが完了しただけでは、運用できる状態になったとは限りません。

実際にコンテンツを1つ作って確認しておくと安心です。

 

Composer構成になっていることを確認する

最後に、Composerで管理できる状態になっているか確認します。

composer show

Drupal本体や関連パッケージが一覧表示されます。

また、プロジェクトのルートにある composer.json を確認します。

Drupalのバージョンや依存関係をここから管理できます。

今後モジュールを追加するときも、基本的にはComposerから追加します。

例えばモジュールを追加する場合は、次のような形です。

composer require drupal/モジュール名 

これによって、必要な依存関係も含めてComposerが管理します。

 

更新するときもComposerを使う

Composer構成にしたなら、更新方法も最初から決めておきます。

composer update 

ただし、本番環境でいきなり更新するのではなく、先に検証環境で確認することをおすすめします。

Composerには composer.lock があるため、検証した構成を本番へ再現しやすくなります。

ここがComposer構成の大きなメリットです。

「サーバーに何が入っているのか分からない」という状態を避けられます。

Composerで管理する利点は、WordPressの構成を設計する|Composer管理にすると得られる7つのことでも整理しています。WordPressの例ですが、考え方はDrupalでも同じです。

 

インストールで詰まりやすかったところ

実際に構築してみると、Drupalそのものよりサーバー環境の確認で詰まることがあります。

実際に詰まった内容と解決方法は、エックスサーバーでDrupal 11が動かない原因6つ|実際に詰まった問題と解決方法にまとめています。

 

PHPのバージョンが違う

ブラウザ側ではPHP 8.3なのに、SSHで php -v を実行すると別のバージョンになっている。

こうした環境差は、Composer実行時のエラーにつながります。

「PHPは8.3にしたから大丈夫」と思わず、SSHから実際に確認することが重要です。

 

公開ディレクトリを間違える

Composerのrecommended-projectでは、プロジェクトのルートそのものではなく web を公開する構成になります。

ここを間違えると、Drupalが正常に動作しないだけでなく、公開する必要のないファイルまでWebから到達できる構成になり得ます。

 

Composerのメモリ不足

共用サーバーでは、Composer実行時にメモリ不足になることがあります。

Drupal本体だけでなく、依存パッケージも処理するためです。

エラーが出たときは、Drupalの問題なのか、PHPやComposerの実行環境の問題なのかを分けて考える必要があります。

 

なぜ「簡単インストール」を使わなかったのか

エックスサーバーにはDrupalの動作確認済みプログラムとしての案内があります。

それでも今回は、簡単にインストールする方法を選びませんでした。

理由は、Drupalを「設置する」ことより、「どう管理するか」を重視したからです。

Composerで管理しておけば、Drupal本体やモジュールの依存関係をファイルとして管理できます。

サーバーを移転するときも、同じ構成を再現しやすくなります。

また、Gitなどと組み合わせれば、構成変更の履歴も管理できます。

初回のインストールだけを考えれば、簡単インストールの方が楽です。

しかし、3年、5年と運用するなら、最初の10分より、その後の管理コストの方が重要になります。

そもそもなぜDrupalを選んだのかは、Drupalを選んだ理由|WordPressや他のCMSを使わなかった理由で書いています。

 

まとめ

エックスサーバーにDrupal 11を構築するだけなら、それほど難しい作業ではありません。

ただし、長く運用することを考えるなら、インストール方法より先に構成を決めておくことをおすすめします。

今回の構成は、

SSH
↓
Composer
↓
Drupal 11
↓
web/だけを公開 

というシンプルなものです。

Drupal公式もComposerを使ったrecommended-projectを案内しているため、Drupalを継続的に運用するなら、Composer管理を前提にしておくと後の更新や移行が楽になります。

今回はエックスサーバーへのインストールまでを書きました。

次は、このDrupalを実際に使ってテーマを作り、ViewsやTwigを触っていきます。

記事の更新はメルマガでもお届けしています。