Mirage-OC Commercial

2010/03/22

Virtual Multiblog 導入後のアップデート

カテゴリー: WordPress — admin @ 17:57

以前導入記事を書いて、その後着々と WP 本体をアップデートしていたが Virtual Multiblog 導入後のアップデート手順が記録されていなかったので手順をまとめておく。

◆ソースの入手
本家日本語版を入手します。

# wget http://ja.wordpress.org/wordpress-2.9.2-ja.zip

◆作業ディレクトリ展開
マルチブログのための設定が必要なので作業用ディレクトリとして展開します。

# unzip wordpress-2.9.2-ja.zip
# mv wordpress wordpress_new
# mv wordpress_new /usr/local/www/
# cd /usr/local/www/

◆VMB 設定ファイルのコピー
直下の設定ファイルをコピーします。

# cp wordpress/wp-config.php wordpress_new/wp-config.php
# cp wordpress/wp-config-vmb.php wordpress_new/wp-config-vmb.php

VMB をコピーします。

# cp -R wordpress/wp-content/multiblog wordpress_new/wp-content/

これでマルチブログの設定は複製できました。
構成はそのままであるはずなので手を加える必要はありません。

続いて Virtual Multiblog 以外のファイルを移行します。
ここからは wordpress のアップデートとなるので環境によって違いがあるかもしれません。
自サイトの管理目的メモなのでログしておきますが個人設定なので必要に応じて置き換えてください。

◆ユーザーコンテンツの移動
シンボリックリンクで格納してあるアップロードコンテンツ(画像)の適用。

# ln -s /home/username/uploads wordpress_new/wp-content/uploads

シンボリックリンク貼り忘れで露出したコンテンツの複製。

# cp wordpress/wp-content/swfobject.js wordpress_new/wp-content/
# cp wordpress/wp-content/player-viral.swf wordpress_new/wp-content/
# cp wordpress/wp-content/yt.swf wordpress_new/wp-content/
# cp -R wordpress/wp-content/skins wordpress_new/wp-content/

◆プラグインの移動
これもシンボリックリンクで集約するのが適切だと思う。

# cp -R wordpress/wp-content/plugins/counterizeii wordpress_new/wp-content/plugins/
# cp -R wordpress/wp-content/plugins/ktai_style wordpress_new/wp-content/plugins/
# cp -R wordpress/wp-content/plugins/openid wordpress_new/wp-content/plugins/
# cp -R wordpress/wp-content/plugins/syntaxhighlighter wordpress_new/wp-content/plugins/
# cp -R wordpress/wp-content/plugins/wp-cumulus wordpress_new/wp-content/plugins/
# cp -R wordpress/wp-content/plugins/wp-json wordpress_new/wp-content/plugins/

◆テーマの移動
これもシンボリックリンクで集約するのが適切だと思う。

# cp -R wordpress/wp-content/themes/aeros wordpress_new/wp-content/themes/
# cp -R wordpress/wp-content/themes/carrington-blog wordpress_new/wp-content/themes/
# cp -R wordpress/wp-content/themes/dark-marble wordpress_new/wp-content/themes/
# cp -R wordpress/wp-content/themes/dark-smoke wordpress_new/wp-content/themes/
# cp -R wordpress/wp-content/themes/iblog2 wordpress_new/wp-content/themes/ # cp -R wordpress/wp-content/themes/jonk wordpress_new/wp-content/themes/
# cp -R wordpress/wp-content/themes/sliding-door wordpress_new/wp-content/themes/

ファイル操作でできる移行準備が完了しました。
残りはプラグインの無効化とテーマのデフォルト設定です。

ここからは SQL の流し込みがシェル上の作業単純化に必要かと思いますが、管理サイトが少ないため直接手を下した方が確実と判断します。
参考までに DB 基底テーブルの構造を記述しておきます。

options:{
	active_plugins:{
		a:8:{
			i:0;s:19:"akismet/akismet.php";
			i:1;s:27:"counterizeii/counterize.php";
			i:2;s:25:"ktai_style/ktai_style.php";
			i:3;s:17:"openid/openid.php";
			i:4;s:39:"syntaxhighlighter/syntaxhighlighter.php";
			i:5;s:25:"wp-cumulus/wp-cumulus.php";
			i:6;s:19:"wp-json/wp-json.php";
			i:7;s:41:"wp-multibyte-patch/wp-multibyte-patch.php";
		}
	}
	current_theme:aeros
}

plugins では有効にするプラグイン数を a で、プラグインのナンバリングとリンクの文字列長を i s で、リンクする URI を文字列で指定しているようです。
これから派生するテーブルもあるので、構造を把握せずに直接変更するのは怖いです。

◆アップデート
各サイトでプラグインとテーマを操作します。
準備が出来たらファイルを完全移行します。

# mv wordpress wordpress_old
# mv wordpress_new wordpress
# chown -R www:www wordpress

あとはテーマやプラグインを元に戻せば完了です。

2009/05/15

Counterize II

カテゴリー: WordPress — タグ: — admin @ 18:04

アクセス解析は 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 分掛かる古いサーバーもある。

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

2008/12/03

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

カテゴリー: WordPress — admin @ 19:37

バーチャルホストの実現に、情報が充実していて読んだ感じ良さそうな 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 で複数ブログをがんばる

カテゴリー: WordPress — admin @ 16:54

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

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;
>     }
>   }
> }
>

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

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

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

2008/12/01

管理機能『管理』

カテゴリー: WordPress — admin @ 20:42

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

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

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

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

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

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

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

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

管理機能『作成』

カテゴリー: WordPress — admin @ 20:42

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

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

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

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

ダッシュボード

カテゴリー: WordPress — admin @ 20:41

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

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

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

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

2008/11/30

wordpress はじまた

カテゴリー: WordPress — admin @ 13:53

12 月から 13 月にかけて当方のブログサイトを変更することにします。
鯖仕様は以下のような階層表現を行いたいと思います。

・Mirage-OC
`—- としのろぐ
`—- げ~むろぐ

これらを実現するために幾つか準備が必要となるでしょう。

まず、ブログの切り分け。
こちらは wiki のインストールで紹介されている複数のブログ項より設定値の変更とインストールの繰り返しでテーブル複製と言う形でガンがる。

その後紹介されているプラグインをガツガツ使おうかね。

Powered by WordPress