Counterize II

5月 15th, 2009

アクセス解析は webalizer で行っていますが、複数のブログを運用している中でそれとなくカウンターが付けられたらいいなと思い導入しました。
また、このプラグインより前に IP City Cluster というものが見付かったので、こちらも導入したいと思います。

とはいえコンソールですべき作業はなさそう。
展開してプラグインディレクトリに投入してやると問題なく動作し始めました。

話がそれますが、API Key の居る WordPress.com Status というのを入れようとしたのですが、こちらは WordPress.com で登録したアカウントのブログ情報に対して集計を掛けるようで、Akismet のようにブログ毎に共通キーで適用できるのかが心配。
設定中にエラーが出て??となり使用を停止したのだが Counterize II の調子は良かった。

さて、展開時に *-ja_* という日本語モジュールが見られた気がするのですが、日本語になっていない。
これは少し面白くないが readme には載っておらず、本家サイトもタグをクリックすると応答がなくなり意気消沈。
ディレクトリの一覧を見ると mo po というよく見る日本語化モジュールのようなので、どこかにその設定があるだろうと .php の内容を確認していく。
結局 .php 内に記述が無かったので、グローバル化されたモジュールを読み込む基本機能が WordPress の Plugin 機能に実装され、プラグインファイル名に – で文字コードを結合した mo po ファイルを使用するのではないかと判断。
だが、それならば何故日本語化されていないのか。
※詳しくは WordPress ドキュメントのプラグインの作成などを参照

暫く迷った後望みを Google 先生に託したところこちらのサイトが紹介されていた。
Wordpressのアクセス解析(カウンター)プラグインCounterize IIを導入 | 無料で使える情報探す「おぼえがき」
どうやら _UTF という文字列が障害要因のようだったので、早速 cp して確認すると、無事日本語化できていた。

上記サイトでログ表示の拡張などがあがっていたが、編集に入る前に状況を確認しよう。

◆どこに追加されたか

  • ダッシュボード
    ここの『現在の状況』が拡張され Counterize II の簡単な情報が表示されている。
    表示される内容は「合計」「今日」「現在」の値のみだ。
    また、タブから投稿内の項目である Counterize II へジャンプが可能になっている。
  • 投稿
    『Counterize II』 という項目が増えている。
    こちらでは詳細な情報が集計されている。
    ここに表示される内容は設定項目で設定するようだ。
  • 設定
    『Counterize II』 という項目が増えている。
    投稿項目の Counterize II で表示される集計の設定が可能だ。

使い方としては、集計を見ることはそれほどないだろう。
多分アクセス解析としては webalizer で十分と判断しているためだ。

ここで、上記利用方法を紹介されているサイトのコピペにてテーマに埋め込む項目を追加する。
WordPress 内でも構わないと思うが diff が欲しいのでコンソールで編集して記録を残す事にする。

検索のポイントは return $wpdb->get_var($sql) がいいだろう。
文字列を返すだけの関数で、ページヘッダやサイドバーに埋め込む事ができそうだ。
どの関数がそういう結果を返すのか確認と羅列してみよう。

counterize_getamount($only_this_month = false)
counterize_getuniqueamount()
counterize_getkeywordamount()
counterize_gethitstoday()
counterize_getuniquehitstoday()
counterize_getlatest7days()
counterize_getuniquelatest7days()
counterize_get_online_users()
counterize_getHitsOnCurrentArticle()
counterize_getuniquereferers()
counterize_getuniquebrowsers()
counterize_getuniqueurl()
counterize_getUserAgentID($useragent)

これらを表示させ、使えそうな情報を選定する。
一応帰ってくる値は全て数値であるのでカウントである事がわかる。
また、アクセスの度に unique 指定の無い関数がカウントアップされ unique 関数はカウントアップされない事から unique とはリロードなど、同一アクセスがカウントされないということが想定できる。
つまり、トップなどに表示したりカウンタとして利用するのなら、とにかくカウントアップする counterize_getamount() より、同一ユーザーのアクセスを排他する counterize_getuniqueamount() の方が適切だといえよう。

一旦 unique の問題を忘れ、使用に適していると考えられる関数を用途と共に記そう。

<ul>
<li>現在:<?php echo counterize_get_online_users();?></li>
<li>今日:<?php echo counterize_getuniquehitstoday();?></li>
<li>週間:<?php echo counterize_getuniquelatest7days();?></li>
<li>合計:<?php echo counterize_getuniqueamount();?></li>
</ul>

