2005年3月アーカイブ

PukiWikiでページの名前が長くなると、上の表示が折り返されたりしてちょっと。
そこで山中家では、skin/pukiwiki.css.phpを修正しています。

h1.title { font-size: 24px; font-weight:bold; background-color:transparent; padding: 12px 0px 0px 0px; border: 0px; margin: 12px 0px 0px 0px; }

デフォルトでは30pxなのですが、これを24pxに。

PukiWikiはportsに無いようなので、自力で設置しましょう。
PukiWikiの情報は、FrontPage - PukiWiki.orgからどうぞ。

ダウンロード

1.4.51は、ここからダウンロードできます。
-http://prdownloads.sourceforge.jp/pukiwiki/12962/pukiwiki-1.4.5
1.tar.gz

京阪奈のミラーからダウンロードしている例

[root@jiro]~# [root@jiro]~# fetch http://keihanna.dl.sourceforge.jp/pukiwiki/12962/pukiwiki-1.4.51.tar.gz pukiwiki-1.4.51.tar.gz 100% of 251 kB 319 kBps

ファイルの解凍

ダウンロードできたら展開しましょう。

[root@jiro]~# tar pzxf pukiwiki-1.4.5_1.tar.gz

pukiwiki-1.4.5_1というディレクトリが出来ていると思います。

コピー

展開して出来たディレクトリの中身を、パーミッションなどはそのままコピーします。
最初は内部公開用に設定したバーチャルサーバにコピーして、動作確認をするのがよいでしょう。

設定

コピーしたら、pukiwiki.ini.phpを編集して、設定を行います。

// Title of your Wikisite (Define this) // and also RSS feed's channel name $page_title = 'バーチャル山中家';

  • ここの名前がページタイトルになります。

// Site admin's name (CHANGE THIS) $modifier = 'Nobuo Yamanaka';

  • ここは管理者の名前です。下の方のSite admin に表示されます。

// Site admin's Web page (CHANGE THIS) $modifierlink = 'http://www.yamanakake.com/';

  • その管理者名をクリックしたときに、ジャンプするアドレスです。

// Enable Trackback $trackback = 0;

  • トラックバックを有効にする場合は、1にします。

// Referer list feature $referer = 0;

  • リンク元を有効にする場合には、1にします。

// Disable WikiName auto-linking $nowikiname = 0;

  • WikiNameの自動リンクを無効にする場合には、1にします。

// AutoLink minimum bytes (0 = Disable) $autolink = 8;

  • 自動リンクする場合に、指定したバイトより短いとリンクしません。
    あまり小さくすると、予期せぬリンクをしちゃうので注意です。

// Enable Freeze / Unfreeze feature $function_freeze = 1;

  • 凍結機能を使用''しない''場合には、0にします。

// CHANGE THIS $adminpass = '1a1dc91c907325c69271ddf0c944bc72'; // md5('pass')

  • 管理者パスワードです。md5文字列が分からない場合には、$adminpass = md5('ここにパスワードを記載');と書くこともできます。

// Date format $date_format = 'Y-m-d';

  • 私は嫌いなので Y/m/d に変更しています。

// Send mail per update of pages $notify = 0;

  • ページの更新をメールで通知する場合には、1にします。

// Send diff only $notifydiffonly = 1;

  • 通知する場合に、1だと差分のみを、0だと全文をメールで送ります。

// SMTP server (Windows only. Usually specified at php.ini) $smtp_server = 'localhost';

  • メール通知に利用するSMTPサーバです。ローカルにSMTPサーバがセットアップされている場合には、localhostでOKです。

$notifyto = 'to@example.com'; // To: $notifyfrom = 'from@example.com'; // From:

  • 通知メールのあて先と送信者のメールアドレスを設定します。

// Subject: ($page = Page name wll be replaced) $notify_subject = '[PukiWiki] $page';

  • 通知メールのタイトルを設定できます。PukiWikiの代わりにサイト名をいれる等。

// Convert linebreaks into
$line_break = 0;

  • 改行を改行とする場合には1にします。そうでない場合には、編集画面で改行しても、ブラウザで見ると改行されません。

大体この程度設定できればOKです。(本当か?)

最近のportsではお約束です。

[root@jiro]~# ee /etc/rc.conf apache_enable="YES"

これを追加しておかないと、起動できません。
追加したら、

[root@jiro]~# /usr/local/etc/rc.d/apache.sh start

とやってみて、起動されるか確認してみましょう。

手で起動したら起動するのに、再起動しても自動的に起動できない場合、ServerNameの解決が出来ていない可能性があります。
/etc/hosts に記載するなり、DNSよりも後でapache.shが実行されるようにすればいいでしょう。

インストールが終わったら、設定ファイルを編集していきましょう。

設定ファイルの編集

portsからインストールすると、サンプルが入っています。
/usr/local/etc/apache/httpd.confです。
ここでは、修正するべき場所を中心に記載します。(Apache 1.3.33での例)

ExtendedStatus controls whether Apache will generate "full" status

information (ExtendedStatus On) or just basic information (ExtendedStatus

Off) when the "server-status" handler is called. The default is Off.

# ExtendedStatus On

  • コメントを外して、サーバステータスを詳細にする。

#

ServerAdmin: Your address, where problems with the server should be

e-mailed. This address appears on some server-generated pages, such

as error documents.

# ServerAdmin webmaster@yamanakake.com

  • 管理者のメールアドレスを設定

#

ServerName allows you to set a host name which is sent back to clients for

your server if it's different than the one the program would get (i.e., use

"www" instead of the host's real name).

# (中略) ServerName www.yamanakake.com

  • コメントを外して、サーバ名を設定。
    ただし、名前解決が出来ないと起動できない場合があります。山中家もそうでした。((DNSも自前なので、apache.shをzapache.shにリネームしたら、起動順が変わってOKになりました))

#

HostnameLookups: Log the names of clients or just their IP addresses

e.g., www.apache.org (on) or 204.62.129.132 (off).

The default is off because it'd be overall better for the net if people

had to knowingly turn this feature on, since enabling it means that

each client request will result in AT LEAST one lookup request to the

nameserver.

# HostnameLookups On

  • OffをOnにすると、ログに記載されるアクセス者のIPアドレスがホスト名に変換されます。

#

ErrorLog: The location of the error log file.

If you do not specify an ErrorLog directive within a

container, error messages relating to that virtual host will be

logged here. If you do define an error logfile for a

container, that host's errors will be logged there and not here.

# ErrorLog /var/log/apache/httpd-error.log

  • エラーがあったときのログ。デフォルトは/var/log/httpd-error.logだが、さっき作ったディレクトリに変更。

#

If you prefer a single logfile with access, agent, and referer information

(Combined Logfile Format) you can use the following directive.

# CustomLog /var/log/apache/httpd-access.log combined

  • 通常アクセスのログ。デフォルトは/var/log/httpd-access.log combinedだが、さっき作ったディレクトリに変更。

#

Optionally add a line containing the server version and virtual host

name to server-generated pages (error documents, FTP directory listings,

modstatus and modinfo output etc., but not CGI generated documents).

Set to "EMail" to also include a mailto: link to the ServerAdmin.

Set to one of: On | Off | EMail

# ServerSignature Off ServerTokens ProductOnly

  • エラーページなどに表示される情報を制限しておく。そうしないとバージョンなんかがばれて、セキュリティ対策が遅れると狙われるなどのリスクがあるため。
    まぁ、お客さんにバージョンを示す必要はないので。

#

Allow server status reports, with the URL of http://servername/server-status

Change the ".example.com" to match your domain to enable.

# SetHandler server-status Order deny,allow Deny from all Allow from 192.168.1.0/24 127.0.0.1 * サーバーステータスは、デフォルトではコメントになっていますが、ローカルからのみアクセスできるようにしておいて、有効にしておきます。
アドレスは、環境に合わせてくださいね。

