一応、非公開グループを作製することで非公開ディスカッションが可能ではあるけれど、トピック単位でフォーラムを立てて非公開議論できた方が楽かもしれないので、フォーラム機能追加プラグインであるbbPressをインストール。管理ユーザーにフォーラム管理者の権限を付与しておく。
BuddyPressの日本語化
BuddyPressの日本語化もプラグインで可能。
新規プラグインでBuddyPress Translationsを検索し、インストールする。最近のWordPressではテストされていないと警告が出るが、これは単に翻訳ファイルをリポジトリから取ってくるだけのプラグインなので警告は無視する。
このプラグインはネットワーク全体で有効化しておく。これだけでブログの言語が日本語に設定されていればBuddyPressのインターフェースも自動的に日本語になるみたい。
BuddyPressのインストール
BuddyPressのインストールは簡単。WordPressにサイトネットワーク管理者でログインしてプラグインの新規追加でBuddyPressを検索してインストールする。
ここで注意しないといけないのは、初期のBuddyPressではサイトネットワークのトップであるID=1のブログにしかSNSがぶら下げられないこと。そこで、すべてのサイトで必要ならBuddyPressを有効にできるように以下の様にWordPressをカスタマイズする。
/var/www/wordpress/wp-config.php
define(‘BP_ENABLE_MULTIBLOG’, true);
この一行を以前にマルチサイトの設定を記述したところの下に追加する。これによってBuddyPressがID=1以外のブログでも付け加えることができるようになる。
プラグインをネットワークで有効化してしまうとすべてのブログに強制的にBuddyPressによるSNS機能が付与されてしまうので、プラグインそのものはネットワークでは無効化しておく。そうすることで、各ブログのダッシュボードから個別にプラグインを有効化できるようになる。
SNSの構築
某所よりプライベートなSNSを構築して欲しいという要請を受けて、現在のサーバーであるDebianで構築できそうなオープンソースのSNSプラットフォームをいろいろと検討してみた。ほとんどのメジャーなプラットフォームはPHP+MySQLという環境で構築できるので現在のDebianサーバーでも動かせることは動かせるのだが、どれもパッケージ化されていないので、バージョンアップ等のメンテナンスがすべて手動になってしまう。そのため、管理者の不注意によってはセキュリティが危うくなったりするかもしれないので、できればそういう無駄な労力は増やしたくないところ。
で、もっと自動で管理できて手間のかからない方法はないかということで辿り着いたのがWordPress上でSNSまがいなものが構築できるBuddyPress。これならWordPressプラグインなので、バージョンアップ時の更新はWordPressが自動的に行ってくれるはずだ。
というわけで、最終的にここに落ち着くことにしたので、BuddyPressによるSNSを構築する。唯一の気掛かりはBuddyPressだとユーザーが全部WordPressサーバーのユーザーとしてぶら下がることになるので、ユーザーがばかばか増えると管理が面倒だななということ。まあ、ユーザーにブログサイトを作らせると面倒だけど、SNSの投稿しかさせないことにすればユーザー管理の手間も最小限にできるだろう。できれば、BuddyPressの管理も外部にまかせてユーザーを登録する作業をお願いしてしまいたいところだが、その部分だけ権限委譲できるかどうかはちょっと要調査。
Debian Mailmanのお引越し
今度はMailmanのメーリングリストをお引越しする。まずはmailmanのサービスの停止。
service mailman stop
まずはlistユーザーにsuしてnewlistを使って旧サーバーと同じ名前で新サーバーで空のメーリングリストを作成しておく。最初はアーカイブが公開になっているので、非公開のメーリングリストはarichives/publicにあるシンボリックリンクを削除しておく。
旧サーバーでmailmanフォルダ内のlistsとarchives/privateをtarで固める。このとき、tar pzcfの様にpオプションを付けてパーミッションが保存されるようにしておく。このtarファイルを新サーバーにコピーする。
念の為、listsとarchives/privateをリネームして保存しておいてから、tarファイルをこれまたtar pzxfの様にpオプションを付けてパーミッション付きで展開する。その後、listsフォルダ内の全ファイルをlists:lists所有に、archives/private内の全ファイルをlists:www-data所有にchown -Rで変更する。
これで新サーバーでも旧サーバーと全く同じメーリングリストが設定される。後はmailmanを再起動すれば元通り。
service mailman start
Debian WordPressのお引越し
本来ならデータベースをダンプして、それを新サーバーに取り込むのがお作法なのだろうけど、それは面倒なので、エクスポート&インポートで再現することにする。
WordPress Importプラグインは最初はインストールされていないので、インストールしてネットワークで有効化しておく。
旧サーバーと同様に新サーバー上にユーザーとブログを作成したら、旧サーバーの各ブログのダッシュボードから全コンテンツをエクスポート。そのファイルを今度は新サーバーのブログのダッシュボードからインポートする。これでカテゴリーやらエントリーやらコメントやらはすべて元通りになる。
後は見栄えのカスタマイズを手でコネコネと再現するだけ。
Debian 細々とした管理のための追加設定
管理するのに便利なように細々とした設定を追加。
ひと通り必要なパッケージはインストールが終わったので、これ以後はaptでパッケージの更新をする時に必ず更新内容が表示されるようにする。
すでにapt-listchangesはデフォルトでインストールされているので、dpkg-reconfigure apt-listchangesで最後の質問でインストール前に更新内容を表示するように変更する。
次に更新があったパッケージをroot宛にメールで通知するようにする。これは単純にapticronをインストールするだけ。
apt-get install apticron
多分デフォルトの設定で問題なし。ただ、デフォルトだと1時間ごとに実行されるのでさすがにそれはうざい。一週間に一度実行されるように/etc/cron.d/apticronを書き換えておこう。44 * * * *になっている部分を0 6 * * 7に変更する。これで、Weeklyスクリプトが動く時にその直前に実行される。
最後に、毎日ログをおさらいして問題があった場所をメールで報告してくれる便利パッケージも入れておこう。これはlogwatchパッケージをインストールする。
apt-get install logwatch
これも多分デフォルトのままでいいので、インストールしただけで放置。
Debian WordPressインストール その3 WordPress本体
ja.wordpress.orgから3.6.1-jaのパッケージをダウンロード。面倒なのでDebianのApacheのDocument Rootである/var/wwwの直下に展開しちゃう。
/var/www/wordpress以下すべてのファイルをApacheの実行ユーザーであるwww-data:www-dataの所有に変更しておく。
chown -R www-data:www-data /var/www/wordpress
とりあえず、http://[servername]/wordpress/にアクセスして画面の指示どおりにインストール。ついで、以前のエントリー通りにマルチサイト化するためのフレーズと自動アップデートのためのフレーズを/var/www/wordpress/wp-config.phpの最後に追記。
WordPressにadminでログインして、ツール->ネットワークからマルチサイト化する。ネットワークをなんと呼ぶか?という質問が増えているがとりあえずかっこつけて”BAM-System Blog Network”とでも入力しておく。後は指示どおりにごにょごにょすればマルチサイト化が完了する。
ここで、自分のユーザーを作成しようと思ったら、なんといつの間にか4文字よりも短いユーザー名はダメというルールになったらしい。それは困る。というわけで、4文字制限を3文字制限に強引に変えてしまおう。
いじるファイルは/var/www/wordpress/wp-includes/ms-function.php
if ( strlen( $user_name ) < 4 )
という行を見つけて、これを3にしておく。ついでにその次の行のエラーメッセージも4->3に変えておくか。これで3文字のユーザー名も受け入れてくれるはず。
自分用のユーザーとブログを作成した後、デフォルトで最初に作られるトップディレクトリのブログの所有権と特権ユーザーを自分に指定した後、adminユーザーは削除してしまおう。
Debian WordPressインストール その2 PHP5
というわけで、続けてPHP5とphpMyAdminのインストールを行う
apt-get install php5 phpmyadmin
インストール中にphpMyAdminがいろいろ設定を要求してくる。まずは、連携するhttpdにApacheを選択。サーバー管理をdbconfig-commonにおまかせにするか手動にするかの選択はおまかせに。次にデータベース操作のためのMySQLのルートパスワードを入力。最後に、非管理者権限でphpMyAdminがMySQLと連携するためのパスワードだが、どうせこれはphpMyAdminがMySQLとの間で使うだけなので空欄にして自動生成させる。
これだけでちゃんとApacheの設定にphpMyAdminが追加されてphpMyAdminがウェブベースで使えるようになっているはずデフォルトではサーバーのドキュメントルート直下の/phpmyadminにアクセスすれば立ち上がるはず。
とりあえずrootでログイン。次にデータベースタブから新規データベース’wordpress’を作成する。
次にWordPress用のユーザーを作成する。特権タブから新しいユーザーを追加する。ユーザー名はwordpress、パスワードは自動生成してメモしておいてもいいが、今回はパスワードジェネレーターで作成したものを貼りつけた。外部からアクセスすることはないので、localhostからのアクセスに制限しよう。作成後、特権を編集で、wordpressデータベースに対してすべての権限を有効にしておく。
以上でWordPress用のデータベースの準備は完了。WordPress本体はパッケージでなく手動でインストールすることで、WordPress内部からの更新でメンテできるようにする。
Debian WordPressインストール その1 MySQL
まずはMySQLをDebianにインストールする。
apt-get install mysql-server
途中、MySQLのrootのパスワードを要求されるので、パスワードジェネレーターで作ったパスワードをとりあえず入力。
例によってMySQLはインストール時には危険な状態(いい加減なんとかしろよ!)でインストールされるので、セキュリティを向上させる初期スクリプトを走らせる。
/usr/sbin/mysql_secure_installation
最後にWordPress用のデータベース作成だが、せっかくなのでphpMyAdminを利用して見ることにする。