序章

Drupalは、インターネット上で最大規模のブログやWebサイトのいくつかを運営するために使用される人気のあるコンテンツ管理システム(CMS)です。 ベースの安定性、プラットフォームの適応性、およびそのアクティブなコミュニティのために、Drupalは10年以上現場で人気のある選択肢であり続けています。

このガイドでは、Ubuntu14.04サーバーにDrupalをインストールする方法について説明します。 これはDrupalチームが推奨する構成であるため、Apacheを使用してサイトにサービスを提供します。

前提条件

このガイドを開始する前に、いくつかの基本的な構成が完了したUbuntu14.04サーバーが必要です。 Ubuntu 14.04初期サーバーセットアップガイドに従って、sudo特権がセットアップされたroot以外のユーザーを取得します。

また、サーバーでApache、PHP、およびMySQLを構成する必要があります。 これを設定する方法については、 Ubuntu14.04にLAMPをインストールするためのガイドに従ってください。

上記の要件を満たしたら、このガイドを続けてください。

Drupalファイルを取得してWebディレクトリにインストールする前に、システムを準備する必要があります。 Apache、PHP、およびMySQLはすでにインストールされていますが、インストールのためにいくつかの追加の変更を加え、これらのそれぞれにいくつかの調整を加える必要があります。

Drupal用にMySQLユーザーとデータベースを構成する

最初に行うことは、Drupalインストールで使用するMySQLユーザーとデータベースを構成することです。 セキュリティ上の理由から、専用のユーザーとデータベースを構成することが重要です。

まず、MySQLにログインします。

mysql -u root -p

そのソフトウェアのインストール中に構成したMySQLrootユーザーのパスワードの入力を求められます。

認証に成功すると、MySQLプロンプトが表示されます。 まず、Drupalインストールで使用するデータベースを作成します。 簡単にするために、データベースをdrupalと呼びます。

CREATE DATABASE drupal;

次に、Drupalソフトウェアがデータベースへの接続に使用できるユーザーを作成する必要があります。 このガイドでは、ユーザーをdrupaluserと呼びます。 以下のブロックのパスワードを置き換える強力なパスワードを選択してください。

CREATE USER drupaluser@localhost IDENTIFIED BY 'password';

これで、データベースとユーザーができましたが、ユーザーにはまだデータベースに対してアクションを実行する権限がありません。 ユーザー権限を付与することでこれを修正できます。 Drupalが正しく機能するには、さまざまな権限が必要です。 以下は、データベースを不必要に公開することなくソフトウェアが機能できるようにするための適切な選択です。

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost;

これで、作成したデータベースを管理する権限がユーザーに付与されました。 これらの変更を今すぐ実装するには、特権情報をディスクにフラッシュする必要があります。

FLUSH PRIVILEGES;

これで、インタラクティブなMySQLセッションを終了できます。

exit

bashセッションに戻ります。

PHPモジュールをインストールし、構成を微調整します

次に、Drupalアプリケーションに必要ないくつかのPHPモジュールをインストールします。 幸いなことに、それらはUbuntuのデフォルトのリポジトリにあります。

ローカルパッケージキャッシュを更新し、次のように入力してインストールします。

sudo apt-get update
sudo apt-get install php5-gd php5-curl libssh2-php

また、PHP構成ファイルにいくつかの小さな調整を加えます。 これらはDrupal開発者によって推奨されています。 テキストエディタでsudo権限を使用してApachePHP設定ファイルを開きます。

sudo nano /etc/php5/apache2/php.ini

expose_phpディレクティブとallow_url_fopenディレクティブを検索し、両方を「オフ」に設定します。

. . .
expose_php = Off
. . .
allow_url_fopen = Off
. . .

終了したら、ファイルを保存して閉じます。

Apacheでリライト機能とHtaccessファイルを有効にする

次に、Apacheを見てみましょう。 まず、書き換え機能を有効にします。 これにより、DrupalサイトがURLを人間にわかりやすい文字列に変更できるようになります。

実際のApachemod_rewriteモジュールは、デフォルトですでにインストールされています。 ただし、有効になっていません。 次のように入力すると、スイッチを切り替えてそのモジュールを有効にできます。

sudo a2enmod rewrite

これにより、次にApacheを再起動したときにモジュールが有効になります。 Apacheを再起動する前に、.htaccessファイルを使用できるように仮想ホスト構成を調整する必要があります。 このファイルには実際の書き換えルールが含まれ、デフォルトでDrupalインストールに含まれています。

今すぐデフォルトの仮想ホストファイルを開きます。

sudo nano /etc/apache2/sites-enabled/000-default.conf

「VirtualHost」ブロック内に、Webルートを指すディレクトリブロックを追加します。 このブロック内で、AllowOverrideディレクティブを「All」に設定します。 ドメイン名を指すようにServerNameディレクティブを追加し、有効な電子メールアドレスを反映するようにServerAdminディレクティブを変更することもできます。

<VirtualHost *:80>
    . . .
    ServerName  example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    . . .
</VirtualHost>

終了したら、ファイルを保存して閉じます。

ここで、ApacheとPHPへの変更を実装するためにWebサーバーを再起動する必要があります。

sudo service apache2 restart

Drupalファイルをインストールします

システムの準備ができたので、DrupalをWebルートにインストールできます。

実際には、最初にファイルをホームディレクトリに解凍してから、適切な場所にコピーします。 そうすることで、何か問題が発生した場合や、後で誤ってファイルが削除された場合に備えて、元のファイルにすぐにアクセスできるようになります。

