2011.08.03
Word Pressをインストールして使い心地を試していたら、画像をアップロードしたとき、表示画像をサムネイル、中サイズ、大サイズ、フルサイズに切り替える選択ができないことに気がついた。
調べると、php-gdのインストールが必要とわかった。php52をインストールしていたので/usr/ports/graphics/php52-gdに移動してインストールを試みたが、autoconfがどうとかというエラーとなってインストールできなかった。そこで、php52-extensionsから入れ直しを行った。
1. php52-extensionsのインストール
まず、/var/db/ports/php52-extensions/optionsを削除して、/usr/ports/lang/php52-extensionsに移動してMakefileを編集する。
# rm /var/db/ports/php52-extensions/options
# cd /usr/ports/lang/php52-extensions
# vi Makefile
WITH_CTYPE= yes
WITH_DOM= yes
WITH_FILTER= yes
WITH_GD= yes ← 追加
WITH_HASH= yes
WITH_ICONV= yes
WITH_JSON= yes
・
・
その後、
# make install clean
途中で、またGDを選択する画面が現れるので、必ず選択しておく。もちろん、MySQL、multibyteも選択する。なお、すでにphp52-extensionsがインストールされているので、最後のところでエラーとなる。そこで、make deinstallして再度Make install cleanを実行する。
# make deinstall
# make install clean
2.php-gdのインストール
php-gdの使用を可能とするphp52-extensionsがインストールできたので、php52-gdをインストールする。
# cd /usr/ports/graphics/php52-gd
# make install clean
3. Word Pressでの確認
下図のようにサイズは、指定可能となった。なお、画像のサイズの指定(中サイズ:330 x 247等)は、メニューの「設定」→「メディア」で変更できるので、自分のブログ画面の都合でサイズをプリセットしておくと便利である。

