ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章


Drupalは人気のあるコンテンツ管理システム(CMS)であり、使いやすいフレームワークでWebサイトをサイトにすばやく展開するために使用されます。

このガイドでは、単一のDrupalインストール内から複数のサイトをデプロイする方法について説明します。 この記事の執筆時点で、最新バージョンのDrupal(7.23)をUbuntu12.04VPSにインストールします。 1回のインストールで提供される2つの別々のサイトを作成します。

前提条件をインストールします


Drupalが正しく機能するには、LAMP(Linux、Apache、MySQL、およびPHP)スタックがインストールされている必要があります。 次のように入力して、必要なコンポーネントをインストールします。

sudo apt-get update
sudo apt-get install apache2 mysql-server libapache2-mod-auth-mysql php5-mysql php5 libapache2-mod-php5 php5-mcrypt php5-gd

インストールのMySQL部分の管理者パスワードを作成して確認するように求められます。 すぐに使用する必要があるため、後で使用するためにこれを覚えておいてください。

次のように入力して、.htmlファイルよりも.phpファイルを優先するようにApacheを設定します。

sudo nano /etc/apache2/mods-enabled/dir.conf

「DirectoryIndex」の後の最初の項目として「index.php」を読み取るパラメーターを追加します。

 
      DirectoryIndex <span class="highlight">index.php</span> index.html index.cgi index.pl index.php index.xhtml index.htm

ファイルを保存して閉じます。

サーバーを再起動して、Apacheに次の変更を実装します。

sudo service apache2 restart

MySQLを構成する


次のように入力することで、データベースの予備初期化を実行し、安全でない設定をロックダウンできます。

sudo mysql_install_db && sudo mysql_secure_installation

MySQLのインストール中に設定した管理者パスワードを入力するように求められます。

次に、インストールを保護するためのいくつかの質問が表示されます。 「Enter」を押して、最初の質問以外のすべての質問に「はい」と答えます(管理者パスワードを再度変更します)。

次のように入力してMySQLにログインします。

mysql -u root -p

さらにコマンドを入力するためのMySQLプロンプトが表示されます。 作成するサイトごとに1つのデータベースを作成する必要があります。

 CREATE DATABASE firstsite ;  CREATEDATABASEセカンドサイト;

次に、サイトごとにユーザーとパスワードの組み合わせを作成し、作成したデータベースに対する権限をサイトに付与します。

最初のユーザーにすべてを付与します。  @localhost  IDENTIFIED BY'firstpassword '; セカンドサイトにすべてを付与します。*セカンドユーザーに @localhost  IDENTIFIED BY'secondpassword ';

次のコマンドを入力して、変更を適用し、MySQL環境を終了します。

FLUSH PRIVILEGES;
exit

Drupalをダウンロードして構成する


Drupalソースをプロジェクトのリポジトリからホームディレクトリにダウンロードします。

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

ファイルを抽出してから、サーバーのWebルートに追加します。 すべてのdrupalファイルを別の「drupal」ディレクトリに保存します。

tar xzvf drupal-7.23.tar.gz
sudo mv drupal-7.23 /var/www/drupal

次に、デフォルトの設定ファイルを有効な設定ファイルにコピーします。

cd /var/www/drupal/sites
cp default/default.settings.php default/settings.php

Drupalは、インストール中にディレクトリとその中のファイルへの書き込みアクセス権を必要とします。 次のように書き込み権限を割り当てることができます。

sudo chmod -R a+rw default

次に、サブディレクトリまたはサブドメインからサイトにサービスを提供する方法を理解する必要があります。 以下の適切なセクションを選択してください。

サブディレクトリを使用して複数のサイトにサービスを提供


Drupalは、集中型ドメインのサブディレクトリから個別のサイトにサービスを提供するように構成できます。 たとえば、「example.com/site1」と「example.com/site2」をそれぞれ個別のコンテンツやテーマなどにすることができます。

Drupalがリクエストをディレクトリに関連付ける方法


まず、Drupalは、「sites」ディレクトリ内のディレクトリ構造を調べて、Drupalに渡されるドメインのリクエストを解決することを理解する必要があります。

「デフォルト」ディレクトリは、その機能を完全に説明しています。 他に一致するものが見つからない場合に提供されるデフォルトのコンテンツが含まれています。

ただし、サイトのサブディレクトリに一致する他のディレクトリを作成したいと思います。 これを行うには、サイトのメインドメイン名(「www」なし)に続けて、スラッシュの代わりにドットを指定し、サブディレクトリ名を指定します。