他の値は解析ならともかくユーザーに見せるものでもないので割愛する。
細かい点はログインして確認すればよいのだ。
またCMSとしては必要なのかもしれないが、自分には今日の昨日を比較するという習慣がないので追加関数は定義しない事にする。


次に IP City Cluster を導入してみよう。
Counterize II 同様に展開以外の手間はなさそうだ。
ですが、インストレーションにこんな注意書きがある。

PHP の実行時間が 30 秒以上になる可能性があり、それを拡張するためセーフモードでない必要がある。
画像生成に 5 分掛かる古いサーバーもある。

すみません。
導入は辞退させていただきます。

phpBB の続き

2月 17th, 2009

今回は translation の適用と MODs の適用だ。
先日は MODs について確りと読まずに進めるつもりでそこまで辿り着かなかったが、今日は温かいので目を通してみようかと思う。
また translation 適用後に MODs を入れると大概 ja language が無いとお叱りを受けるので、標準設定で MODs を入れて動作を確認した後に translation をマージすると良いのではないだろうか。


◆言語
言語ファイルの入手は以下から可能だ。
Languages
展開する分には問題ないと思うので展開しておく。

# cd /usr/local/src
# wget http://www.phpbb.com/files/language_packs_30x/lang_ja.tar.gz
# wget http://www.phpbb.com/files/language_packs_30x/subsilver2_ja.tar.gz
# wget http://www.phpbb.com/files/language_packs_30x/prosilver_ja.tar.gz
# cd /usr/share/phpBB3/language/
# tar xzvf /usr/local/src/lang_ja.tar.gz
# cd ../styles/
# tar xzvf /usr/local/src/prosilver_ja.tar.gz
# tar xzvf /usr/local/src/subsilver2_ja.tar.gz

展開が出来たら phpBB へ Administrator でログインして、ページの一番下にある「Administration Control Panel」に移動してパスワードを再入力して管理画面へ入る。

項目やらタブが沢山ありますが『SYSTEM』タブへ移動する。
GENERAL TASKS 項の「Language packs」を選択すると日本語が入っていますね。
そして「Install」 を押して問題がなければ …successfully…. と表示される。

確認しよう。。。
迷った。。。
『GENERAL』タブに移動して「Board settings」を選択する。

Default language: 日本語

これでトップの表示が日本語になります。
画面右上の『Administration Control Panel』 付近に Board index リンクがあるのでクリックして確認できますが Administrator が US 言語設定になっているのでログアウトしないと確認できません。

ここからしばらく悩みました。
本家に README を探しに行く方が先決だと思うのですが、データベースを覗き見して phpbb_config テーブルのレコードは default_lang, ja, 0 という値になっています。
phpbb_users テーブルの user_lang カラムを見ると管理者レコードに en があります。
本来ならここに ja などが入るのでしょうか。
DBを直接操作してもよいのですが、やはり管理画面から出来た方が幸せになるので探してみます。

ありました。
『USER AND GROUPS』タグでユーザーを検索して表示した後、ドロップダウンリストで「Preference」を選択すると出てきます。
ここで例の如く日本語を選択してやると、、、はい、管理画面も全てに日本語化されましたね。
transration を作ってくださった ocean=Yohsuke 氏に多大な感謝を。


◆MODs
余談ですが「ocean 氏凄いよ!」と検索を書けたら、当人様も BB 使っているようですね。

