2012.01.26

FreeBSD 9.0のインストール(GUIDパーティション)

FreeBSD 9.0がリリースされた。今回のFreeBSD 9.0では、GUIDパーティション(GPT)がサポートされ、それに伴いインストーラーも従来のsysinstallに変えてbsdinstallになった。
GPTがサポートされた理由は、従来のMBRパーティション方式ではHDDの使用最大容量は2TB(テラバイト)なので、一気に8ZB(ゼタバイト、正確にはZiBでゼビバイト:2**70)まで広げようとするもので、インテルが提唱していた。テラ→ペタ→エクサ→ゼタなので、とてつもない値である。
ともかく、bsdinstallでインストールの様相がsysinstallと違うので、VMware下にインストールしてその方法を記述して置くことにした。
ネットからFreeBSD-9.0-RELEASE-i386-disc1.isoをダウンロードし、CDRに焼き、DVDドライブのトレーに入れて起動させた。すぐに起動画面が現れた。右側にデーモン君が描かれている。その後、起動時のメッセージが画面を流れた後に[Install]、[Shell]、[Live CD]の選択画面になるので、[Install]を選ぶ。
bsd9_01.jpgbsd9_02.jpg

次にキーボードの選択を行うか否かの画面になるので[Yes]を選んで[Japanese 106]を選択する。

bsd9_03.jpgbsd9_04.jpg

次にhostnameの入力画面になるので、ホスト名を入れる。特に指定するホスト名がなければtestとでも入れておけばよい。その次にインストールする内容物を選ぶ。今回はDefaulltのままとした。

bsd9_05.jpgbsd9_06.jpg

いよいよパーティションの選択である。Defaultの[Guided]を選んで[Entire Disk]を選んだ。

bsd9_07.jpgbsd9_08.jpg

ada0p1(boot)、ada0p2(utf)、ada0p3(swap)が表れるので、変更の必要がなければ[Finish]を選ぶと確認画面が現れるので[Commit]する。

bsd9_09.jpgbsd9_10.jpg

インストールが始まる。しばらく時間がかかるが、終わると管理者(root)のパスワードの入力となる。

bsd9_11.jpgbsd9_12.jpg

LANドライバーの選択画面になるので、選んでこのホストのIPアドレス、マスク、接続ルーターのIPアドレスを入れる。

bsd9_13.jpgbsd9_14.jpg

DNSの入力画面も現れるので、少なくとも一つは入れて置く。
次は、時刻合わせである。UTCにするかと聞いてくるので[No]を選び、後はAsia→Japanと選択する。

bsd9_15.jpgbsd9_16.jpg

サービスの追加の画面になるので、ntpdをマークした。
crash dumpを有効にするかどうかの画面が出てきたが、crash dumpの使い方を知らないし、disk spaceもたくさん取られるとのことなので[No]を選んだ。

bsd9_17.jpgbsd9_18.jpg

ユーザー追加画面になるので、自分をユーザーとして追加した。現れる画面は、従来から使っていたadduserコマンドと同じである。

bsd9_19.jpgbsd9_20.jpg

インストールが終わり、いよいよbsdinstallから抜ける画面が現れる。Exitを選ぶと、抜ける前にShellを起動して何か修正したくはないかと問う画面が現れるが、修正は普通にログインして行うことにして[No]を選んだ。

bsd9_21.jpgbsd9_22.jpg

bsd9_23.jpg

やっと[Reboot]の画面となった。これでインストールは終わりである。
インストールを終えて、少し戸惑ったことは、Remoteからtelnetできないことであった。
そう言えば、inetd.confの設定がなかったと思い、ローカルでログインし、inetd.confを開いてtelnetを有効にして再起動したが、やはりtelnetができない。
調べたら、何のことはない、inetdが起動していない。rc.confにinetd_enable=”YES”を追加して再起動し、ようやくtelnetができた。
Pckageの追加は、従来通りsysinstalも使えるので、普通に自分の環境を構築していける。
しかし、現在運用しているサーバーは、gmirrorでHDDをミラー構成にして使っているが、gptでミラー化はややこしそうなので、運用サーバへの適用は当面見合わせることになりそうである。FreeBSD 8.2で困っていないことでもある。

2011.09.15

Wakeup on Lan

最近のPCやサーバーのオンボードのLANポートには、Wakeup on Lanの機能が付いている。そこで、FreeBSDでこの機能を利用して、普段は予備機として電源を入れずに置いてあるサーバーに夜中にPower Onして主サーバーのデーターを送り込むことを考えた。
まず、Wakeup on Lanを受けるマシンにマジックパケットを送出するwolをインストールする。

# cd /usr/ports/net/wol
# make install clean

使い方は簡単である。
 # wol -i [ブロードキャストアドレス] [MACアドレス] とする。
サーバーのIPが 192.168.1.xxのときは、下記となる。

# wol -i 192.168.1.255 ab:13:48:78:93:b6 ← MACアドレスは、Power ONしたいサーバーのをセット。

crontabに登録してPower onし、主サーバからrsyncでデータを転送して、Shutdownするようにして目的を果たす。サーバーは、物置部屋と化しているところに置いてあるので、デスクトップから席を立ってPower Onに出向く必要がないのも便利だ。
ルーターのWR8700NにもLAN接続されているPC等をリモートでPower Onする機能があり、外出先からもPCのPowe Onができるというが、少し危なっかしい気がする。

2011.09.14

ブロードバンドルーター考

 現在、固定IP接続のアカウントを別個に2つ契約していて、2台のサーバーをそれぞれのアカウント先に接続して運用している。2台のサーバーは、自分用と設置を人に頼まれたもので、ドメイン名も分ける必要があったため、接続アカウントも2つ契約したものである。
 回線は、Bフレッツマンションタイプを7年ほど前から使用しているが、NTTのレンタル品のVDSLのモデムVH-50IIにルーターとしてNTT-MEのMN8300を接続して使っていた。
しかし、ルーターも古くなってきて、もし故障でもしたら同じルーターは手に入らないであろうから、別のものを見つけておく必要を感じていた。
logical.jpg
 ところが、最近のルーターは無線LAN機能を内蔵しているのは良いとしても、マルチPPPoEを唱っていても、接続は2セッションで、しかも1つはフレッツスクエアと全くバカにした仕様のものがあったり、自由に2セッション接続可能なものであってもポートマッピングが接続毎に設定できなかったり、パケットフィルターの設定が無いなどの商品が多くどれを購入すれば良いのか考え倦んでいた。そもそも、マルチセッションなどと言わずに、ハッキリと何セッションと記述してほしい。
さらに大きな問題は、製品説明で簡単接続とか、無線LANの通信速度、到達距離等を誇るものが多く、肝心のルーターとしての機能説明が乏しく判断に迷うものが多いことである。
 結局、さんざん迷いながら調べて、WR8700Nを購入した。5セッション独立して設定でき(フレッツなので2セッションまでしか利用できないが)、ポートマッピング、パケットフィルターを含めて文句なしの機能が揃っており、無線LANも2.5G系と5G系があり、それぞれ2つのSSIDが使用可能となっている。
NECが販売する最上位機のようであるが、価格も安く、ようやく満足できるルーターに巡り会えた気がする。1台のデスクトップPCが離れた場所にあるが、無線LANで快適に接続できている。

2011.08.03

php-gdのインストール

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等)は、メニューの「設定」→「メディア」で変更できるので、自分のブログ画面の都合でサイズをプリセットしておくと便利である。

imagepost.jpg

2011.08.02

Word PressのインストールとMySQL

ブログの作成には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"

« Previous | Next »