たとえば、「 http://www.example.com/firstsite」にアクセスしてアクセスするサイトには、「example.com.firstsite」というディレクトリを指定する必要があります。

サイトディレクトリを作成する

以前に構成したデフォルトのディレクトリを、「/ var / www / drupal/sites」ディレクトリ内の2つの別々のディレクトリにコピーします。

作成するDrupalサイトごとに同じ権限が必要になるため、権限を保持するために「-a」フラグを使用します。

 cp-デフォルトのexample.comfirstsite cp -adefaultexample.comセカンドサイト

これで、これらのサイトのリクエストを処理するディレクトリ構造ができましたが、ApacheがDrupalに分類するトラフィックを誘導するような変更は加えていません。

これを行うには、Webルートディレクトリ内からdrupalルートディレクトリへのシンボリックリンクを作成し、それぞれがサイトを記述します。

sudo ln -s / var / www / drupal / var / www / firstsite sudo ln -s / var / www / drupal / var / www / secondsite

これで、次の場所に移動して、個別のDrupalインストールをセットアップできます。

http://www.example.com/firstsite
http://www.example.com/secondsite

サイトごとに構成した個別のデータベース情報を必ず入力してください。

独立したドメインで複数のサイトにサービスを提供


2つの完全に別個のドメインを購入した場合は、上記のサブディレクトリ方式で使用されるのと同じ手順のほとんどを実行しますが、ディレクトリに別の名前を付ける必要があり、ドメインを構成するために仮想ホストファイルを変更する必要があります。

このセクションでは、ドメインが両方ともVPSに向けられていると想定します。 区別するために、「firstsite.com」と「secondsite.com」という名前を使用します。

まだそこにいない場合はDrupalサイトディレクトリに移動し、デフォルトを適切な名前のサブディレクトリに再度コピーします。 命名規則に「www」を含めないでください。

cd / var / www / drupal / sites cp -a default firstsite.com cp -a default secondsite.com

Apache仮想ホストを構成する


繰り返しになりますが、正しいドメインをDrupalに渡す方法をApacheに通知できる必要があります。 これは、仮想ホストファイルを使用して行います。

Apacheのサイトの利用可能なディレクトリに移動し、Drupal用の新しい仮想ホストファイルを作成します。

cd /etc/apache2/sites-available
sudo nano drupal

このファイルのwebrootにあるdrupalフォルダーを両方の名前で指定する必要があります。 次の形式を使用します。

 DocumentRoot / var / www / drupal ServerName  www.firstsite.com  ServerAlias  firstsite.com  * .firstsite.com

DocumentRoot / var / www / drupal ServerName www.secondsite.com ServerAlias secondsite.com * .secondsite.com

ファイルを保存して閉じます。

次のように入力して、新しいサイト構成を有効にします。

sudo a2ensite drupal

サーバー構成をリロードします。

sudo service apache2 restart

次のサイトにアクセスして、ブラウザでサイトを設定できるようにする必要があります(ドメイン名を正しく設定していることを前提としています)。

www.firstsite.com
www.secondsite.com

サブドメインを使用して複数のサイトにサービスを提供


個別のサイトにサービスを提供するようにこれを構成できる3番目の方法は、単一の親ドメイン内でサブドメインを使用することです。

たとえば、1つのサイトを「 first.example.com 」に配置し、もう1つのサイトを「second.example.com」に配置することができます。

これを完了するために、適切なサイトディレクトリの作成からやり直します。

cd / var / www / drupal cp -a default first.example.com cp -a default second.example.com

Apache仮想ホストファイルを作成して、ベースドメインがドキュメントルート内の「drupal」サブディレクトリを指すようにします。

cd /etc/apache2/sites-available
sudo nano drupal

次の基本構成をファイルに入れます。

 DocumentRoot / var / www / drupal ServerName  www.example.com  ServerAlias  example.com  * .example.com

ファイルを保存して閉じます。

次のように入力して、新しいサイトを有効にします。

sudo a2ensite drupal

サーバー構成をリロードします。

sudo service apache2 restart

次のサイトにアクセスすると、ブラウザでサイトを設定できます。

first.example.com
second.example.com

結論


これで、単一のDrupalインスタンスで複数の無関係なサイトを構成する方法をマスターしました。 これがすべての場合に最適なソリューションであるとは限らないことに注意してください。

コアのDrupalロジックは共有されているため、すべての個別のドメインの管理者を信頼する必要があります。 すべてのサイトを管理していて、それらに同様の要件がある場合、これは優れたソリューションになる可能性があります。

ジャスティン・エリングウッド