こちら に日本語の MODs 解説なんかもありそうです。
別ページにしようかとも思いましたが波に乗って行きましょう!(ocean 氏だけに

本家MODsへ行きます。
今回は不具合要望監視のため RSS が必要という事なので RSS の MODs を検索します。
MOD Databaseに移動して「search」項から RSS 検索します。
現時点では 6 つの MOD が出てきました。
この中でバージョン 3 に対応していると思われる以下のものが候補になります。

・RSS Feed 2.0
・simple RSS mod for phpBB3
・Simple Syndication

今回は RSS Feed 2.0 を導入しようと思う。
右側にある「DOWNLOAD Modification」にて、ブラウザであれば zip が入手可能だが wget だと index.html が保存されるので MSSTI_RSS_v104.zip など本来の名前に mv します。

# wget http://www.phpbb.com/mods/db/download/6905/
# mv index.html MSSTI_RSS_v104.zip
# unzip MSSTI_RSS_v104.zip

ファイルをアップロードしたりあれこれする前に、じっくりとファイル・構成などを確認する。
現場にて MODs についていくらかドキュメントを斜め読みしていたため MODs はMODX という書式で提供され AutoMOD などの自動で MOD を導入できるスーパー MOD があるという事は予想済み。

zip を展開した後 Install_RSSFeed20_v103.xml をブラウジングする。
項目に分かれた説明があるので簡単に紹介しながら作業する。

・About this MOD
 この MOD のオーソライズデータです。
 インストールレベルは Easy で 10 分もあれば出来るそうです。

・Author
 作者に敬礼!

・Files to Edit
 編集が必要なファイルの一覧です。
 シェルを操作できない場合は FTP でこれら既存のファイルをダウンロードしてバックアップします。

・Included Files
 追加することになるファイルです。

・Additional MODX Files
 他の MODX ファイルを必要とする場合はここに表示されるかと。
 連動 MOD や設定干渉を避けるために使われるものと予想。

・Disclaimer & Other Notes
 さらっと読む。

・License & English Support
 しっかり読む。

・MOD History
 バージョンアップ時には確認しましょう。
 今回は新規導入なので気にしません。


ここから作業に入ります。
以下手順が書かれているので殆どコピペの要領で簡単に導入できます。


・SQL
 記述を DnD でも「SELECT ALL」でも良いのでコピーします。
 phpMyAdmin やシェルから SQL を実行します。
 シェルで実行する方に説明は要らないと思います。
 .sql ファイルにでもしておくとリストア時が楽かもしれません。
 phpMyAdmin の方は DB を選択して『SQL』タブにコピペして実行します。

・File Copy
 指定のファイルをコピーしましょう。
 root/ を phpBB3/ にコピーすれは良いかと思います。
 FTP でも同様です。
 ここでは language 同梱の es ディレクトリについて書かれていません。
 必要であればコピーしてくださいという観念と思います。
 既に日本語化されている環境であり内包されている rss.php は既存 ja 用ファイルをオーバーライドしないので en からコピーした ja ディレクトリを用意して一緒にコピーしましょう。
ja に設定している場合は、これをしないとエラーが出ます。

# cd MSSTI_RSS_v104b/language/
# cp -pR en ja
# cd ../
# cp -pR . /usr/share/phpBB3/
# chown -R www-data:www-data /usr/share/phpBB3/

・Edits
 Open: で指定されているファイルを開きます。
 Find で指定されている箇所を探し指示通りパッチします。
 PHP の読める方は適当なところへ、よく分からない方は Find 指定コメント直下に追記するだけです。
 Add after をコピーして vi 作業とすると、

# cd /usr/share/phpBB3/includes/
# cp -p functions.php functions.php.bak
# vi functions.php

/assigns
(Shift + a)
(ペースト)
esc
/SITE_LOGO_IMG
(Shift + a)
(ペースト)
esc
:wq

#

 で完了。
 vi のタブ補完で酷い事になったりしますが、体裁を気にしなければそのままでもよい。
 (私は修正します)
 これをファイル分繰り返します。
 言語ファイルは en を使用するのであれば指定通りに。
 en を複製した ja を使用するならパスを置き換えて作業します。

# cd ../language/ja/
# cp -p common.php common.php.bak
# vi common.php

/SEARCH_SELF
(Shift + a)
(ペースト)
esc
:wq

# cd acp
# cp -p common.php common.php.bak
# vi common.php

/ACP_WORDS
(Shift + a)
(ペースト)
esc
:wq

# cd ../../../styles/prosilver/template/
# cp -p overall_header.html overall_header.html.bak
# vi overall_header.html

/SITENAME
(Shift + a)
(ペースト)
esc
:wq

これで編集は完了です。
以下 diff を乗せておきます。

diff -U0 functions.php.bak functions.php

— functions.php.bak 2008-12-13 00:20:37.000000000 +0900
+++ functions.php 2009-02-17 15:16:25.000000000 +0900
@@ -3670,0 +3671,4 @@
+// MOD : MSSTI RSS Feeds (V1.0.4) – Start
+ $f_rss = request_var(’f', 0);
+ $t_rss = request_var(’t', 0);
+// MOD : MSSTI RSS Feeds (V1.0.4) – End
@@ -3755 +3759,12 @@
-
+// MOD : MSSTI RSS Feeds (V1.0.4) – Start
+ ‘U_RSS’ => generate_board_url() . “/rss.$phpEx”,
+ ‘S_FORUM_ID’ => $f_rss,
+ ‘S_TOPIC_ID’ => $t_rss,
+ ‘S_ENABLE_FEEDS’ => ($config['rss_enable']) ? true : false,
+ ‘S_ENABLE_FEEDS_FORUMS’ => ($config['rss_overall_forums']) ? true : false,
+ ‘S_ENABLE_FEEDS_THREADS’ => ($config['rss_overall_threads']) ? true : false,
+ ‘S_ENABLE_FEEDS_POSTS’ => ($config['rss_overall_posts']) ? true : false,
+ ‘S_ENABLE_FEEDS_EGOSEARCH’ => ($config['rss_egosearch'] && $user->data['user_id'] != ANONYMOUS) ? true : false,
+ ‘S_ENABLE_FEEDS_FORUM’ => ($config['rss_forum'] && $f_rss != 0) ? true : false,
+ ‘S_ENABLE_FEEDS_THREAD’ => ($config['rss_thread'] && $t_rss != 0) ? true : false,
+// MOD : MSSTI RSS Feeds (V1.0.4) – End
@@ -3924 +3939 @@
-?>
\ No newline at end of file
+?>

diff -U0 common.php.bak common.php

— common.php.bak 2008-12-14 10:25:04.000000000 +0900
+++ common.php 2009-02-17 15:32:55.000000000 +0900
@@ -518,0 +519,4 @@
+// MOD : MSSTI RSS Feeds (V1.0.4) – Start
+ ‘YOUR_POSTS’ => ‘Your posts’,
+ ‘RSS_FEEDS’ => ‘RSS Feeds’,
+// MOD : MSSTI RSS Feeds (V1.0.4) – End
@@ -867 +871 @@
-?>
\ No newline at end of file
+?>

diff -U0 common.php.bak common.php

— common.php.bak 2008-12-14 10:25:04.000000000 +0900
+++ common.php 2009-02-17 15:36:18.000000000 +0900
@@ -197 +197,4 @@
-
+// MOD : MSSTI RSS Feeds (V1.0.4) – Start
+ ‘ACP_RSS’ => ‘RSS management’,
+ ‘ACP_RSS_FEEDS’ => ‘RSS’,
+// MOD : MSSTI RSS Feeds (V1.0.4) – End
@@ -692 +695 @@
-?>
\ No newline at end of file
+?>

diff -U0 overall_header.html.bak overall_header.html

— overall_header.html.bak 2008-12-13 00:20:37.000000000 +0900
+++ overall_header.html 2009-02-17 15:39:02.000000000 +0900
@@ -15,0 +16,25 @@
+<!– // MOD : MSSTI RSS Feeds (V1.0.4) – Start–>
+
+<!– IF S_ENABLE_FEEDS –>
+ +<!– IF S_ENABLE_FEEDS_FORUMS –>
+ +<!– ENDIF –>
+<!– IF S_ENABLE_FEEDS_THREADS –>
+ +<!– ENDIF –>
+<!– IF S_ENABLE_FEEDS_POSTS –>
+ +<!– ENDIF –>
+<!– IF S_ENABLE_FEEDS_EGOSEARCH && S_USER_LOGGED_IN –>
+ +<!– ENDIF –>
+<!– IF S_ENABLE_FEEDS_FORUM && S_FORUM_ID –>
+ +<!– ENDIF –>
+<!– IF S_ENABLE_FEEDS_THREAD && S_TOPIC_ID –>
+ +<!– ENDIF –>
+<!– ENDIF –>
+
+<!– // MOD : MSSTI RSS Feeds (V1.0.4) – End –>
@@ -173 +198 @@
- <!– ENDIF –>
\ No newline at end of file
+ <!– ENDIF –>

※WP は blockquote しても HTML タグがコメントだとエンコードされないんですねぇ。

・DIY Instructions
 使い方が簡単に書いてあります。
 まずは管理ページにログインします。
 ログインしたらキャッシュはクリアした方が良いでしょう。
 MOD 追加後はキャッシュされる実行結果中に編集したファイルのルーチンが入っていると反映状況が分からなくなるので、一度「キャッシュの消去」の実行ボタンを押してキャッシュをクリアします。
 これはトップページにある中段のボタンが並んでいる一番下のボタンを指します。
 あまりに快適に日本語が動作するので冒頭の指針は忘れてデフォ(英語)での説明は端折ります。

 項目通りにクリックして進みます。
 「System」
 「Module management」「Administration Control Panel」
 「System」
 「General tasks」
 「ドロップダウンで RSS 選択」 「add module」「yes」
 ※「項目の編集」 モジュールを有効にする: 「はい」
 「System」
 General tasks 項の「RSS」
 お好みで設定しましょう。

という事でした。
殆どが Install_RSSFeed20_v103.xml でしたね。
こんな感じで他の MODs も追加していくといいのではないでしょうか。

久しぶりにphpBB

2月 17th, 2009

仕事の関係で phpBB を使う事になりました。
進捗管理と不具合集積に使用しようと気楽に「入れてみ?」と薦めたものの、バージョンは 3 に上がっているわ MOD 増えまくっているわ日本語ページがなくなっているわで、なんだか小躍りしそうな感じです。
懸案持ち帰りで自宅鯖にインストールする事にしました。

では以下手順。
・DB 用意
・ダウンロード
・設置
・インストール
・MODs 適用

大雑把にこんなものだったと思います。
FTP があれば DB を使用できるプロバイダなんかで利用できるので、ブログがカテゴリとモデレーターで管理できる SPB のような CMS を使いこなすのが面倒でスレッド形式になれている、という使用者は多いのではないでしょうか。

・DB 用意
 テストですし phpbb などの適当な名前の DB を作成しましょう。
 鯖管理可能なプロバイダや自宅鯖の場合は phpMyAdmin などが用意されているかと思います。
 コンソールも良いですが、担当者が変わっても手早く、入力ミスなく実行できる環境があると良いですね。
 .sh で十分ですけど。

・ダウンロード
 phpBB • Creating Communities Worldwide
 こちらからダウンロードしてきます。
 シェルに入れる方は wget などで取得すると良いでしょう。
 ファイルわ作るが面倒なので標準入力からコピペで照合します。

# wget http://d10xg45o6p6dbl.cloudfront.net/projects/p/phpbb/phpBB-3.0.4.tar.bz2
# echo ‘ef343e72f534d30d594b55cfd42e4c3a *phpBB-3.0.4.tar.bz2′ | md5sum -c
phpBB-3.0.4.tar.bz2: OK

・設置
 展開して予定の場所に設置します。
 今回重視する MODs の取り扱いですが、本来なら先に Installation Guide あたりを読むべきです。
 今日は寒くて体中が震えているので省略します。
 たまには後付け試行錯誤も良いでしょうか。

 # tar xjvf phpBB-3.0.4.tar.bz2
 # mv phpBB3 /usr/share/
 # ln -s /usr/share/phpBB3 /var/www/BB
 # vi /etc/apache2/apache2.conf
 # /etc/init.d/apache2 restart

・インストール
 http://www.mirage-oc.com/BB/install/ へアクセスします。
 INSTALL タブへ移動します。
 「Proceed to next step」ボタンを押します。

 Yes, Available, Found, Writable なんかが出ているのを確認して「Start install」
 MySQL なので準備した DB への接続情報を入力。

Database type: MySQL
Database server hostname or DSN: localhost
Database server port:
Database name: phpbb
Database username: *****
Database password: *****
Prefix for tables in database: phpbb_

 「Proceed to next step」ボタンを押します。

 Successful connection が出たら成功っぽいので「Proceed to next step」ボタンを押します。

Default board language: British English
Administrator username: *****
Administrator password: *****
Confirm administrator password: *****
Contact e-mail address: *****
Confirm contact e-mail: *****

 「Proceed to next step」ボタンを押します。

 Tests passed が出たら成功っぽいので「Proceed to next step」ボタンを押します。

 警告ではなさそうなメッセージがでるので「Proceed to next step」ボタンを押します。

 Advanced settings をこなして「Proceed to next step」ボタンを押します。
 見た感じ設定は必要ないかもね。
 メール通知を受けたくて副鯖がある方は設定をします。

 データベースを作るそうなので「Proceed to next step」ボタンを押します。

 Congratulations! です。
 問題なくこれが出ると幸せですね。
 すぐに「Login」を押すと、早速警告メッセージが出ます。
 FTP なり Shell で install ディレクトリを削除などしておきます。
 リロードすると警告が消えます。
 これで準備万端です。

まだ体がガタガタしているので、日本語ファイルの適用・MODs 管理適用・MODs適用などは次回に。

–PostScript
トラックバック気付くの遅くてごめんなさいです。
こんなページでも参考にしていただけて幸いです。

課題

12月 3rd, 2008

さっそく運用してみようとした矢先、きわめて重要な問題と遭遇しました。

画像がアップロードできない。

情報のみ上がるのですが、肝心の画像リソースがアップされておりません。
バーチャルホストによるものなのか、もともとそういうものなのか解りませんが解消を余儀なくされます。

同様に問題点も浮上。
同一ディレクトリに保存したのでは、別のブログからも画像リストが参照できてしまうのではないか。
そう、多数のユーザーを持つ場合はこの点はかなり重要です。
個人で複数と考えていても、サムネ検索に時間が掛かりそうですし切り分けたいですね。

前回はプラグインのつもりでしたがどちらかと言うと拡張MODでした。
今度こそプラグインを探す旅に出る必要があるかもしれません。
探す旅といえば、テーマも欲しいところですね。

と、思ったらあっさり解決。
画像アップロード先を「その他の設定」に発見し、よく見てみると、、、テストドメインでセットアップしたのでそのままになっている。
これではダメでしょう。
と、修正したところ無事アップロードできるようになりました。

今回はバーチャルホストなので uploads にテーブルプレフィックスで使用した識別子を使用しました。
移行時は images/ 文字列を wp-content/uploads/PREFIX/2008/11/ に置き換えて画像をごっそり入れてしまえば完了です。
これはテキストエディタで十分かな。

と、また懸念。
SPB 独自のタグである [] を処理してなかった。
エクスポートに微調整が必要だ。
ついでにエスケープされている < > もだ。

WordPress で複数ブログをがんばる2

12月 3rd, 2008

バーチャルホストの実現に、情報が充実していて読んだ感じ良さそうな Virtual Multiblog を使用することにします。
MU が日本語版に障害を・・・というような内容を見たからです。

では以下インストール手順と留意点を記述します。
現在のバージョンは 2.6.5 です。

  1. DL したアーカイブを展開して multiblog/ を wp-content/ へ配置する。
  2. wp-content/multiblog/ から wp-config.php wp-config-vmb.php をルートへコピーする。*1
  3. wp-content/multiblog/config/ の mb-autoconfig-sample.php を mb-autoconfig.php へコピーする。
  4. mb-autoconfig.php へデータベース情報を指定する。*2
  5. wp-content/multiblog/config/ の mb-users-sample.php を mb-users.php へコピーする。
  6. mb-users.php をエディタで編集する。*3
  7. wp-content/multiblog/config/ の mb-config-sample.php を ブログごとにコピーする。*4
  8. mb-config-VUSER.php を設定する。*5

*1 移動ではなくコピーするのは原本保持と Diff の為。

*2 $vmb_const 配列の DB_NAME DB_USER 等です。デフォルトの wp-config.php の記述と考えてください。

*3 $vusers[] = ‘www.example.com’; のように配列へキー不要で列挙していきます。www.example.com/foo というようなディレクトリ指定も可能です。

*4 複数の設定ファイルを作成することになります。夫々のドメインに対して名前付けルールがあり *3 で www.example.com/foo と指定されているものは mb-config-example_com_foo.php となります。全ての非英数字がアンダースコアになることと www は取り除かれるという事に注意してください。また $mydomain を指定する事でサブドメインの接頭辞以降を省略できます (未検証) 。

*5 $table_prefix は自動設定 (未検証) されるそうですが、テーブルを移設 (インポート) した場合は任意に設定すべきでしょう。また、固有設定は mb-autoconfig-sample.php をオーバーライドします。

特定のディレクトリ URL をマルチブログとして利用する場合はシンボリックリンクを張ることで解決できそうです。

例:

2 つのドメイン www.example.com web.example.com を使用する場合は夫々のバーチャルホストのホームディレクトリを WordPress のルート (/var/www/localhost/htdocs/) に設定するだけです。

ドメイン www.example.com とディレクトリ www.example.com/foo/ を使用する場合はホームディレクトリを WordPress のルート (/var/www/localhost/htdocs/) へ設定し foo という名のシンボリックリンクを WordPress のルートへ (/var/www/localhost/htdocs/foo -> /var/www/localhost/htdocs) 張れば良いそうです。

作業ログ:

# cd /usr/local/src/
# wget http://striderweb.com/wp-content/docs/nerd/downloads/multiblog.zip
# unzip multiblog.zip
# mv multiblog /var/www/localhost/htdocs/wp-content/

ここでコピー前に既存の設定を書き出しておきます。

define(’DB_NAME’, ‘putyourdbnamehere’);
define(’DB_USER’, ‘usernamehere’);
define(’DB_PASSWORD’, ‘yourpasswordhere’);
define(’DB_HOST’, ‘localhost’);
define(’DB_CHARSET’, ‘utf8′);
define(’DB_COLLATE’, ”);
define(’AUTH_KEY’, ‘put your unique phrase here’);
define(’SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(’LOGGED_IN_KEY’, ‘put your unique phrase here’);
$table_prefix  = ‘wp_’;
define (’WPLANG’, ‘ja’);
if ( !defined(’ABSPATH’) )
define(’ABSPATH’, dirname(__FILE__) . ‘/’);
require_once(ABSPATH . ‘wp-settings.php’);

この内容は置き換える設定ファイルには記述されておらず mb-autoconfig.php や mb-config-VUSER.php で設定しています。
手順としては mb-autoconfig-sample.php を複製・基本設定 mb-config-sample.php を複製・テーブル設定とするのが妥当なようです。

# cd /var/www/localhost/htdocs/wp-content/multiblog/
# cp config/mb-autoconfig-sample.php config/mb-autoconfig.php
# vi config/mb-autoconfig.php
# diff -U0 config/mb-autoconfig-sample.php config/mb-autoconfig.php
— mb-autoconfig-sample.php    2008-10-28 21:05:08.000000000 +0900
+++ mb-autoconfig.php   2008-12-03 18:57:35.000000000 +0900
@@ -5,3 +5,3 @@
-$vmb_const['DB_NAME'] = ‘putyourdbnamehere’;    // The name of the database
-$vmb_const['DB_USER'] = ‘usernamehere’;     // Your MySQL username
-$vmb_const['DB_PASSWORD'] = ‘yourpasswordhere’; // …and password
+$vmb_const['DB_NAME'] = ‘**********’;    // The name of the database
+$vmb_const['DB_USER'] = ‘**********’;     // Your MySQL username
+$vmb_const['DB_PASSWORD'] = ‘**********’; // …and password
@@ -16,3 +16,3 @@
-$vmb_const['AUTH_KEY'] = ‘put your unique phrase here’;
-$vmb_const['SECURE_AUTH_KEY'] = ‘put your unique phrase here’;
-$vmb_const['LOGGED_IN_KEY'] = ‘put your unique phrase here’;
+$vmb_const['AUTH_KEY'] = ‘**********’;
+$vmb_const['SECURE_AUTH_KEY'] = ‘**********’;
+$vmb_const['LOGGED_IN_KEY'] = ‘**********’;
@@ -24 +24 @@
-$vmb_const['WPLANG'] = ”;
+$vmb_const['WPLANG'] = ‘ja’;
@@ -37 +37 @@
-?>
\ No newline at end of file
+?>
# cp *.php ../../
# cp config/mb-users-sample.php config/mb-users.php
# vi config/mb-users.php
# cp config/mb-config-sample.php config/mb-config-mirage_oc_com.php
# cp config/mb-config-sample.php config/mb-config-******_mirage_oc_net.php
# vi config/mb-config-mirage_oc_com.php
# vi config/mb-config-******_mirage_oc_net.php

できた。
設定中はサイトにアクセスできなくなるのでサクッと設定完了して再びアクセス。
現状のサイトは問題なく表示できた。
ではバーチャルホストを設定しよう。
うむ、完璧だ。

後は移行する SPB のイメージリンク images/……… を wp-content/uploads/2008/12/…….. とかにすればいいのかな。

今回使用した Virtual Multiblog は本家にとても親切な readme が置かれています。
http://striderweb.com/wp-content/multiblog/multiblog-readme.htm

こちらで紹介しているのは酔っ払った薬屋の口上のようなもので、全てのロジックを説明・解析しているわけでなく readme を元に「これを使ったらこうなるんだ」という感じです。

お役に立てば幸いです。

WordPress で複数ブログをがんばる

12月 3rd, 2008

複数ブログをなんとか実現したくて深夜うろうろしていると参考になる場所を発見。
みるくのブログ さんだったかな?

URLを健忘したが、内容は覚えているので適当に書いて以下 DIFF.

> /*******************************************************************
>  * テーブルを連想配列に保持しリクエストしたドメインURIにより分岐。
>  * ヴァーチャルホスト運用時に追加を忘れずに。
>  * 冗長な変数名はコンフリクトを避けるためです。
>  * ディレクトリ毎の変更は考慮してません。
>  * デフォルト値: $table_prefix
>  *******************************************************************/
> $table_prefix_arrays = array(
>       ‘******.mirage-oc.net’ => ‘******_’
> );
> if ($table_prefix_arrays) {
>   $mirage_oc_prefix = $_SERVER['SERVER_NAME'];
>   foreach($table_prefix_arrays as $mirage_oc_key => $mirage_oc_value) {
>     if (strpos($mirage_oc_prefix, $mirage_oc_key) === true) {
>       $table_prefix = $mirage_oc_value;
>     }
>   }
> }
>

っと、使用させていただいたのは長期放棄されているドメイン。

書いて再起動してから気付いたんだが、シンボリックリンクがどうとか。
そうです、これは下層ディレクトリとしてメインブログにシンボリックリンクを張った場合に挙動を制御するものでヴァーチャルホスト向けの設定ではない。
そもそもホスト情報は違うテーブルに入っているはずなのだ。
となると、この手法は使えないことになる。

仕方ないのでヴァーチャルホスト用のプラグインを素直に使うことにする。
次回をお楽しみに。

移行一段階完了

12月 3rd, 2008

まず最初に mirage-oc.com のコンテンツをエクスポート/インポートしました。

問題なく動作しているようなので WordPress に移行しました。

今後他のブログを移設する必要が発生します。

この時に気を付けなくてはいけない事として、ドメイン名での切り替えが出来ること、画像をごっそり移動すること、動画も移動すること、などがあります。

今後の作業を以下に記します。

  • MySQLデータベースフロントエンド実装
  • マルチホスト用プラグイン適用
  • マルチホスト用テーブル作成
  • マルチホスト用設定

ここまで。

丁度余り使用されていないドメインがあるのでそれをサクらせて頂きます。

管理機能『管理』

12月 1st, 2008

サブメニューがたくさんあります。
「投稿」「ページ」「リンク」「カテゴリー」「タグ」「リンクカテゴリー」「メディアライブラリー」「インポート」「エクスポート」です。

「投稿」「ページ」「リンク」は『作成』で起稿した記事、リンクの属性を修正することができます。

「カテゴリー」では、ブログ記事の所属するカテゴリーを作成・削除できます。
新しいカテゴリーを作成・削除は当然ながら、タグへの変換も出来るようです。

「タグ」ではカテゴリー同様にタグの作成・削除ができます。
そもそもタグとは関連ページやキーワードとして利用されるカテゴリーとよく似たもの。
複数カテゴリーに該当する記事を書いてしまった、という場合などにカテゴリーをタグに移行してやると良いだろう。

「リンクカテゴリー」では、「リンク」専用のカテゴリーが作成・削除できます。

「メディアライブラリー」アップロードした画像や動画を一覧・削除できます。

「インポート」では多くのブログシステムの記事がインポートできるようです。

「エクスポート」では WrodPress の記事をエクスポートすることができます。

管理機能『作成』

12月 1st, 2008

前回詳しく説明し損ねた部分で、管理ページの『作成』『管理』『デザイン』『コメント』という部分です。
便宜上メインメニューと呼んでおきます。
(正式な名称がある場合ツッコンでください

まず作成ですが、クリックするとサブメニューの「投稿」が選択された状態で記事を書けそうな状態になると思います。
これはブログのように記事を書いていくのに使用します。

「ページ」では時系列の投稿とは違い、コンテンツやテーマ重視の記事になります。

「リンク」ではブログを開いた時に「ブログロール」として表示されるリンクを作成できます。
お気に入りのようなものです。

ダッシュボード

12月 1st, 2008

wordpress には『作成』『管理』『デザイン』『コメント』というページが用意されている。
だがその前に、ログイン直後は『ダッシュボード』というページが表示されるのではないだろうか。
ダッシュボードでは多くの情報を得ることが出来る。

まず、上部に「現在の状況」という項目が出ているはずだ。
ここには、ブログやページ、カテゴリとタグ、コメントの状態が確認できます。
続いて直ぐ下に、テーマとウィジェット、バージョン情報が記載されています。

中段にはトピックスのような項目が置いてあります。
「最近のコメント」「リファラー」「開発ブログ」「プラグイン」と、本来気にしないといけないもののついつい見落としがちな情報を得る事が出来ます。

下段にはフォーラムで盛んにやり取りされている情報がパネル情に並んでいます。
トラブルが無くても、定期的に見ることで WordPress の成長が確認できるというところでしょうか。

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!