◇サーバー構築 〜メニュー〜

長くなったので、ファイルを分けました。

はじまり
tcpserverから起動するソフト

○sudoを設定する

これは必要であれば行って下さい。
インストールは portsから行いましょうか。

> cd /usr/ports/security/sudo
> make install

それからコマンドで設定です。

> /usr/local/bin/visudo

細かい設定が面倒な場合は、とりあえず rootの行をコピーして、対象ユーザーIDを書いてしまいましょう。

○Apache2のインストール

特に理由もなく 1.3.xを入れる必要は無いでしょう。
これからは 2.0.xをインストールしましょう。この辺をちゃんとチェックしましょう。
今(2003/08/16)の最新は httpd-2.0.47.tar.gzですので、これを使います。

> tar zxf httpd-2.0.47.tar.gz
> cd httpd-2.0.47
> ./configure --enable-so
> make
> make install

好みや行いたい事によって、様々なオプションが選択可能ですが、デフォルトにある機能をオフると思ったより不便になるでしょう。
また、/usr/local/apache2/conf/httpd.confファイルが環境定義なのですが、これを編集する為には多くの知識が必要です。
とりあえず、以下のコマンドで起動する事は可能です。

> /usr/local/apache2/bin/apachectl start

○namazuのインストール

テキスト検索用のツールです。
ここを見ると全てが書かれています。

インストール前の手順が大切です。

・gettextインストール

> gettext --help

これでバージョンが返って来なかった場合は、インストールが必要です。
portsからインストールします。

> cd /usr/ports/devel/gettext
> make install

……が、コケました。
こういう時に対処が行えるかどうかが、技術力のみせどころです。

configure: error: installation or configuration problem: C compiler cannot creat
e executables.
===> Script "configure" failed unexpectedly.
Please report the problem to ports@FreeBSD.org [maintainer] and attach
the "/usr/ports/devel/libtool/work/libtool-1.3.4/config.log" including
the output of the failure of your make command. Also, it might be a good
idea to provide an overview of all packages installed on your system
(e.g. an `ls /var/db/pkg`).
*** Error code 1

Stop in /usr/ports/devel/libtool.
*** Error code 1

Stop in /usr/ports/devel/gettext.

このように出力された事により、libtoolとか言うソフトが悪い事がわかります。
このツールのサイトはココなので、とりあえず libtool-1.4.3.tar.gzを取ってきます。
色々試行錯誤をしたところ、root権限で configureが出来ないと言う欠陥が見つかりました。
2002年10月に出して、2003年3月の今直されていないと言う姿勢に問題があると思います。

ユーザー権限で始めて下さい。

> tar zxf libtool-1.4.3.tar.gz
> cd libtool-1.4.3
> ./configure
> make
> su
> make install

それからもう一度 gettextのインストールを行います。

> cd /usr/ports/devel/gettext
> make clean
> make install

・nkfインストール

> nkf -V

これでバージョンが返ってこなかった場合は、インストールが必要です。
portsからインストールします。

> cd /usr/ports/japanese/nkf/
> make install

・nkf perlモジュールインストール

portsからインストールしても、perlモジュールまでは入りません。
ですが、ソースファイルは展開されています。

> cd /usr/ports/japanese/nkf/work/NKF
> perl Makefile.PL
> make
> make install

・KAKASIインストール

> kakasi -?

コマンドにて使い方が表示されないか、表示されたとしても -wオプションの説明が無い場合はインストールが必要です。
portsからインストールします。

> cd /usr/ports/japanese/kakasi
> make install

・KAKASI perlモジュールインストール

perlから KAKASIを高速に動作させるものと考えて下さい。
無くても動作します。
ココの関連からダウンロード可能です。
Text-Kakasi-1.05.tar.gzをインストールします。

> tar zxf Text-Kakasi-1.05.tar.gz
> cd Text-Kakasi-1.05
> perl Makefile.PL
> make
> make install

・namazuインストール

