ステータス:非推奨

この記事では、サポートされなくなったバージョンの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のバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章

WordPressは人気のあるCMS(コンテンツ管理システム)であり、サイトをすばやく簡単に立ち上げるのに役立ちます。 場合によっては、同じサーバー上で複数の無関係なサイトをホストする必要があります。

このガイドでは、1つのVPSで2つの別々のWordPressインスタンスをホストする方法について説明します。 それぞれに独自のドメイン名があります。 これは、マルチサイトの設定とは異なります。

これは、仮想ホストを使用して実現します。 このガイドではUbuntu12.04VPSサーバーを使用しますが、他のディストリビューションも同様に機能するはずです。

前提条件

このガイドには、他のいくつかの記事で詳細に説明されているいくつかの要件があります。 始める前に、以下を完了していることを確認してください。

  • WordPressサイトをホストするための新しいDigitalOceanVPSを作成します。 このガイドに従って、初期サーバー構成を完了します。
  • DigitalOceanで2つのドメイン名を設定します。 このガイドを使用して、DigitalOceanドメイン名を設定する方法を学習してください。
  • このガイドを使用してUbuntuにLAMPスタックをインストールします。

この時点で、UbuntuにLAMPがインストールされているはずであり、両方のドメイン名がドロップレットを指している必要があります。

Webブラウザでドメイン名にアクセスして、これが当てはまることを確認してください。 どちらのドメインでも、同じデフォルトのApacheインデックスページが表示されます。

Default Apache index page

ドメインでこのページが表示されない場合は、DNSの変更が反映されるのを待つ必要があるか、前の手順で何かを誤って構成した可能性があります。 これが解決されるまで続行しないでください。

WordPressをダウンロード

準備ができたら、サーバーにログインしてホームディレクトリに移動します。 ここからファイルをダウンロードします。

cd
wget http://wordpress.org/latest.tar.gz

次のコマンドを発行して、アーカイブファイルを解凍および解凍します。

tar xzvf latest.tar.gz

サイトデータベースとユーザーを作成する

続行する前に、MySQL内のサイトごとに独立したデータベースとユーザーを構成する必要があります。 これにより、サイトデータが確実に分離されます。

このガイドでは、次の情報を使用します。

サイト名 firstsite.com secondsite.com
データベース名 FirstDatabase SecondDatabase
データベースユーザー FirstUser SecondUser
データベースパスワード FirstPassword SecondPassword

上記の表は、使用するコマンドのコンテキストを提供するために提供されています。 次のコマンドを入力するときは、独自の情報に置き換えてください。

MySQLのインストール中に構成した管理者アカウントを使用してMySQLにログインします。

mysql -u root -p

MySQLルートパスワードの入力を求められた後、MySQLプロンプトが表示されます。

次のコマンドを使用して2つのデータベースを作成します。

CREATE DATABASE FirstDatabase;
CREATE DATABASE SecondDatabase;

各データベースに関連付けられるユーザーを作成します。

CREATE USER FirstUser@localhost;
CREATE USER SecondUser@localhost;

次に、各アカウントのパスワードアクセスを設定します。

SET PASSWORD FOR FirstUser@localhost= PASSWORD("FirstPassword");
SET PASSWORD FOR SecondUser@localhost= PASSWORD("SecondPassword");

新しいユーザーに特権を付与して終了します。 これにより、データベースユーザーがそれぞれのデータベースに関連付けられ、適切な権限が付与されます。

GRANT ALL PRIVILEGES ON FirstDatabase.* TO FirstUser@localhost IDENTIFIED BY 'FirstPassword';
GRANT ALL PRIVILEGES ON SecondDatabase.* TO SecondUser@localhost IDENTIFIED BY 'SecondPassword';

MySQLの特権情報を更新して、変更を実装します。

FLUSH PRIVILEGES;

MySQLを終了して、シェルセッションに戻ります。

exit

サイトルートディレクトリの構成

サーバーのWebルートの個々のディレクトリ内に両方のサイトをインストールします。

「/var/www/」ディレクトリに移動します。

cd /var/www

各サイトのディレクトリを作成します。 これらはサイトファイルを保存します:

sudo mkdir FirstSite
sudo mkdir SecondSite

