はじめに
Drupalは、ブログの運営や企業コンテンツの管理に最も好まれているコンテンツ管理システム(CMS)の1つです。その堅牢性と使いやすさから、開発者や企業に好まれています。非常にカスタマイズ性が高く、拡張することで多種多様なユースケースを実現できます。
このチュートリアルでは、次の環境にDrupalをインストールする方法を説明します:Ubuntu 20.04とApache.
前提条件
UbuntuにDrupalをインストールするため、最新バージョンのUbuntuがインストールされている必要があります。まだインストールしていない場合は、当社のUbuntuインストールガイドに従ってください。また、PHP, MySQL、およびApacheがインストールされ、準備ができている必要があります。これらがインストールされていない場合は、当社のガイドLAMP Stack setup – Linux Apache MySQL PHP.
マシンにDrupalをダウンロードしてセットアップする前に、システムにいくつかの調整を行う必要があります。PHP、MySQL、Apacheがインストールされたら、Drupalインストールのためのシステム設定を開始しましょう。
MySQLユーザーとデータベースの準備
Drupalは、データと設定の保存をMySQLデータベースに依存しています。Drupal環境を隔離するために、専用のユーザーとデータベースをセットアップします。これはアプリケーションのセキュリティ向上にも役立ちます。新しいユーザーとデータベースを作成します。まず、ターミナルで以下のコマンドを実行してMySQLサーバーにログインします。
|
1 |
mysql -u root -p |
MySQLの ユーザー名と パスワードを入力します。認証されたら、以下のコマンドを実行して新しいデータベースを作成します。ここではデータベース名を drupal:
|
1 |
CREATE DATABASE drupal; |
次に、このデータベースに接続するための新しいユーザーを作成する必要があります。ここではユーザー名を drupaluserとします。パスワードには、必ず強力なパスワードを入力してください。以下のコマンドを実行して新しいユーザーを作成します。
|
1 |
CREATE USER drupaluser@localhost IDENTIFIED BY 'password'; |
作成したユーザーには、このデータベースで操作を実行するための権限が必要です。ただし、すべての権限を付与すると、アプリケーションがセキュリティ侵害にさらされる可能性があります。そのため、ここでは以下のコマンドを実行して、必要な権限のみを付与します。
|
1 |
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost; |
権限を付与したら、次のステップに進む準備は完了です。以下のコマンドを実行して権限をフラッシュし、すぐに有効にします。
|
1 |
FLUSH PRIVILEGES; |
その後、以下のコマンドを実行してMySQLを終了します。
|
1 |
exit |
PHPモジュールのインストールと設定
Drupalが動作するにはPHPモジュールが必要です。これらはUbuntuの公式リポジトリからダウンロードします。以下のコマンドを実行して、ローカルのパッケージキャッシュを更新します。
|
1 2 |
sudo apt-get update sudo apt-get install php5-gd php5-curl libssh2-php |
次に、Drupalの推奨事項に従ってPHPモジュールにいくつかの調整を行います。以下のコマンドを使用してPHP設定ファイルを開きます。
|
1 |
sudo nano /etc/php5/apache2/php.ini |
両方の変数 expose_php および allow_url_fopen をオフ(Off)にします:
|
1 2 3 4 5 |
. . . expose_php = Off . . . allow_url_fopen = Off . . . |
ファイルを保存して閉じます。これで次に進む準備が整いました。
ApacheでのHtaccessファイルの変更
Drupalは、ユーザーにとってわかりやすいURLにするためにURLを変更する必要があります。このため、URLを書き換える(リライトする)アクセス権が必要です。幸いなことに、書き換え用のモジュールである mod_rewrite はデフォルトでApacheに存在します。これを有効にするだけです。以下のコマンドを実行して、このモジュールを有効にします。
|
1 |
sudo a2enmod rewrite |
次に、バーチャルホストの設定を更新する必要があります。これは、Drupalが .htaccess ファイルにアクセスできるようにするために必要です。以下のコマンドを実行して、 virtualhost ファイルを開きます:
|
1 |
sudo nano /etc/apache2/sites-enabled/000-default.conf |
内の virtualhost 設定で、Webルートを指すフォルダを追加します。ここで、 AllowOverride を All に変更します。ドメイン名をお持ちの場合は、 ServerName ディレクティブを追加し、 ServerAdmin ディレクティブを変更して、有効なメールアドレスを反映させます:
|
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> . . . ServerName example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html <Directory /var/www/html> AllowOverride All </Directory> . . . </VirtualHost> |
ファイルを保存して閉じます。これで準備は完了です。変更を有効にするために、ApacheとPHPを再起動するだけです:
|
1 |
sudo service apache2 restart |
Installing Drupal
ここでは、WebルートにDrupalをインストールします。Drupalファイルを解凍してコピーを作成します。その後、これらのコピーされたファイルを目的のディレクトリにコピーします。これにより、何か問題が発生した場合に備えてファイルのバックアップが確保されます。
Drupalをダウンロードするには、https://www.drupal.org/project/drupal を開きます。Recommended releases セクションで、目的のリリースを見つけます。次に、 tar.gz ファイルのアドレスをコピーします。サーバー上では、 wget ユーティリティを使用してこのファイルをダウンロードできます。ターミナルで以下のコマンドを実行して、コピーしたリンクアドレスを取得します:
|
1 2 |
cd ~ wget <your link> |
ファイルがダウンロードされたら、以下を入力してアプリケーションディレクトリを展開します:
|
1 |
tar xzvf drupal* |
次に、以下のコマンドを使用して、新しく作成されたディレクトリに移動します:
|
1 |
cd drupal* |
以下のコマンドを実行して、このディレクトリ内のすべてのファイルをWebルートにコピーします:
|
1 |
sudo rsync -avz . /var/www/html |
ファイルがコピーされたら、以下のコマンドを実行してWebルートに移動します:
|
1 |
cd /var/www/html |
Drupalファイルのインストールを容易にし、安全にする
Webベースのインストールスクリプトを介してDrupalをインストールする場合、Drupalディレクトリに変更を加える必要があります。これにより、ブラウザとコマンドラインの間を行き来せざるを得なくなります。この方法でもインストールできますが、より良いオプションは、ファイルを微調整してこの手間を省くことです。
サブツリー sites/default の下に、次の名前の新しいディレクトリを作成します: files:
|
1 |
mkdir /var/www/html/sites/default/files |
デフォルトの設定ファイルを、Drupalがアクティブな設定に使用するファイル名にコピーします:
|
1 |
cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php |
インストールを完了するには、アクティブな設定ファイルにさらにいくつかの権限を付与する必要があります。これは後で元に戻します。以下のコマンドを実行して、書き込み権限を次のものに付与します:グループ 所有者:
|
1 |
chmod 664 /var/www/html/sites/default/settings.php |
ファイルのグループ所有権をWebユーザー(Ubuntuでは www-data)に付与します。Drupalのインストール全体で、これらの所有権プロパティが必要になります:
|
1 |
sudo chown -R :www-data /var/www/html/* |
これで次に進むことができます。
Webベースのインストールの完了
これからはブラウザを使用します。手順は簡単で迅速です。ブラウザにサーバーのドメインまたはIPを入力します:
|
1 |
http://server_domain_or_ip/ |
Drupalのウェルカムページが表示されます:

ほとんどの場合、Standard がデフォルトのオプションです。ユースケースで特に必要な場合は、Manual を選択してください。Standardを選択したら、Save and Continue をクリックします。さらにいくつかのプロンプトが表示されます。クリックし続けてください:Next、そしてデータベース設定ページに到達するまでデフォルトのオプションを受け入れます。このページでは、データベース情報の入力を求められます。上記で使用した ユーザーと パスワードおよび データベースをこのページに入力します:

Click Save and Continueをクリックします。同じデータベース設定ページにリダイレクトされた場合は、ページを更新してください。データベース設定が構成され、プロファイルがインストールされます。
ウェブサイトに関する詳細情報の入力を求められます。また、上部に設定ファイルの権限を変更しても問題ないことを示すプロンプトが表示されます。これは短時間だけ行い、その後変更を元に戻します。ウェブサイトのセキュリティを危険にさらしたくありません。ウェブサイトに必要な情報を入力してください:

インストールを完了するには、もう一度Save and Continueをクリックする必要があります。IPまたはドメインを入力してサイトを開きます。ウェルカムページが表示されます:

これでDrupalのインストールは完了です。次に、不正使用を防ぐために設定の権限を元に戻します。ターミナルで以下のコマンドを実行して、これを制限します:
|
1 |
chmod 644 /var/www/html/sites/default/settings.php |
トラブルシューティング
Drupalのインストールが完了していることを確認する必要があります。最後のステップが完了していない場合は、以下のコマンドを実行してください:
|
1 |
sudo tail /var/log/apache2/error.log |
これにより、logファイルが開きます。次に、ファイル内に以下のログがあるかどうかを確認します:
|
1 2 |
PHP Fatal error: Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en sh: 1: /usr/sbin/sendmail: not found |
上記の行が存在する場合、インストールが成功していないことを示しています。このエラーを解消するために、Drupalは以下のドキュメントで手がかりを提供しています:https://www.drupal.org/node/481758
上記のエラーの一般的な原因は、 max_execution_timeです。これを増やすには、以下のコマンドを使用して php.iniファイルを開きます:
|
1 |
sudo nano /etc/php5/apache2/php.ini |
次に、 max_execution_timeを見つけ、以下のように変更します:
|
1 |
max_execution_time = 300 |
独自のデータベースを使用しているため、Drupalのデフォルトデータベースと既存のPHP設定ファイル /var/www/html/default/settings.phpを削除する必要があります。その後、これらをデフォルトのコピーに置き換え、インストールを最初からやり直します。念のためバックアップを作成することを忘れないでください。
既存のDrupalデータベースを削除するには、MySQLデータベースにログインし、以下のコマンドを実行します:
|
1 |
DROP DATABASE drupal; |
次に、上記のようにデータベースを作成し、権限を付与します。もう一つのオプションは、 cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.phpを再度実行して設定ファイルを置き換えることです。必ず chmod 664 /var/www/html/sites/default/settings.phpコマンドを実行して、正しい権限を再度設定してください。これでIPにアクセスし、再度インストールを試みます。
結論
このチュートリアルでは、Ubuntuを実行しているマシンにDrupalをセットアップする方法を学びました。これにより、Drupal CMSを使い始めるための強固な基盤が得られます。Drupalをセットアップすることで、すべてをゼロからコーディングすることなく、高度にカスタマイズ可能なウェブサイトを運営することができます。
もう一つの便利なCMSであるWordPressについて詳しく知るには、以下のチュートリアルをご覧ください:
- Ubuntu 20.04でDockerコンテナを使用してWordPressをデプロイする方法
- Ubuntu 20.04にLAMPを使用してWordPressをインストールする方法
- ウェブサイトにWordPressクラウドホスティングを利用すべき理由
- WordPressからCloudSigma PaaSにウェブサイトを移行する方法
ハッピーコンピューティング!
コメント
コメントはまだありません。最初のコメントを投稿しましょう。