WordPressのマルチブログ化(サブディレクトリ)

本サイトは1つのWordPressシステムで複数のブログを運営しています。ただ、通常はインストールしても1つのブログしか運用できません。1ブログ1WordPressなのです。そこを多少設定変更するとマルチブログ化ができます。多少Linuxを触れることが前提となりますが、OSからセットアップできている本サイトの読者様であれば何の問題もございませんので、必要であればチャレンジしていただきたいです。
それでは作業開始です。

ログインして、「ツール」「サイトネットワークの設置」に進み、情報を入力して「インストール」。すると

----(ここから)----
サイトネットワーク作成機能を有効化するには、次の手順を実行します。

注意: 既存の wp-config.php ファイルをバックアップしておくことをお勧めします。

/var/www/html/wordpress/ にある wp-config.php ファイルの /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ という行の上に、次の内容を追加してください:

define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘192.168.0.200’);
define(‘PATH_CURRENT_SITE’, ‘/wordpress/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);

次の内容を /var/www/html/wordpress/ にある .htaccess ファイルへ追加して、他の WordPress ルールを置き換えてください:

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]

これらの手順を完了すると、サイトネットワークの有効化と設定を行います。再度ログインする必要があります。
----(ここまで)----

と表示されるので、それに従ってファイルを修正・追加します。(この時点では.htaccessは存在しなかったので新規作成)

※ DOMAIN_CURRENT_SITEは現時点では192.168.0.200ですが、最終的には本サイトの場合では’ysugi.iobb.net’というように一般的なドメイン名になります。これは外部公開の話になったときに記事にします。

が。実はapacheの設定が.htaccess無効になっています。有効にしましょう。
# vi /etc/httpd/conf/httpd.conf
 #AllowOverride None
 AllowOverride All
# systemctl restart httpd.service

最後にサブディレクトリ用にサブディレクトリを用意します。
# cd wp-content/
# mkdir blogs.dir
# chown apache:apache blogs.dir

その後ログインし直すと、管理画面の「ホーム」に「参加サイト」が追加されます。(「ツール」から「サイトネットワークの設置」は消える)
また、管理画面左上の(W)アイコンの横がサイト名だったのが「参加サイト」に変更されています。この「参加サイト」から「サイトネットワーク管理」を選ぶとサイトの管理画面になり、ここで「新規追加」することで複数のブログを管理できるようになります。

また、apacheはファイルなしディレクトリだとファイル一覧を表示する癖があるので修正しておきます。
# vi /etc/httpd/conf/httpd.conf
 #Options Indexes FollowSymLinks
 Options FollowSymLinks

昔は Options -Indexes FollowSymLinks だったんですが、いつの間に・・・

修正したのでapacheを再起動させます。

# systemctl restart httpd.service

これでOKです。

投稿者: ゆうじ

ん、なんだね?

コメントをどうぞ

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