Webコンテンツをフォルダに移動する前に、サンプル構成をコピーします。

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

最後に、サーバーのWebルートの下に作成したディレクトリにファイルをコピーします。

sudo rsync -avP ~/wordpress/ /var/www/FirstSite/
sudo rsync -avP ~/wordpress/ /var/www/SecondSite/

ディレクトリの所有権をApacheWebユーザーに付与してから、Linuxユーザー名をWebグループに追加します。

sudo chown www-data:www-data * -R
sudo usermod -a -G www-data linux_user_name

WordPressの構成

各サイトをサイトに関する情報で構成します。

最初のサイト構成

ディレクトリを最初のサイトのドキュメントルートに変更します。

cd /var/www/FirstSite

編集のためにWordPress構成ファイルを開きます。

sudo nano wp-config.php

以下のフィールドを含むセクションを見つけて、最初のサイトの代わりにデータベース、ユーザー名、およびパスワードを使用してください。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'FirstDatabase');

/** MySQL database username */
define('DB_USER', 'FirstUser');

/** MySQL database password */
define('DB_PASSWORD', 'FirstPassword');

保存して終了。

2番目のサイト構成

ディレクトリを2番目のサイトのドキュメントルートに変更します。

 cd /var/www/SecondSite

編集のためにWordPress構成ファイルを開きます。

sudo nano wp-config.php

前のサイトで編集したのと同じセクションを見つけます。 今回は2番目のサイトの情報を入力します。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'SecondDatabase');

/** MySQL database username */
define('DB_USER', 'SecondUser');

/** MySQL database password */
define('DB_PASSWORD', 'SecondPassword');

保存して終了。

Apache仮想ホスト構成

各ドメインからそれぞれのディレクトリにトラフィックを転送するようにApacheを設定する必要があります。 これを行うには、ドメインごとに個別の仮想ホストファイルを作成します。

ディレクトリをApacheの利用可能なサイトディレクトリに変更します。

cd /etc/apache2/sites-available

デフォルトの仮想ホストファイルをコピーして、サイトごとに新しい仮想ホストファイルを作成します。

sudo cp default FirstSite
sudo cp default SecondSite

最初のサイトの仮想ホスト構成

コピーした最初のファイルを開いて、最初のサイトの仮想ホストを構成します。

sudo nano FirstSite

ファイル内の情報を以下に一致するように変更します。 最初のサイトと一致するように、赤で情報を置き換えることを忘れないでください。

<VirtualHost *:80>
	ServerAdmin your_email_address
	ServerName firstsite.com
	ServerAlias www.firstsite.com
	
	DocumentRoot /var/www/FirstSite
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/FirstSite>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
. . .
. . .

きれいなパーマリンクを有効にする必要がある場合は、「AllowOverrideNone」を「 「AllowOverrideAll」にブロックします。 かなりのパーマリンクの要件について詳しくは、こちらをご覧ください。

変更を加えたら、ファイルを保存して閉じます。

2番目のサイトの仮想ホスト構成

編集のために2番目の仮想ホストファイルを開きます。

sudo nano SecondSite

2番目のサイトの情報を反映するように情報を変更します。

<VirtualHost *:80>
	ServerAdmin your_email_address
	ServerName secondsite.com
	ServerAlias www.secondsite.com
	
	DocumentRoot /var/www/SecondSite
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/SecondSite>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
. . .
. . .

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

最終構成

私たちのサイトを機能させるために必要ないくつかのステップがあります。

まず、WordPressが正しく機能するには、追加のPHPモジュールをインストールする必要があります。 次のように入力してインストールします。

sudo apt-get install php5-gd

次に、次のように入力して作成した仮想ホストファイルを有効にします。

sudo a2ensite FirstSite
sudo a2ensite SecondSite

最後に、Apacheをリロードして、変更を読み取ります。

sudo service apache2 reload

結果を見る

新しいWordPressサイトを表示するには、Webブラウザでドメイン名に移動するだけです。

すべてを正しく構成した場合は、次のようなページが表示されます。

WordPress Initial Login

これで、ログインして各サイトを個別に構成できます。 これらのサイトは完全に分離されており、2つのまったく異なるVPSサーバーに存在するかのように管理できます。

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