FreeBSDな1日

最初に自分のPCにUnixを入れた日、大学1年の頃。
FreeBSDでサーバ構築という、その当時としてはめずらしい雑誌があったので買い、FreeBSD2.8を自宅の486マシンに突っ込んだっけ。ISAバスというスロットにさしていたNICを認識させるのにも一苦労してたっけ。

それがいまや、FreeBSD on Linux with Vmwareという時代。いやー、楽だ。
FreeBSDはここ6年ぐらい触ってなくて久々に触ってみたら、あまり変わらないインストール方法だったので、思い出しながら結構すんなりできた。
インストールした状態はすごく簡素な感じで、あとからportsでどんどん入れてくという感じ。bashも後から入れた。ネットワークの設定ファイルがどれだったか分からなくなって、/usr/sbin/sysinstallのコンソールで設定したりした。/etc/rc.confだったのね。


今回は、Apache, MySQLを手動でコンパイルして、qmail, ImageMagick, bash, wgetなどは全てportsからインストール。
いやぁ、portsは楽だ。昔からこんなシステムを構築してたFreeBSDは偉大だ。

初めてqmailを使ってみたけど、/var/qmail以下に全てファイルが集約されてていい感じ。設定も楽だった。

とりあえず、今後の自分のために下記、作業ログ。



MySQLのインストール
 MySQL5.0.67

ユーザmysql グループmysqlを追加(パスワード無し)

./configure --prefix=/usr/local/mysql5 --with-extra-charset=all
make
make install

初期化
/usr/local/mysql5/bin/mysql_install_db --user=mysql

MySQLの起動
/usr/local/mysql5/bin/mysqld_safe --user=mysql &

自動起動の設定
cd /home/username/source/mysql-5.0.67/support-files
cp mysql.server /usr/local/etc/rc.d/mysqld.sh
chmod 755 /usr/local/etc/rc.d/mysqld.sh

my.cnfの設定
cp /usr/local/mysql5/share/mysql/my-medium.cnf /etc/my.cnf

Apacheのインストール
Apache 1.3.41

./configure --prefix=/usr/local/apache --enable-module=so --enabel-module=rewrite
make
make install


自動起動の設定

vi /usr/local/etc/rc.d/httpd.sh

#!/bin/sh
#
apache=/usr/local/apache/bin/httpd
apachectl=/usr/local/apache/bin/apachectl
if [ -f $apache ]; then
$apachectl start
echo -n ' Apache Server Started '
fi


chmod 755 /usr/local/etc/rc.d/httpd.sh

Perlモジュール(DBI, DBD)のインストール

  export PATH=/usr/local/mysql5/bin:$PATH
  perl -MCPAN -e shell
  install DBD::mysql
  install DBI

ImageMagickのインストール(Portsインストール)

 cd /usr/ports/graphics/ImageMagick
  make configure
  make 
  make install


■メール(qmailの設定)

 参考
 http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html
 http://ns.f-bell.net/FreeBSD/qmail.html
 http://www.atmarkit.co.jp/flinux/rensai/qmail06/qmail06b.html
 http://www.y-min.or.jp/~nob/qmail/vd.html

  sendmailの停止
	/etc/rc.d/sendmail stop
	chmod 000 /etc/rc.d/sendmail
	chmod 000 /etc/rc.sendmail


 cd /usr/ports/mail/qmail
  make configure (Localtime Patchと起動シェルqmail.shの作成のオプションを選択)
  make
  make install


  CGIから呼び出すsendmailをリンク
 ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail


 起動スクリプト設定
  cp /var/qmail/boot/home /var/qmail/rc


 まずは、username@hogehoge.orgにきたメールを受け取れるようにする
 cd /var/qmail/configure/
 ./config-fast hogehoge.org


 /var/qmail/rc startで起動

 vi /etc/inetd.confで下記のコメントをはずす
	smtp    stream  tcp     nowait  qmaild  /var/qmail/bin/tcp-env  tcp-env /var/qmail/bin/qmail-smtpd

  /etc/rc.d/inetd restart

ここまでで、username@hogehoge.orgにきたメールが受信できるようになる。
受信後は、usernameのホームディレクトリのMailboxにメールの内容が格納される。


次にバーチャルドメインで複数ドメインqmailで扱う設定
具体的には、eeeee@hehehe.orgにきたメールを/home/username/Mailboxで受け取れるようにする

  cd /var/qmail/control
    vi rcpthosts
	hehehe.orgを追記

  vi virtualdomains
	hehehe.org:username

   /home/username/.qmail-defaultを作成し下記を記載
      &username@hogehoge.org


 qmail再起動
  /var/qmail/rc stop
  /var/qmail/rc start

これだけで、aaa@hehehe.org宛のメールも、bbb@hehehe.org宛のメールも全て、username@hogehoge.org宛のメールボックスに入るようになる。


これを応用して、@hehehe.org宛のメールを全てプログラムに渡して、プログラムで何かしらの処理をするようにも出来る。

vi /home/username/.qmail-default
     &username@hogehoge.org
     |perl /home/username/perl/hehehe_script.pl

こうすると、hehehe.org宛の全てのメールが、username@hogehoge.orgに転送され、かつ、hehehe_script.plにメールの内容が渡されるようになる。
メールでユーザ登録とか、そいうのにも使えるよ。