WordPressで複数サイトのインストール

レンタルサーバでのWordPressの複数インストールは説明しているサイトが多いですがここでは複数のデータベースで複数WordPressを”サーバ”にインストールする場合での設定方法を説明します。

前提条件

WordPressのサーバが構築できていること。

レンタルサーバではなく、完全な権限を持っているサーバであること

Apache + php + mysqlでサーバが構築できていること

2サイト目のドメインネームを入手していること。

スポンサーリンク

複数インストールとの違い

・DBを完全に分離することができる。

・サイトの構造も別となるためプラグインのテストや完全に別サイトとして構築することができる。

・WordPressの機能ではなく、Apacheでのマルチサイトの構築で複数のWordPressサイトを構築する。

WordPressの準備

  1. データベースの作成

    新規サイト向けに新しくDBを作成します。

    # mysql -u root -p
    mysql> CREATE DATABASE seo_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> GRANT ALL ON seo_db.* TO seouser@localhost IDENTIFIED BY 'seopass';
    mysql> exit
  2. WordPressのインストール

    WordPressをダウンロードして解凍する。

    # cd /var/tmp
    # wget http://ja.wordpress.org/latest-ja.tar.gz
    # tar xzvf latest-ja.tar.gz
    

    WordPressの設定を編集する。

    # cd wordpress
    # emacs wp-config.php
    

    MySQLでデータベースを作った時のデータベース名と、ユーザ名/パスワードを入力する。

    /** WordPress のためのデータベース名 */
    define('DB_NAME', 'wordpress_db');
    
    /** MySQL データベースのユーザー名 */
    define('DB_USER', 'wordpressuser');
    
    /** MySQL データベースのパスワード */
    define('DB_PASSWORD', 'wordpresspass');
    

    https://api.wordpress.org/secret-key/1.1/salt/
    にアクセスし入手した情報を貼り付ける。
    ※新規にサイトにアクセスし設定してください。

    define('AUTH_KEY',         ',?}9^(=5jbj-3HF8Y86NqB_3h3h2])CQ}-{L27kaIJZYg{?Kh;BcphePB_lP6&qu');
    define('SECURE_AUTH_KEY',  'K#llsyn5tw|yzRX^U$W+|fHcW7q YxCD(S?k%],=|^Bb{-`iApNPqpcb@;+#Dzg;');
    define('LOGGED_IN_KEY',    'Yk@@0D/[D1%7 |:aqea4r]kwO~K}K[zRH;b3KD+P,;didd$p${BhUgu%js5;Qt4.');
    define('NONCE_KEY',        'lSH>jm5r2!E.{L>)2,B+$^M|0g#VWfU,_^m6h}dGa51K2U=%(%NO?yQyNjB:g=hW');
    define('AUTH_SALT',        ';&ub-W]l>h2m|]!T;q~V5;Lmqm>3Q<i({b33e!J(2n0cdJg)yh}+!bC6$(ytYaW:');
    define('SECURE_AUTH_SALT', '3B!9kSErNd5DY)(2~~4v|h)vH|mA6B7DuG+fX!/XDd229=Y+-]5dr`^!wp&C7x;~');
    define('LOGGED_IN_SALT',   'DwVkh_L@Eq]r;7OrT^SZh5uaXtRDA1RCXhML%3i:y^<Q%&-PZygA&YhUt8:)&MSM');
    define('NONCE_SALT',       '-ZZHXMYzcog<.l-/R7omgTDM5)u=T<^9s-W,U$j-bE1-VE5&uGyp27S!,Hv`0z{~');
    

    最後に変更したファイルをApacheのフォルダに格納するのだが、その前のマルチサイト向けのディレクトリを作成する。

    # cd /var/www/
    # mkdir site2
    

    変更したファイルをApacheのフォルダに格納する、このときApacheの紐付けとapacheの再起動を実施する。

    # cp -R * /var/www/site2/
    # chown -R apache:apache /var/www/site2/
    # service httpd restart

マルチサイトの設定

マルチサイトの設定はApacheの設定で行います。
httpd.confにて設定の変更を行います。

# emacs /etc/httpd/confd/httpd.conf

まずは、VirtualHostを有効にします。

# Use name-based virtual hosting.
#
NameVirtualHost *:80

既存サイトのVirtualHostの作成

次にVirtualHostの設定の追加を行います。
まずは既存サイトの設定を作成します。デフォルトではhtmlの配下にWordPressをインストールしていますのでDocumentRootを
「/var/www/html/」とし、サーバネームにURLを入力します。

・DocumentRoot=既存サイトのディレクトリ
・ServerName=既存サイトのURL

<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName www.neteng.co:80
</VirtualHost>

新規サイトのVirtualHostの作成

次に新規サイトのVirtualHostの設定の追加を行います。
先ほど新規インストールしたWordPressのディレクトリと新規サイトのURLを入力します。

・DocumentRoot=新規サイトのディレクトリ
・ServerName=新規サイトのURL

<VirtualHost *:80>
    DocumentRoot /var/www/seo/
    ServerName seo.neteng.co:80
</VirtualHost>

この設定をすることで、「www.neteng.co」にアクセスしたユーザは「/var/www/html/」のページが表示され、「seo.neteng.co」のサイトにアクセスしたユーザは「/var/www/seo/」のページが表示させることができます。

長くなったので次のページにてVirtualHostでのHTTPS化を説明します。