2011.08.02
ブログの作成にはMovabletypeを用いているが、ブログ作成ツールとして米国などでは、Word Pressが圧倒的に大きなシェアを占めている。
直ちにWord Pressに移行しようとは思っていないが、インストールして様子を見てみることにした。
Word Pressは、phpで書かれており、MySQL上のデーターベースを用いて、ダイナミックにページを送出するようになっている。すなわち、phpとMySQLが必須なのである。かつ、日本語使用では文字コードはutf-8を使うことを前提で作られている。EUCで動かそうなどとは、考えない方が良さそうだ。
1. インストール
(1) Word Pressの日本語のページより、最新版のwordpress-3.2.1-ja.zipをダウンロドして解凍し、フォールダーごとWeb発信ディレクトリーに入れる。
(2) フォルダー名をwordpressとすると、下記のようにwordpressフォルダー内のwp-config-sample.phpをwp-config.phpに名前を変え、内容を修正する。
# cd wordpress
# cp wp-config-sample.php wp-config.php
# vi wp-config.php
define('DB_NAME', 'wpdb'); ← DB名を入れる。
define('DB_USER', 'wpuser'); ← DBのユーザー名を入れる。
define('DB_PASSWORD', '******'); ← DBアクセスのパスワードを入れる。
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
2. データーベースの作成
MovabletypeではEUCコードで運用しているため、MySQLの文字コードは下記のようにujis(EUC)になっている。
mysql> SHOW VARIABLES LIKE 'character_set_%';
+----------------------------------+--------+
| Variable_name | Value |
+----------------------------------+--------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
+----------------------------------+--------+
しかし、Word Pressでは、utf8とする必要があるので、下記のように文字コードを指定して、データーベーを作成する。
# mysql -u root -p
Enter password: パスワード
mysql> create database wpdb CHARACTER SET utf8;;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on wpdb.* to wpuser@localhost identified by 'パスワード';
Query OK, 0 rows affected (0.13 sec)
mysql> flush privileges;
mysql> exit;
Bye
これで、念のために文字コードを表示してみる。
$ mysql -u root -p
Enter password:
mysql> use wpdb;
Database changed
mysql> SHOW VARIABLES LIKE 'character_set_%';
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | utf8 | ← ここがutf8になっていればOK
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
+----------------------------+--------+
7 rows in set (0.00 sec)
3. PHPに対する処置
MySQLのデーターベースの文字コードをutf8にして、Word Pressを起動すると問題なく動作するかに見えたが、記事を投稿しても記事内容が保存されない事象が発生した。
PHPもutf8で処理できるようにする必要がある。そこで、wordpressフォールダー内に.htaccessを作り下記の内容を入れたら、問題なく動作するようになった。やれやれ。
# vi .htaccess
DirectoryIndex index.html index.cgi index.php index.shtml
php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8"
2011.03.02
以前に250GBのHDD2台を用いてgmirrorの構成をとろうとした時、最初にFreeBSDをインストールしたHDDより、ミラーの構成を組もうとする2台目のHDDの方が、数セクター小さく、ミラーに組み込もうとしたときに拒絶された。そこで、再度容量の小さい方のHDDにインストールし直す羽目に陥ってしまった。
しかし、今日FreeBSDのMLで、詳しい人からスライス単位でもgmirrorが構成できることを教えてもらい、VMwareを用いて実験したので、以下にその方法を記述しておくことにした。
要点は、HDD2台でミラーを組むとき、最初にFreeBSDをインストールするHDDのfdiskによるパーティションを2台目のHDDのボリューム全体容量より、少し小さく設定しておくことが肝要である。
なお、HDDの容量を正確につかむには、diskinfoコマンドを使用する。
# diskinfo -v ad4 ・・・・ad4を調べる場合
1. 準備とFreeBSDインストール
VMwareでad0(20GB)とad2(15GB)の2つの仮想HDDを確保し(ad0 > ad2に注意)、fdiskでad0に12GBの領域(パーティション)を確保してFreeBSD 8.1のCDを 用いてad0にインストールを行った。
2. Livefs CDを用いてgmirrorを設定
(#Fixitのブロンプトを出すまでは、FreeBSDでRAID1(mirror)の設定を参照)
以下のように設定する。gm0s1、ad0s1とスライスで指定するのが、ボリューム全体のミラーと異なる。
なお、Livefs CDを用いない方法でも試みたがうまくgmirrorを構成できなかった。
Fixit# chroot /dist
Fixit# kldload geom_mirror ← gmirrorのload
Fixit# exit
Fixit# gmirror label -b round-robin gm0s1 ad0s1 ← round-robinでスライスレベルでmirrorを構成
Statusを表示してみると、下記のように表示され、スライスレベルでmirror機能が出来ている。
Fixit# gmirror status
Name Status Components
mirror/gm0s1 COMPLETE ad0s1
3. /etc/rc.conf、/etc/fstab、/boot/loader.confの修正
(1) /etc/rc.confにswapoff=”YES”の1行を追加
(2) /etc/fstabをviで開き、ad0 → mirror/gm0に変更
例)/dev/ad0s1a → /dev/mirror/gm0s1a
/dev/ad0s1d → /dev/mirror/gmos1d
vi でfstabを開いて
:%s/ad0/mirror\/gmo/ として一括して変更して保存するのが便利である。
(3) /boot/loaderconfにgeom_mirror_load=”YES” の1行を追加する。
そして、shutdownして、HDDから普通に起動。
4. 起動
起動したらsysinstallで configure → fdiskでad2を選び、ボリューム全体(少なくともad0s1で確保したより大きく)をfreebsdパーティションとして確保する。今回の実験ではad2にはボリューム全体の15GBを割り付けた。確保したら、”w”キーを押してスライス情報を書き込む。
5. ad2s1の追加
# gmirror insert gm0s1 ad2s1
これで、同期化が始まる、statusを見ると、
# gmirror status
Name Status Components
mirror/gm0s1 DEGRADED ad0s1
ad2s1(2%)
しばらくして、gmirrorの同期が完了する。
swapinfoコマンドでswap領域を見ると、これも無事確保されている。
# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/mirror/gm0s1b 490304 0 490304 0%
完了の後、ad0を取り除いてad2だけでも無事起動することを確認した。
2011.02.20
さる事務所で、PCが古くなったので新しいのに置き換えるのを手伝い、いままで使っていた古いPCを液晶ディスプレイも含めて一式頂いてきたので、ubuntuとWindows XPのデュアルブートにして色々と遊んでいる。
ところが、XPでは問題なく動くBuffaloのUSB無線LANアダプターのWli-uc-gnpがubuntuでは認識すらしない。ネットで色々調べてmediatekのダウンロードのページからドライバーソースを取ってきて、修正してmakeしインストールするが、全く動く気配がなかった。
諦めていたが、Manuelのだらだらブログに書かれていた方法を試すと、リブートする必要もなく動いた。ドライバーのコンパイルなどは一切必要ない方法で、簡単であり、下記に書き留めて置く。
なお、ubuntuではデフォルトでは、suでSuper Userになれないが、不便なので私のところでは、$ sudo passwd rootとしてrootのパスワードを設定して、suができるようにしている。
まず、/etc/udev/rules.d内にある70-persistent-net.rulesにwli-uc-gnpの記述を追加する(下記枠内の赤字部分)。
# cd /etc/udev/rules.d
# vi 70-persistent-net.rules
----------------------------------------------------------------
# This file maintains persistent names for network interfaces.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-persistent-net-generator.rules
# file; however you are also free to add your own entries.
# PCI device 0x8086:0x1019 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0f:ea:b4:28:a
8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0411", ATTR{idProduct}=="019e", RUN+="/sbin/modprobe -qba rt2870sta"
次に/etc/modprobe.d内にnetwork_drivers.confのファイルを作り下記の赤字を書いておく。
# cd /etc/modprobe.d
# vi network_drivers.conf
-----------------------------------------------------------------------
install rt2870sta /sbin/modprobe --ignore-install rt2870sta $CMDLINE_OPTS; /bin/echo "0411 019e" > /sys/bus/usb/drivers/rt2870/new_id
さんざん悩んで、ubuntuで挿すだけで動くというPlanexのGW-USMicroNを買って使っていたが、Windows XPでは不安定で、XPではwli-uc-gnpと差し替えるという手間がかかる状況であった。
これで、ubuntuでもwli-uc-gnpが使えるようになり、スッキリした。それにしても、長々とDriverのコンパイルを行ったりしたのは、なんだったのだろう。
2011.01.19
FreeBSDでも使い慣れたThunderbirdを使うため、packageでthunderbird-3.0.5_1、thunderbird-i18n-3.0.5_1を入れた。
ところが、何処をどういじっても日本語にならない。そこで下記のことを行った。
(1) Windowsで使っているThunderbirdは、3.1.7であるが、下記のchromeフォルダーをコピーして、FreeBSDに適当なディレクトリーを作って入れる。
C:\Documents and Settings\usename\Application Data\Thunderbird\Profiles\d3hnamhc.default\extensions{xxxxxxxxx}\chrome
(2) Windowsから持ってきたchromeの中のファイルの全てをFreeBSDの下記のchromeディレクトリーにコピーする。
# cp xxxxx/chrome/* /usr/local/lib/thunderbird/chrome
(3) Thunderbirdを起動して「ツール」→「言語選択」で、日本語を選択する。
そして、Thunderbirdを再起動すれば、日本語の表示になる。

(4) Thunderbirdのアドレス帳(住所の表示順) で書いた処理を行って、住所の表示順を日本式にする。
(5) WindowsのThunderbirdでアドレス帳をエクスポートして、FreeBSDのThunderbirdでインポートする。
以上で、処置は終了であるが、Windowsのchromeの内容は、FreeBSD用のThunderbirdでも使えるのが素晴らしい。