WordPressのマルチサイト機能を有効化する

| コメントをどうぞ

WordPressのマルチサイト機能について調べる機会があったので、機能の有効化とつまづいた点を記します。

WordPressのインストールは完了しているものとします。
今回試した環境は次の通りです。

  • CentOS 6.5
  • WordPress 3.9.1

WordPressの設定ファイルwp-config.phpを編集します。
以下の行を追記します。

define('WP_ALLOW_MULTISITE', true);

WebブラウザでWordPressのダッシュボード(管理画面)を表示します。
左メニューのツールからネットワークの設定を選択すると、WordPress サイトのネットワークの作成画面が表示されるのでインストールボタンをクリックします。

画面に表示されている指示に従い2件の作業を実施します。

1件目:wp-config.phpの編集

テキストエリアの内容をwp-config.phpにコピーします。
以下は例です。

…(省略)…
define('WP_DEBUG', false);

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '${host}');
define('PATH_CURRENT_SITE', '/wordpress/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
…(省略)…

2件目:.htaccessの編集

テキストエリアの内容を.htaccessに書き換えます。
<IfModule mod_rewrite.c></IfModule>の間をエキストエリアの内容で書き換えます。
以下は例です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

なお.htaccessはWordPressを/var/www/htmlディレクトリ直下にインストールしている場合は以下のパスになります。

/var/www/html/wordpress/.htaccess

ログインし直してダッシュボードを表示し、左上に参加サイトというメニュー項目が表示されていればマルチサイト機能が有効になっています。

上記の手順でマルチサイト化後、投稿した記事を表示しようとすると「404 Not Found」エラー。
これは.htaccessファイルの参照ができないことが原因のようでした。

解決するにはApacheの設定ファイルを編集します。
(設定ファイルのパスは/etc/httpd/conf/httpd.confです。)

<Directory "/var/www/html"></Directory>の間のAllowOverride NoneAllowOverride Allに書き換えます。
以下は例です。

<Directory "/var/www/html">
…(省略)…
    AllowOverride All
…(省略)…
</Directory>

参考資料:http://itpro.nikkeibp.co.jp/article/COLUMN/20080512/301299/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>