namazu-2.0.12.tar.gzをインストールしてみます。
> tar zxf namazu-2.0.12.tar.gz
> cd namazu-2.0.12
> cd File-MMagic
> perl Makefile.PL
> make
> make install
> cd..
> ./configure
> make
> make install

以上でようやく完了です。
ツールのパスが分からない場合がありますので、書いて起きます。
/usr/local/bin/namazu : namazu本体
/usr/local/bin/mknmz : インデックスを作成
/usr/local/libexec/namazu.cgi : Webからの検索の為のCGI

・cvsupの設定

最新ソースと同期を取ってみます。

> cvsup -v

としてバージョンが表示されば OKです。
表示されなければ /usr/ports/net/cvsupからインストールして下さい。

まずは、定義ファイルを設定する必要があります。
雛形があるので、コピーしましょう。

> cp /usr/share/examples/cvsup/stable-supfile . 
> vi stable-supfile

どこを修正するのかと言うと、良く分かんないです(ぉ)
少なくとも hostだけは変えなければいけません。

host=cvsup3.jp.FreeBSD.org

みたいな(?)
拒否ファイルも作成

> cp /usr/share/examples/cvsup/refuse .
> vi refuse

これもよく分からないのですが(汗)
refuseなので、ports/japaneseだけにコメントをつけておきます。

#ports/japanese

それから、cvsupコマンドを実行します。

> cvsup stable-supfile

ここで 100Mbpsの回線で 30分ぐらいかかります。
まぁ、相手サーバの混雑度もあるので、一概に言えませんが。

ダウンロードが完了すると、ビルドします。

> cd /usr/src
> make buildworld

で、正常そうならインストールします。

> make installworld

/standディレクトリを生成します。

> cd /usr/src/release/sysinstall
> make all install

デバイスの生成

> mkdir /var/tmp/root
> cd /usr/src/etc
> make DESTDIR=/var/tmp/root distrib-dirs distribution
> cp /var/tmp/root/dev/MAKEDEV* /dev
> sh MAKEDEV all

後はカーネル再構築を configから普通にして下さい。

portsファイルもアップデートしておきましょうか。

> cp /usr/share/examples/cvsup/ports-supfile .
> vi ports-supfile

どこを修正するのかと言うと、良く分かんないです(ぉ)
少なくとも hostだけは変えなければいけません。

host=cvsup3.jp.FreeBSD.org

それが終わったら、サーバへ接続します。

> cvsup ports-supfile

で、これだけだと portsファイルが置き換わっただけなので、各ソフトのディレクトリで make installとかしなければバイナリは変わりません。
こちらは一気にする方法は無さそうです(:_;)

・ProFTPのインストール

設定が簡単らしいと言うだけで、これに置き換えてみようと思います。
portsからインストールします。

> cd /usr/ports/ftp/proftpd
> make install

環境ファイルの設定を行います。
/usr/local/etc/proftpd.conf
の内容を変更します。

ServerNameにサーバードメインを設定
ServerTypeは inetdにして下さい。そうしなければ tcpserverから起動できません。

ユーザーを自分のルート以上に行かせたくない時は、
DefaultRoot ~
を追記する。例外ユーザーを作りたい時は、!ユーザーアカウントを追加する
DefaultRoot ~ !user1 !user2

TimesGMT off
を追記する事で、JSTになります。

tcpserverの設定を変更します。

> cd /service/ftpd
> vi run

#!/bin/sh
/usr/local/bin/tcpserver -RHv -l0 -c 3 -x ./ftp.cdb 0 ftp /usr/local/libexec/proftpd 2>&1
単純に oriftpdに変えるだけでおしまいです。
但し、killをしなければうまく切り替えが出来ない為、リブートした方が早いです。

FTP接続が遅い場合は、以下の設定を追記して下さい。
UseReverseDNS off
IdentLookups off

・OpenSSHのインストール