Drupalダウンロードページに移動し、「推奨リリース」セクションで最新バージョンをチェックアウトします。 興味のあるバージョンのtar.gzリンクを右クリックし、「リンクアドレスのコピー」またはブラウザが提供する同様のオプションを選択します。

サーバーに戻り、ホームディレクトリに移動し、wgetを使用して、コピーしたリンクを使用してプロジェクトファイルをダウンロードします。

cd ~
wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz

リンクの最後に異なるバージョン番号が付いている可能性があります。 ファイルがダウンロードされたら、次のように入力してアプリケーションディレクトリを抽出します。

tar xzvf drupal*

次に、新しく抽出したディレクトリ構造に移動し、rsyncユーティリティを使用して、すべてのファイルをサーバーのWebルートディレクトリに安全にコピーします。 このコマンドでは、ドットを使用して現在のディレクトリを指定しています。 これは、必要な隠しファイルをコピーするために必要です。

cd drupal*
sudo rsync -avz . /var/www/html

これで、ファイルを参照する必要が生じた場合に備えて、ホームフォルダ内のディレクトリに元のバージョンのファイルがあります。 インストールをカスタマイズするために、Webルートディレクトリに移動します。

cd /var/www/html

セキュリティとインストールの容易さのためにDrupalファイルを調整する

Webベースのインストールスクリプトでは、プロセスを正しく完了するためにDrupalディレクトリにいくつかの変更を加える必要があります。 Webブラウザとコマンドラインを切り替える必要がないように、事前にこれを邪魔にならないようにする必要があります。

まず、サブツリーsites/defaultの下にfilesという名前の新しいディレクトリを作成する必要があります。

mkdir /var/www/html/sites/default/files

次に、デフォルト設定ファイルを、Drupalがアクティブな構成に使用するファイル名にコピーする必要があります。

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

このアクティブな設定ファイルには、インストール手順中に一時的にいくつかの追加のアクセス許可が必要です。 当面はグループ所有者に書き込み権限を付与する必要があります(グループ所有者は一時的にWebユーザーに割り当てます)。 インストールが成功したら、これを削除します。

chmod 664 /var/www/html/sites/default/settings.php

次に、ファイルのグループ所有権をWebユーザー(Ubuntuではwww-data)に付与する必要があります。 Drupalインストール全体にこれらの所有権プロパティを与えたいと思います。

sudo chown -R :www-data /var/www/html/*

これで、サーバーはWebベースのインストールスクリプトを実行するように適切に構成されました。

Webベースのインストール手順を完了する

インストールの残りの部分は、Webブラウザで行われます。 ブラウザを開き、サーバーのドメイン名またはIPアドレスに移動します。

http://server_domain_or_IP

Drupalのインストール手順の最初のページが表示されます。

Drupal choose profile

理由がない限り、「標準」インストールを選択し、「保存して続行」をクリックします。 データベース構成ページが表示されるまで、次のいくつかの続行ボタンをクリックします。 データベースとユーザーを構成したときに使用した詳細を入力します。

このガイドでは、drupalという名前のデータベース、drupaluserという名前のデータベースユーザー、およびpasswordというパスワードを使用しました。 ユーザー作成段階で別のパスワードを選択する必要があります。 データベースの詳細を入力したら、[保存して続行]をもう一度クリックします。

Drupal database config

:[保存して続行]をクリックすると、同じデータベース構成ページにリダイレクトされる可能性があります。 この場合は、ページを更新してください。 データベースが構成され、プロファイルがインストールされます。

ページの上部に、設定ファイルの権限を変更することが適切になったことを示す情報ボックスが表示されます。 これはすぐに行います。 今のところ、サイトに関するいくつかの基本情報を設定する必要があります。 サイトに適切な値を使用してフィールドに入力します。

Drupal configure site

最後に「保存して続行」ボタンをクリックして、インストールを完了します。 これで、ドメイン名に移動してサイトにアクセスできます。

Drupal completed install

Drupalのインストールが正常に完了しました。

ただし、権限のないユーザーが変更できないように、設定ファイルの権限を元に戻す必要があります。 サーバーで、次のように入力して、ファイルへの書き込みアクセスを制限します。

chmod 644 /var/www/html/sites/default/settings.php

これにより、設定ファイルへのさらなる変更がロックダウンされます。

トラブルシューティング

Drupalインストールの最終段階が完了しない場合は、エラーログを確認してください。

sudo tail /var/log/apache2/error.log

次のようなエラーが表示された場合:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] 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

最も可能性の高い修正には、/etc/php5/apache2/php.iniファイルを編集してmax_execution_timeを上げることが含まれます。

sudo nano /etc/php5/apache2/php.ini

ファイル:

max_execution_time = 300

SafariなどのChrome以外のブラウザでブラウザのインストールを試すこともできます。 ブラウザのCookie設定がインストールを妨げる可能性があります。

いずれにせよ、修正を実装したら、既存のDrupalデータベースと既存の/var/www/html/sites/default/settings.phpファイルを削除し、それらをデフォルトのコピーに置き換えて、インストールを最初からやり直す必要があります。 保存する価値のあるデータや設定がある場合は、バックアップを作成してください。

これを行うには、MySQLと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アドレスに再度アクセスし(場合によっては別のブラウザで)、最終的なインストールを再試行します。

結論

これで、Drupalサイトを構築するための強固な基盤ができました。 Drupalは非常に柔軟性があり、ニーズとユーザーのニーズに基づいてサイトの外観と機能をカスタマイズできます。

ここからどこに行くべきかについてのアイデアを得るには、 Drupalタグページにアクセスしてください。ここでは、途中で役立つチュートリアルを見つけることができます。 また、コミュニティからの支援やコミュニティへの貢献のための質問と回答の領域もあります。