#

Allow remote server configuration reports, with the URL of

http://servername/server-info (requires that mod_info.c be loaded).

Change the ".example.com" to match your domain to enable.

# SetHandler server-info Order deny,allow Deny from all Allow from 192.168.1.0/24 127.0.0.1

  • サーバーインフォメーションも、デフォルトではコメントになっていますが、ローカルからのみアクセスできるようにしておいて、有効にしておきます。

#

Use name-based virtual hosting.

# NameVirtualHost *:80

  • バーチャルホストを使うことで、ワームからのアクセスなどを切り分けることが出来ます。
    また、山中家の様に複数のドメインや、各ドメインにさらに複数のサイトを構築できます。

バーチャルホストの設定の書き方は、TAKE-LABOさんが大変参考になります。

例によってTAKE-LABOさんをありがたく参考にさせていただきつつ・・・

さて、上記のページの冒頭に、suEXECを有効にする云々と書かれていますね。
で、suEXECってなんじゃろ?と思い、Google先生に聞いてみると、ここが出てきました。

''suEXEC'' 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは 異なるユーザ ID で CGI プログラムや SSI プログラムを実行することができます。CGI プログラムまたは SSI プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。 (http://httpd.apache.org/docs-2.0/ja/suexec.htmlより引用)

以下、このsuEXECに関する記載についてよく読んでいただいたとして、進みます。

portinstallのための準備

portinstallでsuExecを有効にするために、pkgtools.confを編集しておきます。

[root@jiro]/usr/ports# ee /usr/local/etc/pkgtools.conf (前略) MAKEARGS = { 'www/apache13' => 'WITHAPACHE_SUEXEC=yes', } (後略)

インストール

では、portinstallでインストールしましょう。

[root@jiro]/usr/ports# portinstall www/apache13

ログ保管場所の作成

ログの保管場所を作成しておきます。

[root@freebsd]/usr/ports# mkdir /var/log/apache

sambaのインストールもportsから行いましょう。

[root@jiro]/usr/ports# portinstall japanese/samba3

/usr/local/etc/samba.conf.defaultが作成させると思います。
これを/usr/local/etc/samba.confにコピーして、編集しましょう。

DNSが出来たら、(外向けの)ネームサーバをドメインの管理元に登録することで、インターネット世界からの問い合わせがやってくるようになります。
そうすると、自宅サーバのWebサイトが外から見えたり、自宅サーバに向けてメールが配送されてきたりするわけです。

バーチャル山中家には、サーバは1台しかありません。
固定IPアドレスも1つです。
でも、色々な名前を別名登録することで、複数のドメインに、さらに複数のWebサーバがあるかのように見せかけることが出来ます。
また、LAN向けにはLAN向けのホスト名も作って、内部でしか参照できないWebサイトも作成しています。
詳しくはWebのページを参照してください。

Webサイトを増やしたいな、と思ったら、内向けのホスト別名を登録し、Webサーバの設定を変更して、LAN内から表示を確認したら外向けの別名を登録する。
これを繰り返せば、色々なサイトを独立して運用することが出来ます。
(例えば、Webスペースを貸し出すことも出来ますね。)

またメールについても、複数のドメインを1つのIPアドレスで処理しています。
詳しくはMailのページを参照してください。

ただし、DNSをインターネット上に提供する場合、その設定に間違いがないように注意が必要です。名前から求めるIPアドレスが間違っていたり、IPアドレスから求める名前が間違っていたら・・・大変なことになるのはおわかりかと思います。
十分に確認して、注意して運用してください。

さて、djbdns本体のインストールです。こちらもportsからインストールします。

[root@jiro]/usr/ports# portinstall dns/djbdns

インストールできたら、内向けDNSと外向けDNSを設定します。がその前に、DNSを2つ起動するということは、サーバに2つのIPアドレスが必要なので、それを追加しておきましょう。

[root@jiro]/usr/ports# ee /etc.rc.conf
(前略)
ifconfig_fxp0="inet 192.168.1.2 netmask 255.255.255.0"

こうなっている行があるはずです。インターフェース名(ここではfxp0)とIPアドレスは環境によって違うと思います。もちろんnetmaskも。
で、別アドレスを追加するために、

ifconfigfxp0alias0="inet 192.168.1.202 netmask 255.255.255.255"

というような行を追加しておきます。
こうすることで、サーバの1枚のLANカードに2つのIPアドレスが割り当てられます。
(ここでは192.168.1.2/24と192.168.1.202/24)
以後、内向けDNSは192.168.1.2を利用し、外向けDNSは192.168.1.202を利用するとして説明します。後ほど、外からのDNSへのアクセスを、ルーターで192.168.1.202に振り向けることを忘れずに。

内向けDNSの設定

[root@jiro]/usr/ports# tinydns-conf tinydns dnslog /usr/local/etc/tinydns-i 127.0.0.1

tinydnsは起動するユーザー、dnslogはログをとるユーザー、/usr/local/etc/tinydns-iは設定ファイルを置く場所、127.0.0.1は動作するIPアドレスです。
では、DNSが返事をするための内容を設定していきましょう。

[root@jiro]/usr/ports# cd /usr/local/etc/tinydns-i/root
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-ns yamanakake.com 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-ns 1.168.192.in-addr.arpa 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-mx yamanakake.com 192.168.1.2
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-host taro.yamanakake.com 192.168.1.1
[root@jiro]/usr/local/etc/tinydns-i/root# ./add-host jiro.yamanakake.com 192.168.1.2
・・・自分のLAN内のホストを登録していきます。

さて、登録が終わったら、dataファイルを開いてみてください。
mxレコードは、デフォルトではa.mx.~となっていますので、mail.yamanakake.comに変更しました。

=mail.yamanakake.com:192.168.1.2:86400
@yamanakake.com::mail.yamanakake.com:1:86400

すべての登録をしたら、makeします。

[root@jiro]/usr/local/etc/tinydns-i/root# make

最後に、自動起動するためのリンクを作成します。

[root@jiro]/usr/local/etc/tinydns-i/root# ln -s /usr/local/etc/tinydns-i /var/service/tinydns-i

外向けDNSの設定

内向けと同じく、外向けも設定していきましょう。

[root@jiro]/usr/ports# tinydns-conf tinydns dnslog /usr/local/etc/tinydns-o 192.168.1.202

設定ファイルを置く場所とIPアドレスが違います。

[root@jiro]/usr/local/etc/tinydns-o/root# ./add-ns yamanakake.com 218.219.201.137
[root@jiro]/usr/local/etc/tinydns-o/root# ./add-ns 137.201.219.218.in-addr.arpa 218.219.201.137
[root@jiro]/usr/local/etc/tinydns-o/root# ./add-mx yamanakake.com 218.219.201.137
・・・インターネットに公開したいホスト名を登録していきます。

さて、登録が終わったら、dataファイルを開いてみてください。
mxレコードは、デフォルトではa.mx.~となっていますので、mail.yamanakake.comに変更しました。

=mail.yamanakake.com:218.219.201.137:86400
@yamanakake.com::mail.yamanakake.com:1:86400

すべての登録をしたら、makeします。

[root@jiro]/usr/local/etc/tinydns-o/root# make

最後に、自動起動するためのリンクを作成します。

[root@jiro]/usr/local/etc/tinydns-o/root# ln -s /usr/local/etc/tinydns-o /var/service/tinydns-o

dnscashの設定

dnscashは、LAN向けにdnsの問い合わせをキャッシュするものです。

[root@jiro]/usr/ports# dnscache-conf dnscache dnslog /usr/local/etc/dnscache 192.168.1.2

192.168.1.*(山中家の場合ですよ)からの問い合わせに答えるように

[root@jiro]/usr/ports# cd /usr/local/etc/dnscache/root/ip
[root@jiro]/usr/local/etc/dnscache/root/ip# touch 192.168.1

としておきます。
また、yamanakake.com、yamanakas.net、wty.dyndns.org、1.168.192.in-addr.arpaについては、127.0.0.1に問い合わせるようにします。

[root@jiro]/usr/local/etc/dnscache/root/ip# cd /usr/local/etc/dnscache/root/servers
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > yamanakake.com
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > yamanakas.net
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > wty.dyndns.org
[root@jiro]/usr/local/etc/dnscache/root/servers# echo 127.0.0.1 > 1.168.192.in-addr.arpa

自分のドメイン以外は知らないので、プロバイダのDNSに問い合わせるようにしておきましょう。

[root@jiro]/usr/local/etc/dnscache/root/servers# cd /usr/local/etc/dnscache/env
[root@jiro]/usr/local/etc/dnscache/env# echo 1 > FORWARDONLY
[root@jiro]/usr/local/etc/dnscache/env# cd ../root/servers
[root@jiro]/usr/local/etc/dnscache/root/servers# ee @
xxx.xxx.xxx.xxx
yyy.yyy.yyy.yyy

最後に、自動起動するためのリンクを作成します。

[root@jiro]/usr/local/etc/dnscache/root/servers# ln -s /usr/local/etc/dnscache /var/service/dnscache

LAN内のほかのPCの設定

LAN内の他のPCのDNSサーバアドレスは、192.168.1.2に設定します。
192.168.1.2では、dnscacheが動いていますので、自分のドメインであればそこから127.0.0.1(要は自分自身)に問い合わせますし、それ以外はプロバイダのDNSに問い合わせます。
ここでDNSの問い合わせがキャッシュされますので、LAN内のPCからのDNSの問い合わせが、毎回プロバイダに行くよりは高速で効率がよいと思います。

まずは、daemontoolsをインストールします。これは、デーモンの起動やログ取得をしてくれるもので、portsからインストールできます。

[root@jiro]/usr/ports# portinstall sysutils/daemontools

daemontools用のディレクトリは、portsでは/var/serviceが想定されています。私はportsそのまま派なので、/var/serviceで行きます。
インストールが終わったら、/var/serviceディレクトリが作成されているか、/usr/local/etc/rc.d/svscan.shが作成されているかを確認しておきましょう。
あと、最近では恒例の/etc/rc.confへの以下の記述の追加をお忘れなく。

[root@jiro]/usr/ports# ee /etc/rc.conf
(前略)
svscan_enable="YES"

記述したら、起動できるはずです。

[root@jiro]/usr/ports# /usr/local/etc/rc.d/svscan.sh start

として、起動できるか試してみてください。

[root@jiro]/usr/ports# ps -aux | grep svscan
root 470 0.0 0.2 1236 612 ?? S 火12AM 0:23.89 /usr/local/bin/svscan /var/service

となっていれば、起動されています。

バーチャル山中家がdjbdnsにしたのは、そんなに大きな理由はなかったのですが、なんとなくBINDの設定がややこしそうだったのと、djbdns作者や信者(?)の方が書いているWebサイトなどを読んでみて、面白そうだと思ったからだったと思います。

最初にdjbdnsをインストールした時には、[[FreeBSD-AT RANDOM -djbdnsでDNSサーバを作る->http://www.f-bell.net/FreeBSD/djbdns.html]]を参考にさせていただきました。

DNSを構築する理由は人それぞれ・サーバそれぞれだと思いますが、バーチャル山中家では以下のような感じです。

  • yamanakake.comというドメインを、自宅サーバに持ってきたかった。
  • yamanakas.netというドメインを、自宅サーバに持ってきたかった。
  • ついでにwty.dyndns.orgというドメインも持ってこよう。
  • 自宅のLANからも、インターネットからも同じアドレスでアクセスしたい。が、固定IPアドレスは1つだけなので、自宅内LANはローカルアドレスだ。
  • 安く上げたい(笑)

なので、実はLAN向けのDNSとインターネット向けのDNS、それにDNSキャッシュをセットアップしています。

例によって、portsからインストールします。

コマンドラインでのデータベース操作もいいのですが、phpMyAdminを導入するとWeb経由でデータベースの管理が出来るようになります。

[root@jiro]/usr/ports# portinstall databases/phpmyadmin

デフォルトでは、/usr/local/www/phpMyAdmin/ にインストールされます。
こういったWeb経由での管理ツール(例えばqmailadminも)は、外部に見せる必要はないので、Webのコーナーでも書いたように、内部用のサイトに置くことをおすすめします。

バーチャル山中家では、/data/Web/lan/ が内部用サイトのディレクトリなので、そこへコピーしました。
すると、ブラウザからは、http://lan.yamanakake.com/phpMyAdmin/ でアクセスできるはずです。
ためしにインストール直後の状態でアクセスしてみると、

phpMyAdmin は、MySQL サーバーに接続しようとしました。そして、サーバーは接続を拒絶しました。
config.inc.php の中のホスト、ユーザー名およびパスワードをチェックし、
MySQL サーバーの管理人から与えられた情報にそれらが相当することを確かめるべきです。

と、丁寧に怒られます(笑)
早速、config.inc.phpを見てみましょう。

[root@jiro]/usr/ports# cd /data/Web/lan/phpMyAdmin/ [root@jiro]/data/Web/lan/phpMyAdmin# ee config.inc.php

/** * Sets the php error reporting - Please do not change this line! */ if (!isset($olderrorreporting)) { errorreporting(EALL); @iniset('displayerrors', '1'); }

変えるな!って書いてあるので、そのままにしておきます。

/** * Your phpMyAdmin url * * Complete the variable below with the full url ie * http://www.yourweb.net/pathtoyourphpMyAdmindirectory/ * * It must contain characters that are valid for a URL, and the path is * case sensitive on some Web servers, for example Unix-based servers. * * In most cases you can leave this variable empty, as the correct value * will be detected automatically. However, we recommend that you do * test to see that the auto-detection code works in your system. A good * test is to browse a table, then edit a row and save it. There will be * an error message if phpMyAdmin cannot auto-detect the correct value. * * If the auto-detection code does work properly, you can set to TRUE the * $cfg['PmaAbsoluteUriDisableWarning'] variable below. */ $cfg['PmaAbsoluteUri'] = 'http://lan.yamanakake.com/phpMyAdmin/';

インストールした先をURLで書いてねとあります。
書かなくても自動的に検出すると思うけど、上手くいかないかもよ、とも書いてあります。
ま、書いておきましょう。

$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?

ここをhttpにしておけば、WebにアクセスするたびにIDとパスワードを入力する認証方式になります。configのままにしておいて、

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user $cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed // with 'config' auth_type)

ここでuserとpasswordを適切に設定しておく方法もあります。
バーチャル山中家では、LANから私しかアクセスしないので、configにしておいてパスワードを設定しました。

さて、上手くDBサーバが起動できたら、接続してみましょう。
インストール後再起動した人は大丈夫ですが、していない人はmysqlコマンドが増えたことをFreeBSDに教えてあげないといけませんね。

[root@jiro]/usr/local/etc/rc.d# mysql mysql: コマンドが見つかりません. [root@jiro]/usr/local/etc/rc.d# rehash [root@jiro]/usr/local/etc/rc.d# mysql ERROR 1045 (28000): ユーザー 'root'@'localhost' を拒否します.uUsing password: NO)

おやおや、「拒否します!」って言われちゃうと、冷たい感じです。
これはパスワードなしで接続できませんってことなので、-pをつけて起動して、パスワードを入力しましょう。

[root@jiro]/usr/local/etc/rc.d# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 4.1.10-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

無事起動できました。

インストールが終わったら、/usr/local/etc/rc.d/mysql-server.shが出来ていると思います。これは、MySQLサーバを自動起動するためのもの。
最近のものは、大抵/etc/rc.confに hoge_enable="YES" とか書かないと起動しないタイプになってきています。
インストールが終わって、すぐに再起動するのではなく、/usr/local/etc/rc.d 内にできたスクリプトを確認するようにしましょうね。

[root@jiro]~# ee /usr/local/etc/rc.d/mysql-server.sh (前略) #

Add the following line to /etc/rc.conf to enable mysql:

mysql_enable (bool): Set to "NO" by default.

Set it to "YES" to enable MySQL.

mysql_limits (bool): Set to "NO" by default.

Set it to yes to run limits -e -U mysql

just before mysql starts.

mysql_dbdir (str): Default to "/var/db/mysql"

Base database directory.

#

この部分がそうですね。やはり mysql_enable="YES" が必要のようです。

[root@jiro]~# ee /etc/rc.conf (前略) mysql_enable="YES"

としてから、

[root@jiro]/usr/local/etc/rc.d# ./mysql-server.sh start Starting mysql.

となれば、OKですね。

[root@jiro]/usr/local/etc/rc.d# ps -aux | grep mysql

してみると、

  • mysql 21080 0.0 0.3 1668 1120 p0 I 9:01AM 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysq
  • mysql 21103 0.0 14.5 328812 55616 p0 S 9:01AM 0:00.87 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/db/mysql --pid-file=/var/db/mysql

のように表示されて、起動されたことが分かります。

バーチャル山中家では、portsからインストールするのを標準としています。
で、MySQLでは、コンパイル時にキャラクターセットをEUC-JPに指定しておきたいので、まずはその準備。

[root@jiro]/usr/ports# ee /usr/local/etc/pkgtools.conf (前略) MAKEARGS = { 'databases/mysql*' => [ 'WITHCHARSET=ujis'] } (後略)

このように書いておけば、portinstallの時に、ちゃんと指定してくれます。

さて、このままportinstallすると、どうもかなり遠くからソースのtarボールをもってくるようです。見ているとかなり時間がかかりそうだったので、

[root@jiro]/usr/ports# cd distfiles [root@jiro]/usr/ports/distfiles# fetch http://www.softagency.co.jp/MySQL/Downloads/MySQL-4.1/mysql-4.1.10.tar.gz

してから、

[root@jiro]/usr/ports# portinstall database/mysql41-server

としました。

参考

バーチャル山中家では、以下のようなソフトウェアをインストールしています。

  • shells/fd
    MS-DOSの頃にお世話になったあのFDです。
    (って、知らない人多いか。)

  • archivers/lha
    これもMS-DOSの頃にお世話になったLHAです。ま、これはなくてもいいかも。
    sambaで共有しているフォルダ内のlzhファイルを直接扱うとかに使うかなぁ。

  • .cshrcの編集
    これは、FreeBSD 5.3/i386 note ベースシステムの設定を参考にしています。プロンプトの設定など、なれちゃうとやめられないかも。

  • テキストエディタ
    viにはどうもなじめなくて、eeを愛用していますが、代わりのエディタを探しています。

  • 2005/03/06
    DOS時代のVZエディタに似た感じのneというエディタを発見。portsにも入ってます。

基本的なことは、FreeBSD ハンドブックの20.4. make world の利用に書かれています。

  • まずはバックアップを取りましょう。
    設定とデータは最低限取りましょう。
    大きなバージョンアップをするときには、それと合わせてハードディスクを交換してしまうことも考えてみてください。
    そうすれば交換前のディスクがバックアップになりますね。
  • /usr/src/UPDATING を読む
  • /etc/make.conf の確認

実際の構築は、できるならシングルモードになってからやっちゃったほうが安全だと思いますが、サービスを提供しながらとなると、そうもいきません。
まずは、コンパイルをしていきましょう。

[root@jiro]~# cd /usr/src  
[root@jiro]/usr/src# make buildworld  
[root@jiro]/usr/src# make buildkernel

これで、コンパイルはできましたので、シングルモードになりましょう。

[root@jiro]/usr/src# shutdown now  
# male installkernel  
# reboot

まずはカーネルをインストールして再起動してみます。
無事起動しましたでしょうか?

[root@jiro]/usr/src# mergemaster -p

ここで、最低限必要なファイルの内容比較を行います。結構追加したユーザーがなくなっちゃったりします。バックアップから再度追加するとか、新しく増えた部分のみを現行のファイルに追加するとか、これはそれぞれの場合によります。ここでもバックアップが必要だということが分かりますね。
マージが出来たら、シングルモードになって、カーネル以外の部分もインストールしてみましょう。

[root@jiro]/usr/src# shutdown now  
# make installworld  
# mergemaster  
# reboot

もちろん、ここで書いた方法はアップデートの内容によっては不要な手順もあります。
失敗することもあるわけで、コンパイル時のメッセージなどもよく確認してください。

CVSUPもインストールできたので、FreeBSD自身のソースを最新化してみましょう。

Windowsと違って、FreeBSDや他のオープンソースOSでは、ソースが公開されています。しかもそのソースをコンパイルすればちゃんと動くというところがすごいですよね。
Windowsもソースを公開するとかしないとか言ってますけど、持ってきてコンパイルできるソースなのかなぁ。

さて、CVSUPを使ってソースを同期するための定義ファイルを作成しましょう。
サンプルは、/usr/src/share/examples/cvsup/stable-supfileにあります。
これを/etc/cvsup/releng53-supfileにコピーして編集しましょう。
おっとその前に、どこのCVSUPサーバが近いか、見ておきましょうね。

[root@jiro]~# fastest_cvsup -c jp  
>>  Querying servers in countries: jp  
--> Connecting to cvsup.jp.freebsd.org [210.224.172.75]...  
    - server replied: OK 17 0 SNAP_16_1g CVSup server ready  
    - time taken: 22.83 ms  
--> Connecting to cvsup2.jp.freebsd.org [202.229.199.30]...  
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready  
    - time taken: 14.83 ms  
--> Connecting to cvsup3.jp.freebsd.org [210.188.224.44]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 14.16 ms  
--> Connecting to cvsup4.jp.freebsd.org [133.1.44.1]...  
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready  
    - time taken: 26.17 ms  
--> Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 3008.40 ms  
--> Connecting to cvsup6.jp.freebsd.org [133.1.240.15]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 26.36 ms  

>>  Speed Daemons:  
    - 1st: cvsup3.jp.freebsd.org  
    - 2nd: cvsup2.jp.freebsd.org  
    - 3rd: cvsup.jp.freebsd.org

このような結果が表示されましたか?
バーチャル山中家は、cvsup3.jp.freebsd.orgが一番近いようですね。
この結果を受けて、supfileを作りましょう。

[root@jiro]~# cp /usr/src/share/example/cvsup/stable-supfile /etc/cvsup/releng_5_3-supfile  
[root@jiro]~# ee /etc/cvsup/releng_5_3-supfile  
(前略)  
*default host=cvsup3.jp.FreeBSD.org  
*default base=/var/db  
*default prefix=/usr  
(中略)  
*default release=cvs tag=RELENG_5_3  
(中略)  
#*default compress  
(中略)  
src-all  
(後略)

さて、supfileもできましたので、早速ソースを同期してみましょう。

[root@jiro]~# mkdir /var/log/cvsup/releng_5_3  
[root@jiro]~# cvsup -g -L 2 /etc/cvsup/releng_5_3-supfile | tee -a /var/log/cvsup/releng_5_3/yyyymmdd.log

yyyymmddの部分は、yyyyに年を、mmに月を、ddに日を置き換えてください。
そうしておけば、いつの同期のログかが、分かりやすくなります。

参考:http://sakura.take-labo.jp/freebsd/i386-releng53_5.3-RELEASE.html

さて、それではOSやPortsを最新化するためのツールであるCVSUPをインストールしましょう。
さっき入れたportupgradeを使うと、こんな感じになります。

[root@jiro]~# cd /usr/ports  
[root@jiro]/usr/ports# portinstall net/cvsup-without-gui

あと、CVSUPを使うときに利用するディレクトリを作成しておきましょう。

[root@jiro]/usr/ports# mkdir /etc/cvsup  
[root@jiro]/usr/ports# mkdir /var/db/sup  
[root@jiro]/usr/ports# mkdir /var/log/cvsup  
[root@jiro]/usr/ports# mkdir /var/log/cvsup/ports  
[root@jiro]/usr/ports# mkdir /var/log/cvsup/pkg

次に、CVSUPを実行する際に、CVSUPサーバの反応が速いものを探してくれるツールをインストールします。

[root@jiro]/usr/ports# portinstall sysutils/fastest_cvsup

参考:http://sakura.take-labo.jp/freebsd/i386-ports.html

FreeBSDで何かソフトウェアをインストールするときに、「portsから入れる」という場合は、/usr/portsの下に展開している膨大な数のportsコレクションから必要なものを見つけて、そのディレクトリへ行ってmakeしてmake installして・・・という手順を行います。
この手順をスマートにしてくれるのが、このportupgradeです。
なので、portupgradeは、上記のmakeして・・・という手順でインストールします。

[root@jiro]~# mkdir /var/log/ports  
[root@jiro]~# cd /usr/ports/sysutils/portupgrade  
[root@jiro]/usr/ports/sysutils/portupgrade# make | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# make install | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# make clean | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# source ~/.cshrc  
[root@jiro]/usr/ports/sysutils/portupgrade# mkdir /usr/ports/packages  
[root@jiro]/usr/ports/sysutils/portupgrade# mkdir /usr/ports/packages/All

それと、portupgradeのログを自動的にとるように、/usr/local/etc/pkgtools.confを編集しておきましょう。

[root@jiro]~# ee /usr/local/etc/pkgtools.conf

最後のほうに以下のように記述しておきます。

  PORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || \  
       '-v -L /var/log/ports/'

こうしておくと、portupgrade -v -L /var/log/ports/ と毎回入力しなくても、そのように動作してくれます。

あと、セキュリティ的に問題があると指摘してくれるツールを入れておきましょう。

[root@jiro]/usr/ports# portinstall security/portaudit

参考:http://sakura.take-labo.jp/freebsd/i386-ports.html

まずはportsツリーを最新化しておきましょう。

[root@jiro]~# fetch ftp://ftp3.jp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz  
[root@jiro]~# tar -zxvf ports.tar.gz -C /usr/

ここではftp3.freebsd.orgから取得していますが、お近くのサーバから取得してください。

また、この先portsやFreeBSD自身のコンパイルをしていくわけですが、そのコンパイルのための設定もしておきましょう。

[root@jiro]~# ee /etc/make.conf  
CPUTYPE=i686  
CFLAGS= -O -pipe        # コンパイラの最適化オプション  
COPTFLAGS= -O -pipe

CPUTYPEは、お使いのCPUに合わせてくださいね。
また、portsのコンパイルの際はいいのですが、OSのコンパイルの際には外したほうがいいとの情報もあったりします。
まぁ、最適化はしなくても動きます。その辺は色々試してみてください。

参考にしたサイト:http://sakura.take-labo.jp/freebsd/i386-ports.html

ここまでで、FreeBSD 5.3-RELEASEがインストールできました。

Windowsの場合で考えてみましょう。
Windowsをインストールした直後って何をしますか?
最近では、とりあえずブラウザの設定が出来ていてWebが見られるようになれば、Windows Updateをするのではないでしょうか?

実はFreeBSDでも同じ事で、まずはセキュリティ関連のパッチをあてて、FreeBSDを最新の状態にすることが大事だと思います。攻撃されたり、攻撃の道具に使われないためにも、普段からセキュリティ勧告などにアンテナを張るなどして情報収集するようにしましょう。

では、そのセキュリティ関連の対策をするための、道具の準備をしていきましょう。

あとは、画面の指示に従って、インストールを進めていくことになります。
自宅サーバを目指しているインストールの場合には、X Windowsは入れなくても良いでしょう。
しかし、セキュリティ対策のために、OSにパッチを当ててコンパイルしたりするので、ソースは全部入れておきましょうか。

あと、portsコレクションをどうする?って聞かれます。
これは、お好みで。5.3-RELEASE時点のものをとりあえず入れておくのも良いですが、日々激しく更新されているportsですので、後で最新化するときに入れても良いです。
バーチャル山中家では、まずはCD-ROMから入れておいて、CVSupで最新化しています。
packageについては、ここでは入れなくてもよいでしょう。

細かい話は、FreeBSDのマニュアルを読むとかしてくださいね。

さて、バーチャル山中家では、普段の作業はSSH経由でWindowsマシンから行っています。
この方が、画面は広いし、日本語が表示できるし、何かと便利だからです。
もちろん、サーバコンソールからでないと出来ない作業もありますけどね。
なので、SSH経由でログインできるrootになれるユーザーを1つ作っておくことをお勧めします。wheelグループに所属させておけば、suコマンドでrootになれます。

あと、SSH経由で接続する際の準備をしておきましょう。
バーチャル山中家では、TTSSHを利用して接続しています。
(このTTSSHについては、ここでは書きませんので、Google先生に聞いてみるなりしてください。)
TTSSHはSSHのVersion2に対応していないので、FreeBSD 5.3-RELEASEをインストールした直後の状態ではそのまま接続できません。(5.2.1からバージョンアップした直後はまりました)
SSHD(SSHのデーモンさん)の設定を書き換えておきましょう。

[root@jiro]/# cd /etc/ssh  
[root@jiro]/etc/ssh# ee sshd_config  

(前略)  
#Port 22  
Protocol 2,1   ←ここ  
#ListenAddress 0.0.0.0  
(中略)  
# Change to yes to enable built-in password authentication.  
PasswordAuthentication yes   ←ここ  
#PermitEmptyPasswords no  
(後略)

上手くいったら、CDを抜いて再起動です。
無事起動しましたか?
無事起動したら、とりあえず一安心ですね。

次はパーティションを設定します。

+---------------------------------- Message -----------------------------------+  
|Now you need to create BSD partitions inside of the fdisk partition(s)        |  
|just created.  If you have a reasonable amount of disk space (200MB or more)  |  
|and don't have any special requirements, simply use the (A)uto command to     |  
|allocate space automatically.  If you have more specific needs or just don't  |  
|care for the layout chosen by (A)uto, press F1 for more information on        |  
|manual layout.                                                                |  
+---------------------------------------------------------------------q(100%)q-+  
|                                 [  OK  ]                                     |  
+---------------------------[ Press enter or space ]---------------------------+

確保したFreeBSD領域の中に、パーティションを作成しましょうということです。
200MB以上の領域があるなら、AのAUTOでいいよ~と言っていますね。
ま、最初はAUTOを使うのも一つの手です。
AUTOでは

  • /
  • swap
  • /var
  • /tmp
  • /usr

を自動的に作成してくれます。結構小さめなきり方をするようですね。
最近のでっかいディスクでは、/usrばかりが馬鹿でかいような設定になっちゃいます。
ま、それでもよいのですが、バーチャル山中家では、純粋なデータ領域として/dataも作ることにしました。
ここにWebコンテンツを置いたり、sambaでフォルダを共有して、家庭内LAN上からファイルを格納したり参照したりしようかな?という作戦です。
純粋なデータ領域を作っておけば、そこにデータがあるって分かりやすいので、バックアップもしやすいかな?ってことで。

ちなみに、バーチャル山中家では、きりがいいように

  • 1GB を / に
  • 3GB を swap に
  • 2GB を /var に
  • 2GB を /tmp に
  • 8GB を /usr に
  • 残り を /data に

って感じになっています。

Standerdを選択してEnterを押すと、以下のようなメッセージが表示されます。

+----------------------------------- Message -----------------------------------+  
|In the next menu, you will need to set up a DOS-style ("fdisk") partitioning   |  
|scheme for your hard disk.  If you simply wish to devote all disk space        |  
|to FreeBSD (overwriting anything else that might be on the disk(s) selected)   |  
|then use the (A)ll command to select the default partitioning scheme followed  |  
|by a (Q)uit.  If you wish to allocate only free space to FreeBSD, move to a    |  
|partition marked "unused" and use the (C)reate command.                        |  
+-----------------------------------------------------------------------(100%)--+  
|                                 [  OK  ]                                      |  
+---------------------------[ Press enter or space ]----------------------------+

要は、

この次のメニューで、DOSスタイルのFDISKでハードディスクにパーティションを定義しますよ。
ハードディスクを単純に全部FreeBSD用にするなら(そのディスクの全部を上書きしちゃってもいいなら)Aを押してQを押せばいいよ。
ハードディスクの空いている領域をFreeBSD用に使うなら、unusedって書いてあるところでCコマンドを使ってね。

ということのようです。

最近の人に''DOSスタイルのFDISK''って言っても、通じないような気もしますが・・・

バーチャル山中家では、A押してQのパターンで、いつもやっています。
で、わくわくしながらEnterを押すと、

+----------------------------- Message -----------------------------+  
|WARNING:  A geometry of 319120/16/63 for ad0 is incorrect.  Using  |  
|a more likely geometry.  If this geometry is incorrect or you      |  
|are unsure as to whether or not it's correct, please consult       |  
|the Hardware Guide in the Documentation submenu or use the         |  
|(G)eometry command to change it now.                               |  
|                                                                   |  
|Remember: you need to enter whatever your BIOS thinks the          |  
|geometry is!  For IDE, it's what you were told in the BIOS         |  
|setup. For SCSI, it's the translation mode your controller is      |  
|using.  Do NOT use a ``physical geometry''.                        |  
+-----------------------------------------------------------(100%)--+  
|                           [  OK  ]                                |  
+---------------------[ Press enter or space ]----------------------+

なーんて表示されちゃいました。

最近の大容量のハードディスクでは、geometryというC/H/Sの値が変になっちゃってる(っていうか想定されている値を超えちゃう)ので、この警告が出るようです。
319,120セクタが16シリンダで63ヘッドってことは、321,672,960セクタですね。
1クラスタ512バイトだったと思うので、2で割ると160,836,480KB、さらに1024で割ると157,066.875MB、さらに1024で割ると153.3856201GB・・・。今回つけたのは160GBなので、まぁあっているようですね。
気にせず進みました(ぉぃぉぃ)

すると、以下のような画面になります。これがFDISKですね。

Disk name:      ad0                                    FDISK Partition Editor  
DISK Geometry:  20023 cyls/255 heads/63 sectors = 321669495 sectors (157065MB)  

Offset       Size(ST)        End     Name  PType       Desc  Subtype    Flags  

         0         63         62        -     12     unused        0  
        63  321669432  321669494    ad0s1      8    freebsd      165  
 321669495       3465  321672959        -     12     unused        0  






The following commands are supported (in upper or lower case):  

A = Use Entire Disk   G = set Drive Geometry   C = Create Slice   F = `DD' mode  
D = Delete Slice      Z = Toggle Size Units    S = Set Bootable   | = Wizard m.  
T = Change Type       U = Undo All Changes     W = Write Changes  


Use F1 or ? to get more help, arrow keys to select.

さっき出たgeometryがどうのこうのという値と表示されている値が違うみたいですね。
自分で直したんだっけ?覚えてないなー。
直す場合はGを押してください。
付いているハードディスクの容量と概ね合っているようなら、Aで「全部!」を指定して、Qで確定しちゃいましょう。すると、

+----------------- Install Boot Manager for drive ad0? ------------------+  
| FreeBSD comes with a boot selector that allows you to easily           |  
| select between FreeBSD and any other operating systems on your machine |  
| at boot time.  If you have more than one drive and want to boot        |  
| from the second one, the boot selector will also make it possible      |  
| to do so (limitations in the PC BIOS usually prevent this otherwise).  |  
| If you do not want a boot selector, or wish to replace an existing     |  
| one, select "standard".  If you would prefer your Master Boot          |  
| Record to remain untouched then select "None".                         |  
|                                                                        |  
|   NOTE:  PC-DOS users will almost certainly re-+ire "None"!            |  
| +--------------------------------------------------------------------+ |  
| |         BootMgr   Install the FreeBSD Boot Manager                 | |  
| |         Standard  Install a standard MBR (no boot manager)         | |  
| |         None      Leave the Master Boot Record untouched           | |  
| +--------------------------------------------------------------------+ |  
+------------------------------------------------------------------------+  
|                         [  OK  ]       Cancel                          |  
+-----------------[ Press F1 to read about drive setup ]-----------------+

ブートマネージャを入れますか?と聞いてきます。
そのハードディスクにFreeBSDのみ入れていて、他にOSを入れないのであればStandardで良いでしょう。そうでない場合はBootMgrを選択すると、起動時にどのOSを起動するか選べるようになります。

起動したら、インストーラーの画面が表示されると思います。

+------------------------ sysinstall Main Menu -------------------------+  
| Welcome to the FreeBSD installation and configuration tool.  Please   |  
| select one of the options below by using the arrow keys or typing the |  
| first character of the option name you're interested in.  Invoke an   |  
| option with [SPACE] or [ENTER].  To exit, use [TAB] to move to Exit.  |  
| +-------------------------------------------------------------------+ |  
| |    Usage       Quick start - How to use this menu system          | |  
| |   Standard     Begin a standard installation (recommended)        | |  
| |   Express      Begin a quick installation (for experts)           | |  
| |    Custom      Begin a custom installation (for experts)          | |  
| |   Configure    Do post-install configuration of FreeBSD           | |  
| |   Doc          Installation instructions, README, etc.            | |  
| |   Keymap       Select keyboard type                               | |  
| |   Options      View/Set various installation options              | |  
| |   Fixit        Repair mode with CDROM/DVD/floppy or start shell   | |  
| |   Upgrade      Upgrade an existing system                         | |  
| |   Load Config  Load default install configuration                 | |  
| |   Index        Glossary of functions                              | |  
| +-------------------------------------------------------------------+ |  
+-----------------------------------------------------------------------+  
|                        [Select]    X Exit Install                     |  
+------------------[ Press F1 for Installation Guide ]------------------+

日本語キーボードで作業される場合には、まずConfigureを選択して、キーボードを変更しておきましょう。Configureを選んでEnterを押すと、画面が変わります。

+---------------------- FreeBSD Configuration Menu -----------------------+  
| If you've already installed FreeBSD, you may use this menu to customize |  
| it somewhat to suit your particular configuration.  Most importantly,   |  
| you can use the Packages utility to load extra "3rd party"              |  
| software not provided in the base distributions.                        |  
| +---------------------------------------------------------------------+ |  
| | X Exit            Exit this menu (returning to previous)            | |  
| |  Distributions    Install additional distribution sets              | |  
| |  Packages         Install pre-packaged software for FreeBSD         | |  
| |  Root Password    Set the system manager's password                 | |  
| |  Fdisk            The disk Slice (PC-style partition) Editor        | |  
| |  Label            The disk Label editor                             | |  
| |  User Management  Add user and group information                    | |  
| |  Console          Customize system console behavior                 | |  
| |  Time Zone        Set which time zone you're in                     | |  
| |  Media            Change the installation media type                | |  
| |  Mouse            Configure your mouse                              | |  
| |  Networking       Configure additional network services             | |  
| |  Security         Configure system security options                 | |  
| |  Startup          Configure system startup options                  | |  
| |  TTYs             Configure system ttys.                            | |  
| |  Options          View/Set various installation options             | |  
| |  XFree86          Configure XFree86 Server                          | |  
| |  Desktop          Configure XFree86 Desktop                         | |  
| |  HTML Docs        Go to the HTML documentation menu (post-install)  | |  
| |  Load KLD         Load a KLD from a floppy                          | |  
| +---------------------------------------------------------------------+ |  
+-------------------------------------------------------------------------+  
|                         [  OK  ]       Cancel                           |  
+-----------[ Press F1 for more information on these options ]------------+

ここでConsoleを選び、Enterを押します。

+----------------- System Console Configuration ------------------+  
| The default system console driver for FreeBSD (syscons) has a   |  
| number of configuration options which may be set according to   |  
| your preference.                                                |  
|                                                                 |  
| When you are done setting configuration options, select Cancel. |  
| +-------------------------------------------------------------+ |  
| |     X Exit       Exit this menu (returning to previous)     | |  
| |     2 Font       Choose an alternate screen font            | |  
| |     3 Keymap     Choose an alternate keyboard map           | |  
| |     4 Repeat     Set the rate at which keys repeat          | |  
| |     5 Saver      Configure the screen saver                 | |  
| |     6 Screenmap  Choose an alternate screenmap              | |  
| |     7 Ttys       Choose console terminal type               | |  
| +-------------------------------------------------------------+ |  
+-----------------------------------------------------------------+  
|                     [  OK  ]       Cancel                       |  
+-----------[ Configure your system console settings ]------------+

ここで、Keymapを選び、Enterを押します。

+------------------------ System Console Keymap -------------------------+  
| The default system console driver for FreeBSD (syscons) defaults       |  
| to a standard "American" keyboard map.  Users in other countries       |  
| (or with different keyboard preferences) may wish to choose one of     |  
| the other keymaps below.                                               |  
| Note that sysinstall itself only uses the part of the keyboard map     |  
| which is required to generate the ANSI character subset, but your      |  
| choice of keymap will also be saved for later (fuller) use.            |  
| +--------------------------------------------------------------------+ |  
| | Belgian                     Belgian ISO keymap                     | |  
| |  Brazil CP850               Brazil CP850 keymap                    | |  
| |  Brazil ISO (accent)        Brazil ISO keymap (accent keys)        | |  
| |  Brazil ISO                 Brazil ISO keymap                      | |  
| |  Bulgarian BDS              Bulgarian BDS keymap                   | |  
| |  Bulgarian Phonetic         Bulgarian Phonetic keymap              | |  
| |  Croatian ISO               Croatian ISO keymap                    | |  
| |  Czech ISO (accent)         Czech ISO keymap (accent keys)         | |  
| | Danish CP865                Danish Code Page 865 keymap            | |  
| |  Danish ISO                 Danish ISO keymap                      | |  
| | Estonian ISO                Estonian ISO keymap                    | |  
| |  Estonian ISO 15            Estonian ISO 8859-15 keymap            | |  
| |  Estonian CP850             Estonian Code Page 850 keymap          | |  
| | Finnish CP850               Finnish Code Page 850 keymap           | |  
| |  Finnish ISO                Finnish ISO keymap                     | |  
| |  French ISO (accent)        French ISO keymap (accent keys)        | |  
| |  French ISO                 French ISO keymap                      | |  
| | German CP850                German Code Page 850 keymap            | |  
| |  German ISO                 German ISO keymap                      | |  
| |  Greek 101                  Greek ISO keymap (101 keys)            | |  
| |  Greek 104                  Greek ISO keymap (104 keys)            | |  
| |  Greek ELOT                 Greek ISO keymap (ELOT 1000)           | |  
| | Hungarian 101               Hungarian ISO keymap (101 key)         | |  
| |  Hungarian 102              Hungarian ISO keymap (102 key)         | |  
| | Icelandic (accent)          Icelandic ISO keymap (accent keys)     | |  
| |  Icelandic                  Icelandic ISO keymap                   | |  
| |  Italian                    Italian ISO keymap                     | |  
| | Japanese 106                Japanese 106 keymap                    | |  
| | Latin American              Latin American ISO keymap              | |  
| | Norway ISO                  Norwegian ISO keymap                   | |  
| | Polish ISO                  Polish ISO keymap                      | |  
| |  Portuguese (accent)        Portuguese ISO keymap (accent keys)    | |  
| |  Portuguese                 Portuguese ISO keymap                  | |  
| | Russia KOI8-R               Russian KOI8-R keymap                  | |  
| +--(+)---------------------------------------------------------------+ |  
+------------------------------------------------------------------------+  
|                         [  OK  ]       Cancel                          |  
+-----------------------[ Choose a keyboard map ]------------------------+

Japanese 106を選んでEnterを押すと、日本語キーボードが設定されます。
設定したら、Exitを選んでEnterを押し、元のメニューに戻っていきます。
では、Standerdを選んでEnterを押して、先へ進みましょう。

そうは言っても、自宅サーバならではのメリットは多数あります。

  • Webサーバの容量は事実上無制限!
  • 独自ドメインで運用できる!
  • メールアドレスも作りたい放題!
  • 色々なCGIやスクリプトも設置し放題!

高速な回線を持っていて、Windowsではちょっともたつくけど~くらいのPCがあまっていて、24時間稼動させても大丈夫な方。一度、自宅サーバにチャレンジして見ませんか?
そんなに追加投資なしに、自宅サーバを設置することは可能です。
ただし、無事構築できて公開したら、やはり維持していく必要がありますので、よく考えてチャレンジしてくださいね。

FreeBSDのインストールは、あまりグラフィカルではないし、英語も出てくるし、ちょっと・・・という人もいるかも知れませんね。
でも、何も専門的な論文を読むわけでもありませんので、英和辞典を片手にやるのもよいかもしれません。

CD-ROMからのインストール

バーチャル山中家では、いつもこの方法を採用しています。
この方法には、CD-Rが作成できる環境とCD-Rの媒体が必要です。あるいは、コンピュータ雑誌の付録CDを使うという手もありますね。

さて、CD-Rを作成できる環境のある方は、isoイメージをダウンロードして、CD-Rに焼いてください。
ダウンロードするftpサイトは、ここで調べると良いでしょう。

ここで、ISOsを選択して、JAPAN、i386、5.3を選ぶと、5.3-RELEASEのISOイメージがある日本のミラーサイトが一覧で出てきます。
速そうなところから、どうぞ。
ダウンロードは、とりあえず5.3-RELEASE-i386-disc1.isoだけあれば良いでしょう。

さて、CD-Rができたら、CDドライブにセットして起動してみましょう。
ISOイメージはBOOTABLEになっているので、そのままFreeBSDが起動すると思います。

ftpからのインストール

注意:バーチャル山中家では、この方法を採用していないので、未検証です。

この方法は、例えばCDドライブがないマシンにセットアップする等に使えます。あるいはCD-Rを作成する環境がない場合も、この方法ですね。
ただし、インターネットからFreeBSDの資源を持ってきますので、回線速度がそこそこ速くないと時間がかかります。自宅サーバを公開しようという場合、回線速度もそこそこあるでしょうから、大丈夫かな。

フロッピーを作成する方法はいくつかありますが、ISOイメージをダウンロードしたように、フロッピーイメージをダウンロードしましょう。

ダウンロードするftpサイトは、ここで調べると良いでしょう。

ここで、Releasesを選択して、JAPAN、i386、5.3を選ぶと、5.3-RELEASEのフロッピーイメージがある日本のミラーサイトが一覧で出てきます。
速そうなところから、どうぞ。

ダウンロードは、

  • floppies/boot.flp
  • floppies/kern1.flp
  • floppies/kern2.flp
  • tools/fdimage.exe

をダウンロードしましょう。
フロッピーを3枚用意して、(例:A:がフロッピーで、C:\TEMPにダウンロードした場合)

C:>fdimage boot.flp a: C:>fdimage kern1.flp a: C:>fdimage kern2.flp a:

というようにして、3枚のフロッピーを作ってください。
で、boot.flpを書き込んだフロッピーをセットして起動します。途中でフロッピーを交換するように言われると思うので、従ってください。

自宅でサーバを構築して、別にインターネットに公開しないのであれば(うちわでほくそえむ用途?あるいは実験用)、デメリットもそんなにないと思います。
しかし、インターネットに公開するということは、色々と責任も生じますし、サービスを維持していかなければなりません。

  • 通常、インターネット向けのサービスは、例えばWebでもそうですが、みる人がいようがいまいが提供しつづける必要があります。
    まぁ、昼間しかやらないとか、夜だけですとか、気が向いたらやりますよーというサーバもダメだとは言いませんが、見に来て欲しいのならいつでも見られるようにしておかないと、と思います。
  • 悪意あるインターネット上の誰かが、自宅に開設したサーバを踏み台にして何かをしないように(出来ないように)注意しなければなりません。
    別に、娘の写真しかない、まぁおおよそ他人様が見ても面白くない バーチャル山中家 のようなサイトでも、その内容にかかわらず、第三者に迷惑をかけるようなことでは困りますよね。
  • ハードウェアのメンテナンスやソフトウェアのメンテナンス、データのバックアップなども、すべて自分で行うことになります。
    まぁ、自宅にサーバを置くからといって、19インチラックを設置して・・・という必要はありませんが、例えば雷による停電からサーバを守るUPSを設置したり、ハードディスクが壊れる前に交換したり、壊れてもすぐに交換してバックアップから内容が復元出来るように備えたり・・・
    やはり、公共の場所に公開するのですから、それなりに責任を果たさなければなりません。
  • 電気代や騒音も、問題になります。お金持ちの一人暮らしだとかだといいのですが、家族と自宅サーバを共存させるためには、色々と配慮も必要です。

FreeBSDが動くハードウェアを用意しましょう。
ここでは、FreeBSD 5.3-RELEASEを想定していますので、FreeBSD/i386 5.3-RELEASE ハードウェアノートを読んで、用意するとしましょう。
あまり深く考える必要はないのですが、以下のポイントがあるかな?と思います。

  • 普通のデスクトップ機が無難。ノートは特殊なデバイスがあったりして苦労するかも。
  • CPUは、コンパイルする場合には速い方がいいでしょうが、遅くでも大丈夫。まぁ、今手に入る(あるいは余剰になっている)ものであれば、多分大丈夫です。
    ちなみにバーチャル山中家では、PentiumIIIの1GHzを使用しています。
  • メモリも多いにこしたことはないですが、128MBとか256MBでも大丈夫だと思います。
    バーチャル山中家では、384MBだったかな?
  • ハードディスクは、この際新品を用意しましょう。動き出したら交換するのは大変ですから。
    バーチャル山中家では、ついこの前160GBのATAドライブに変更しました。
  • CD-ROMドライブは、あればそれはそれで便利なのですが、稼動後はあまり使わないかも知れません。
  • LANインターフェースは必須です。これが無いとインターネットに限らずネットワークにつながりませんね。PCIインターフェースのもので変なものじゃなければ普通に認識されるでしょう。Intelさんのオンボードでも十分です。
  • VGAカードも、これが無いとディスプレイに何も映りませんね。3Dゲームをするわけではないので、チップセット内蔵でも十分です。
    バーチャル山中家では、i810eだったかな?チップセット内蔵のものです。

あまり古過ぎず、あまり新しすぎないものをチョイスしましょう。
ハードディスクは新品が良いでしょうが、最新の高いものである必要はなく、安くなったものでいいと思います。回転数も低いほうが静かでよいかも知れません。

バーチャル山中家の場合は、もともとプロバイダが提供しているWebサーバスペースを借りてスタートしました。
当時、私自身もインターネットというものを使い始めたばかりでしたし、サーバを運営管理するスキルも、24時間稼動できるマシンもありませんでしたので。
そのうち、娘が出来て、(みたい人は少ないものの)嬉しそうに写真を載せだすと、とたんに問題が発生します。

  • プロバイダが提供してくれる容量では足りない。
  • アップロードに時間がかかる。

また、プロバイダによりますが、例えば掲示板を設置したいとか、何かWebサーバ上でしたいと思った場合に、そのCGIやスクリプトが設置できるかどうかは、サーバの設定やプロバイダのポリシーなどに左右されることになります。

しかし、探せばプロバイダではなく、しかも無料でWebサーバスペースを貸してくれるサービスも結構ありますね。容量も大きいものがいくつもあります。
でも、こういった無料のサービスも当然商売なので、広告が入ったりします。また、無料だと、どうしてもいかがわしいページもたくさんあったりします。
あと、やはりインターネットのどこかにあるサーバは、自宅から遠い場所にあったりすると、下手をすればプロバイダのWebサーバスペースよりも、アップロードに時間がかかっちゃったり。

つまり、ここまでで述べたことの反対が、自宅サーバのメリットということになります。

  • 自宅にありますから、容量は自分の財力によっていかようにも。
    ハードディスクはどんどん大容量化していますから、そんなに費用はかかりません。
  • 自宅にありますから、通常LANでつながっていたりしますよね。っていうか、LANを構築して下さい。アップロードの速度は比べ物になりません。

でも、よいことばかりではありません。

バーチャル山中家が自宅サーバに移行した際に、サーバOSにFreeBSDを選んだのは、そんなに大きな理由はありませんでした。

しいて言えば

  • Linuxに対して''硬派''なイメージが、サーバによさそうだった。
  • 安定していそうな雰囲気
  • なんと言っても無料
  • FreeBSD 2.2.5J サーバ構築ガイド (野口 修 著)に、たまたま出会った。

あたりが理由でしょうか。
実際に、FreeBSDで自宅サーバを運用してみて、LinuxでなくFreeBSDにしておいてよかったと感じています。安定していますし、設定が分かりやすいですね。

バーチャル山中家でよく参考にさせていただいているのは、下記のサイトです。

アナログモデムでのダイヤルアップやISDNでのダイヤルアップが主流だった時代には、よほど実験的な目的で無い限り、自宅にインターネット向けのサーバを構築しようという人はなかったと思います。
その後、ADSLが広がりを見せたり光ファイバーが普及してきました。いまやブロードバンドといわれる高速なインターネット接続が手の届く価格で提供されています。

さて、ずっと家にいて一日中インターネットを利用している人や、何か巡回するソフトウェアを使ってダウンロードしまくっている人を除けば、その高速な回線は1日の大半ほとんどパケットの流れない状態なのではないかと思います。これって結構もったいない話だとは思いませんか?
通常、ADSLや光ファイバーによる回線は、従量制(使った量で値段が決まる)ではなく、定額制(使っても使わなくても同じ値段)です。
このがらがらの高速道路、もっと有効に使おうじゃないか!という意味でも、自宅サーバは1つの方法だと思います。

勤務カレンダ

勤務カレンダー

タクシーのご用命は
080-3115-3239 (Softbank)
携帯メール

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.02

おすすめ

広告

このアーカイブについて

このページには、2005年3月に書かれたブログ記事が新しい順に公開されています。

次のアーカイブは2005年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

なかのひと

FoxMeter