やっぱ必要でしょうね(^^;
portsからインストールします。

> cd /usr/ports/security/ssh2
> make install

ここで注意点なのですが、/usr/local/etc/rc.d/sshd.shは削除して下さい。
これから tcpserverに設定を行うので、これがあると再起同時に悲しい事に……

予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。

> pw useradd sshd2 -g nofiles -d /service/sshd2 -s /nonexistent
> cd /service
> mkdir .sshd2
> chmod +t .sshd2
> cd .sshd2
> mkdir log
> chown sshd2 log

次に、sshd2デーモン起動スクリプトを記述

#!/bin/sh
/usr/local/bin/tcpserver -RHv -l0 -c 3  0 ssh /usr/local/sbin/sshd2 -i 2>&1

これを /service/.sshd2/runと言うファイル名で保存する。

> cd /service/.sshd2
> chmod 755 run

次に、ログ出力デーモン起動スクリプトを記述

#!/bin/sh
exec /usr/local/bin/setuidgid sshd2 multilog t s5000000 n10 ./main

これを /service/.sshd2/log/runと言うファイル名で保存する

> cd /service/.sshd2/log
> chmod 755 run

次に、sshd2を許可する IPを生成する。

IPアドレス:allow
IPアドレス:allow
IPアドレス:allow
:deny

このように IPアドレスを列挙した sshd2.allowファイル(ファイル名称は何でも良い)を作成する。
それを tcprulesコマンドにて DB化する。

> cd /service/.sshd2
> /usr/local/bin/tcprules sshd2.cdb sshd2.tmp < sshd2.allow

さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.sshd2ディレクトリを削除してやり直した方が早いです。

> cd /service
> mv .sshd2 sshd2

さて、今回インストールしたのは普通の SSHとは違い、SSH2です。
これには圧縮機能が追加されています。
> ssh2 -C 「ホスト名」
と -Cオプションを付ける事で有効状態にする事が可能です。
もちろん、圧縮機能を持たない Windowsソフトも今まで通り利用可能です。

○MySQLのインストール

この辺からダウンロードして来ましょう。

> tar zxf mysql-3.23.56.tar.gz
> cd mysql-3.23.56

configureの際に文字コードを指定しなければなりませんので、注意して下さい。
--with-charset=ujisを指定すると EUC-jpがデフォルトになります。
後から起動時に変更可能なように --with-extra-charsets=complexも追記しておきましょう。

> ./configure --with-extra-charsets=complex --with-charset=ujis
> make
> make install
> scripts/mysql_install_db
> pw groupadd mysql
> pw useradd mysql -g mysql -d /usr/local/mysql/var -s /nonexistent
> chown -R mysql /usr/local/var/mysql

起動コマンドは以下の通りです。

> /usr/local/bin/safe_mysqld --user=mysql &

○PHP4.3インストール

実は、うちのサーバーへインストールしたのは Apache2でした。
Apache2は、PHP4.3以降で無ければサポートされていないらしい(泣)
この辺からダウンロードして来ましょう。

> tar zxf php-4.3.1.tar.gz
> cd php-4.3.1

configureの際に環境に合わせる。

・DBなしの場合
> ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-versioning --enable-mbstring --enable-mbstr-enc-trans

・PostgreSQLを使う場合
> ./configure --with-pgsql --with-apxs2=/usr/local/apache2/bin/apxs --enable-versioning --enable-mbstring --enable-mbstr-enc-trans

・MySQLを使う場合
> ./configure --with-mysql --with-apxs2=/usr/local/apache2/bin/apxs --enable-versioning --enable-mbstring --enable-mbstr-enc-trans

・PostgreSQLとMySQLを両方使う場合
> ./configure --with-pgsql --with-mysql --with-apxs2=/usr/local/apache2/bin/apxs --enable-versioning --enable-mbstring --enable-mbstr-enc-trans

configureが完了すると、メイクします。

> make
> make install

/usr/local/apsche2/conf/httpd.conに以下のコードを追記する。
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php

最後に Apache2を再起動して下さい。
以下のスクリプトを実行できれば、成功です。

<?
phpinfo()
?>





<以降工事中>



トップメニュー読み物