configure - みる会図書館


検索対象: BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー
13件見つかりました。

1. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

基本的な流れ だ。ただし、 con ⅱ gure 時にはいろいろ て解説する。 まず tarball を展開し、 apache_l. 3.12 なオプションがあるため、なにをどう 最もシンプルな con ⅱ gure コマンドの ディレクトリに移る。 すればいいのか戸惑う場合もあるので 実行方法は 基本的には、このディレクトリにあ はないかと思う。そういう方はこの記 る c 。 n fi g u re コマンドを起動して 事を参考にしていただきたい。こ $ . /configure は最も簡潔な形で c 。 n ⅱ gure コマンドを Makef ⅱ e の生成などの基本的な処理を 行ったあと、 make を実行するだけでよ 実行しインストールするまでの流れを だけだ。画面 2 のようなメッセージ出 い。必要なものが作られるので後は 紹介し、その後で c 。 n 行 gure コマンドで 力され、 make に必要なものが整えられ make install すればインストールは完了 のさまざまなカスタマイズ方法に る。 つし、 こでおもむろに make を実行する と、画面 3 のようにあっさりと make が Configuring for Apache, Version 1 . 3.12 + Warning : Configuring Apache with default settings . 終了するので、あとは make install すれ + This is probably not what you really want . ばよい ( 画面 4 ) 。 + P1ease read the README. configure and INSTALL files + first or at least run . /configure ——help ー fo て 最後に /usr/local/apache/conf/httpd. 十 a compact summary Of available options . c 。 nf を適切に編集すれば ( 後で解説 ) 、 + using installation path layout : Apache (config. layout) すぐに Apache を起動することができる Creating Makefi1e Creating Configuration. apacl in src のだが、まずは con 行 gure についてもう Creating Makefi1e in src 少し詳しくみていこう。最近では非常 + configured for FreeBSD 4.1 platform に多くのソフトウェアが GNU autoconf 十 setting C compiler tO gcc 十 setting C pre—processor tO gcc —E を利用した c 。 n ⅱ gure コマンドによって + checking for system header files make の前処理を行っているため、 + adding selected modules configure コマンドに馴染んでいる方も 十 checking sizeof various data types sanity check on compiler and + doing options 多いのではないだろうか ? Apache の 1 Ⅱ src/support Creating Makefi1e configure コマンドは GNU autoconf を利 In src/os,/unix Creating Makefi1e 1 Ⅱ src/ap Creating Makefi1e 用しているわけではないのだが、使い src/main Creating Makefi1e 方はよく似ているので違和感は感じな 1 Ⅱ src/lib/expat—lite Creating Makefi1e いと思う。 1 Ⅱ src/modules/standard Creating Makefi1e configu 「 e が出力するメッセージ 画面 2 $ make = > src/os/unix . / .. /include gCC —C OS . C gCC —C os—inline . C . /.. /lib/expat—lite —funsigned—char —DUSE—EXPAT —DNO_DL_NEEDED . /.. /lib/expat—lite —DNO—DL—NEEDED ¯funsigned—char —DUSE_EXPAT . / .. /include %@TARGET@%htt pd%g' -e 's%@CC@%gcc%g' sed く apxs ・ pl >apxs . /apaci 、 %3 —e 's%@CFLAGS_SHLIB@%%g ー lite —DNO_DL_NEEDED 's%@LIBS_SHLIB@%%g ー chmod a + x apxs src/support -e 's%@CFLAGS@% —funsigned—char —DUSE_EXPAT ーエ .. /lib/expat— -e 's%@LD-SHLIB@%%g' —e ー s%@LDFLAGS_MOD_SHL 工 B@%%g ー くく - $ 画面 3 make の実行 タ 8 20 0 N B 5 magaz-ln

2. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

と起動した場合には httpd は -DSSL とい う引数付きで起動され、 SSL 機能がオ ンになることを期待しているのだ。そ して、実際のオン / オフは httpd.conf 中 く /IfDefine> SSL の設定 く IfDefine SSL> で 集 00 で M ッ 0 斷舅了を霧らツ と書くことにより、実現している ( 手 $ cd .. / apache ー 1.3.12 $ SSL_BASE=/usr . /configure ——enable—module=ssl Configuring for Apache , Version 1 . 3.12 + using installation path layout : Apache (config. layout) Creating Makefi1e Creating Configuration. apaci in src Creating Makefi1e in src + configured for FreeBSD 4.1 platform + setting C compiler tO gcc + setting C pre—processor tO gcc —E + checking for system header files + adding selected modules 0 rewrite—module uses ConfigStart/End enabling DBM support for mod—rewrite —enable—module=rewrite —enable—module=speling 0 ssl_module uses + SSL + SSL + SSL + SSL + SSL + SSL + SSL + SSL + SSL + SSL + SSL interface : interface interface illterface interface interface interface ConfigStart/End mod—ss1/2.6.5 build type: OBJ compatibility : enabled experimental code : disabled conservative code : disabled vendor extensions : disabled plugin : Vendor DBM (libc) library path : /usr library version: OpenSSL 0 . 9.4 09 Aug 1999 library type : installed package (stand¯alone) library plugin mode : none + enabling Extended API (EAPI) sizeof VariOUS data types + checking + dOing Creating Creating Creating Creating Creating Creating Creating sanity check on compiler and options Makefi1e Makefi1e Makefi1e Makefi1e Makefi1e Makefi1e Makefi1e src/support src/os/unix 1 Ⅱ src/ap src/main 111 src/lib/expat—lite src/modules/standard 111 src/modules/ssl 1 Ⅱ 1 Ⅱ 画面 8 Apache の configure 元の httpd.c 。 nf を見て確認していただき たい ) 。筆者はこれと lnclude ディレク テイプを併用して、 httpd.conf には く IfDefine SSL> lnclude conf/ssl . conf く /IfDefine> と書き、 SSL に関する設定は ssl.conf と いうファイルに追い出すようにしてい る。 lnclude ディレクテイプは CPP にお ける # include と同じように別のファイル を取り込むためのものだが、ファイル 名が相対パスで書かれているときには ServerRoot からの相対パスになる。 さて、本題の SSL の設定に移ろう。 SSL 化した HTTP は通常セキュア HTTP とか HTTPS などと呼ばれる。実際、 URL の scheme の部分が通常の HTTP の 場合は http なのに対して SSL 化した HTTP の場合は https://www.openbsd.org/ といったような具合に https となる。さ て、 HTTPS と HTTP とはポート番号で わけられる。 HTTP の標準が 80 なのに 対して HTTPS は 443 なのだ。そして、 BSD magazine 705 2000 No. 5

3. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

$ . /configure ——show—layout ——with—1ayout=BSDI Configuring for Apache, Version 1 . 3.12 + using installation path layout : BSDI (config. layout) lnstallation paths : prefix: exec_prefix: bindir : sbindir : libexecdir : mandi r : sysconfdir : datadir : lconsdir: htdocsdir: cgidir: includedir : localstatedir: ime d ir : logfiledir : proxycachedir : Compi1ation paths : HTTPD_RO OT : SHARED_CORE_DIR: DEFAULT_P 工 DL 0 G : DEFAULT_SCOREBOARD : DEFAULT_LOCKF 工 LE : DEFAULT_XFERLOG : DEFAULT_ERRORLOG : RESOURCE_CONFIG_FILE : ACCESS_CONFIG_FILE : SERVER_CONFIG_FILE : TYPES_CONFIG_FILE : /var/www /usr/contrib /usr/contrib/bin /usr/contrib/bin /usr/contrib/libexec/apache /usr/contrib/man /var/www/conf /var/www /var/www/icons /var/www/htdocs /var/www/cgi-bin /usr/contrib/include/apache /var /var/run /var/log/httpd /var/proxy /var/www /usr/contrib/libexec/apache /var/run/httpd.pid /var/run/httpd.scoreboard /var/run/httpd.lock /var/log/httpd/access-log /var/log/httpd/error-log conf/mime. types conf/httpd.conf conf/access . C011f conf/srm. conf 画面 5 BS 団レイアウトの出力 マリスト 2 configure -- help のモジュールに関する部分 —enabIe—moduIe=NAME enable a particular Modu1e named ー NAMEt —disabIe—moduIe=NAME disable a particular Modu1e named ー NAMEi [access=yes [asis=yes [auth—db=no [autoindex=yes [digest=no [example=no [ imap=ye s [log-agent=no [mime=ye S [negotiation=yes [setenvif=yes [status=yes [usertrack=no actions=yes auth=yes aut h_ dbm=no cern_met a=no dir=yes expxres=no inc lude =ye s log—config=yes _mag 1 C =no proxy=no S 0 = no unique_id=no vhost_alias=no alias=yes auth_ anon=no auth—digest=no cgi=yes env=yes headers=no inf 0 = no log_referer=no mmap—static=no rewrite=no speling=no userdir=yes $ . /configure ——with—layout= another. layout : MYLAYOUT のように、くファイル名 > : くレイアウト 名 > で指定することになる。 モジュール con ⅱ gure でカスタマイズするもう つの大きな要素はモジュールの追加や 削除だ。 Apache の特徴として、その構 造が徹底的にモジュール化されている ことが挙げられる。つまり、小さなコ ア部分に、さまざまな役割を担ったモ ジュールを組み込むことによって HTTP サーバーができあがるのだ。 Apache の tarba Ⅱにはあらかじめ基本的なモジュ ールが付属しており、 configure 時に指 定しなくてもデフォルトで組み込まれ るものあるし、逆のものもある。どの ようなモジュールがあるのか、また、 どれがデフォルトで組み込まれるのか、 といったことは付属の INSTALL ファイ ルや configure コマンドに --help オプショ で組み込まれるものを組み込まないよ で指定すればよい。逆に、デフォルト のように、 --enable-module オプション rewrite —enable—module=speling —enable—module= $ . /configure い場合には、 デフォルトのもの以外にも組み込みた ルトで組み込まれるようになっている。 要となるモジュールはだいたいデフォ 普通に web サーバーを運用する上で必 Ⅱの中がデフォルトの設定であり、 いる。 に関する部分はリスト 2 のようになって れる。「 configure --help 」のモジュール ンを付けて実行することによって得ら うにするには $ . /configure —disable—module=mime 70 B magazin 20 0 N 5

4. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

ジを選ばなければ入らないが・・・・・・ ) の であまり気にしなくてもいいだろう。 ldconfig - r の出力などを見て libssl.so. x があることを確認しておこう。もし OpenSSL が入っていなければ、 http: //www.openssl.org/からソースを取って きてインストールしておく。 Apache の tarball と mod—ssl の tarball を 同じディレクトリで展開し、ますは mod-ssl のディレクトリに移る。 $ tar zxf apache—l . 3.12. tar ・ gz $ tar zxf mod ー ssl ー 2.6.5 ー 1 . 3.12. tar. gz $ cd mod ー ssl ー 2 . 6.5 ー 1 . 3 .12 こで、まずは mod_ssl の configure を画面 7 のように行う。 その後どのようにすればいいのかが 出力されるのでそれに従おう。 Apache のディレクトリへ移り、今度は Apache の configure を行うのだがそのときに SSL ー BASE という変数を設定しておく。 FreeBSD 4. I-RELEASE 以降のようにシ ステム標準のディレクトリ /usr/lib や /usr/include に OpenSSL がインストール されている場合には SSL BASE は /usr を 指定し、 /usr/local 以下にインストール されている場合には / usr 加 cal を指定す る ( 画面 8 ) 。 こまでできれば make 、 make install して終わりだ。 こで触れておきたい のは、この install 方法は Apache と別に 配られているモジュールを組み込む場 合の一般的な方法であるということだ。 つまり、 Apache のソースとモジュール のソースを並べて展開しておき、まず モジュール側で必要な設定を行った後、 最後に Apache を make する、という手 順だ。もし mod_ssl に加えて mod_perl を組み込むときには mo d_ s s I 用の configure が終わった後に mod-perl 用の 作業を行うようにする。それが終われ ば Apache の configure と make に入るの だ。このあたりは結構ややこしいと思 うかもしれないが、慣れればそれほど でもないので頑張っていただきたいと ころだ。 $ . /configure ——with—apache= ・ /apache—l . 3.12 Configuring m0d—ssl/2.6.5 for Apache/l . 3.12 ・ / apache ー 1.3.12 (Version 1.3.12 ) + Apache location: . /etc/patch/patch ( 10Ca1 ) + Auxi1iary patch t001 : + App1ying packages tO Apache source tree : source extension and patches successfully applied. 0 Addons 0 SSL Modu1e Documentation 0 SSL Configuration Additions 0 SSL Support 0 SSL Modu1e Source Distribution Documents 0 Extended API (EAPI) Done : 0 syntax) : —enable—module=ssl NOW proceed with the following commands (Bourne—She11 $ make install make certificate $ make $ SSL—BASE=/path/t0/openss1 . /configure cd .. / apache ー 1 . 3.12 設定 mod ssl を組み込んだ Apache を新た にインストールした場合、設定ファイ ルには SSL 用の設定項目も記述されて いるのでそれを適宜書き換えるのがい いだろう。すでにインストールしてあ る Apache のディレクトリツリーに対し て mod ー ssl を組み込んだ Apache をイン ストールした場合、設定ファイルなど は上書きされないため、 SSL 用の設定 を書き加えてやる必要がある。いろい ろな設定があり、なかなか大変なのだ が、取り敢えす動かす、というのであ ればそれほどでもない。 SSL 用の設定を解説する前に、一つ Apache でよく用いられるテクニックを 紹介しておこう。 httpd.conf では く IfDe ⅱ ne > というディレクテイプを用い ることができるのだが、これは く IfDefine XXX> $ /any/path/apachectl start はつまり、 数を理解するようになるのだが、これ 叩 achectl プログラムは startssl という引 る。 mod_ssl をインストールすると は httpd の -D オプションを用いるのであ ときに定義することになる。その方法 だ。そして xxx は Apache を起動する ・・・」の部分を処理するという意味 のように xxx が定義されていれば「・・ く /IfDefine> $ /any/path/apachectl startssl になり、 う引数が付かす SSL 機能はオフのまま と起動した場合には httpd に一 DSSL とい 70 B 画面 7 mod_ssl の configure magazine 20 0 N 5

5. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

特集 2 UG ⑩作り方教えます # tar xvfz php-3.0.15-i18n—ja. tar # tar xvfz apache—l . 3.12. tar ・ gz # cd apache-l . 3.12 . /configure # cd .. / php ー 3.0.15 ー i18 Ⅱー ja . /configure ——with—apache= # make # make install # cd .. / apache ー 1.3.12 . /configure ——activate¯modu1e=src/modu1es/php3/1ibphp3. a —enable—module=rewrite # make # make inst a11 # cd /usr/local/apache/conf # vi httpd. conf . /bin/apachectl start ・ /apache—l . 3.12 -with-pgsql —enab1e—i18n —enable—mbregex —enable—track—vars 画面 3 php を Apache に link する v リスト 1 httpd.conf の変更点 DirectoryIndex index. html index ・ php3 ( 中略 ) AddType app1ication/x—httpd—php3 . php3 AddType app1ication/x¯httpd—php3—source ・ phps 楽ちん ) であるらしい。が、残念なが データベースユーザーの作成 イベント申し込みシステムの実際 ら OpenBSD 上では php を Apache の DSO まずは PostgreSQL ユーザーを作成し モジュールとして bu ⅱ d できないので、 なくてはならない。通常はデフォルト static に link することになる注 6 。この手 これで必要なツール類のインストー の superuser である pgsql ユーザーになれ 順を画面 3 に記す。 ルが終了したので、「イベント申し込み ば良いのだが、 packages からインスト こで php を有効にするために システム」の実際のところを紹介して ールした場合は root になって pgwr 叩を かぶせて createuser を実行する ( 画面 /usr/local/ 叩 ache/conf/httpd.conf にリス ーでは、 K * BUG ではじめて し、っ。 ト 1 の変更を加える。 php + PostgreSQL システムを使用した第 4 ) 。 こでは、 apache が実行される これで httpd を再起動すれば、 php が 二回勉強会の際のシステムをお見せす user と同一のユーザー ( 通常は nobody) 有効となる。 を作成すれば良い。権限は最低限にし る。 $ su # pgwrap createuser Enter name Of user tO add ー > nobody Enter user ー s postgres ID or RETURN tO use unix user ID: 32767 ls user "nobody" allowed t0 create databases (y/n) Ⅱ ls user "nobody" a superuser? (y/n) Ⅱ createuser : nobody was successfully added Sha11 工 create a database for "nobody" (y/n) n don forget tO create a database fO て nobody 画面 4 pgwrap をかぶせて createuser を実行する マリスト 2 group を作成する SQL 文 insert intO pg—group (groname , grosysid , grolist) values (' www 髫 67 , '{id—of—nobody , id—of—you} つ ; 注 6 筆者の精進が足りないせいなのかもしれないが、 php ご本家の ML アーカイプを検索しても、まだ誰も成功していないらしい。もしも DSO で bu ⅱ d に成功さ れた方は筆者にもやり方を教えてほしい。 BSD magazine 737 2000 No. 5

6. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

$ . /configure creating cache . /config. cache checking whether make sets ${MAKE}. checking for gcc ・ gcc creating popper/Makefi1e creating mmangle/Makefi1e creating config ・ h $ make cd ・ /popper & & make a11 ーエ .. /mmangle gcc ¯c ¯I . pop—dele ・ c ー 0 pop—dele . 0 —I .. /common —g ー 02 —freg—struct—return —DHAVE—CONFIG—H —DFREEBSD —DUNIX ar —r libcommon. a f10Ck.0 maillock ・ 0 genpath. 0 logit ・ 0 snprintf . 0 md5.0 pop—auth ・ 0 pop—pope ・ 0 pop—extend. 0 scram . 0 hmac . 0 base64.0 pop—util ・ 0 get—sub—opt ・ 0 . msg—ptr ・ 0 ー 0 popper pop-user ・ 0 pop-xtnd. 0 pop-xmit ・ 0 popper ・ 0 pop-bull . 0 xtnd-xlst . 0 pop-uidl. 0 mktemp ・ 0 pop—rpop ・ 0 pop-apop ・ 0 pop ー 10g ・ 0 pop—lower. 0 pop—msg ・ 0 pop-parse ・ 0 pop-pass ・ 0 pop-quit ・ 0 pop-rset ・ 0 pop-send ・ 0 pop-stat . 0 pop—updt . 0 gcc pop-dele . 0 pop-dropcopy ・ 0 pop-get-command. 0 pop-get-subcommand. 0 pop-init ・ 0 pop-last . 0 pop—list . 0 —lcrypt .. /mmangle/libmangle. a .. /common/libcommon. a 画面 1 configure と make の実行 # install —c —m 555 popper/popper /usr/local/libexec 画面 2 マリスト 1 /etc/inetd. conf にエントリを加える pop3 nowait root stream tCP くつかのパーツから構成されるのだが、 ここでは POP/IMAP および MTA につい て解説する ( 必要に応じてローカルメ ーラについての解説も加える ) 。まず POP/IMAP を紹介し、その後 MTA に移 ることにしよう。 /usr/local/libexec/popper install の実行 POPPer -s . うに、現在では POP (3) 、ふ主流である。これ べる IMAP に比べればかな PO めの もあ れ 70 Ver 前。 まった プロトコ B magazin 非常に簡単に たとき以降にス ー ) 取得するた たオその単純さ 厂的に使わ で 20 0 N 5 ほとんどの POP3 サーバーは、サーバ ーソフトウェアをインストールすれば それでだいたい終わりだ。サーバーソ フトウェアにはいくつかあるのだが、 Qualcomm ( Mac OS/Windows 用の MUA である Eudora を開発 / 販売してい るべンダー ) の qp 叩 per が有名だろう ( この後で述べる IMAP と併用する場合 にはそれぞれの IMAP サーバーに付属の POP3 サーバーを用いたほうがいいだろ う ) 。 qpopper は ports/packages や pkgsrc な どで簡単にインスールできるはずだが、 手でインストールしてみるのもいいだ ろう ( どっちも簡単だ ) 。 qpopper の最 新版は 3.0.2 であり、 ftp://ftp.qualcomm. com/eudora/servers/unix/popper/から取 ってくることができる。 qp 叩 per3.0.2. tar. gz を展開したら、叩叩 per3.2 ディレ クトリに移る。 $ tar zxf qpopper3.0.2. tar. gz $ cd qpopper3.0.2 ここで、 con ⅱ gure スクリプトにより 環境を整えたら make を実行して終わり だ。 configure スクリプトを実行する際 のオプションはいくつかあるのだが ( -- help オプションを付けて con ⅱ gure を実 行してみればわかる ) 、最もシンプルな 形の運用では特になにも指定しなくて いいだろう ( 画面 1 ) 。 特に insta Ⅱというターゲットはないた め、インストールは手で行う。 popper ディレクトリに popper という名前のバ イナリファイルができているので、 れを /usr/local/libexec などにコピーし、 実行権限を付けるだけでよい。 さて、叩叩 per をはじめとする多くの POP3 サーバーは inetd 経由で起動され るようになっている。そこで、 /etc/ inetd. conf にリスト 1 のようなエントリ

7. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

$ sudO make install = > [mktree : Creating Apache installation tree] . /src/helpers/mkdir. sh /usr/local/apache/bin mkdir /usr/local/apache mkdir /usr/local/apache/bin . /src/helpers/mkdir. sh /usr/local/apache/bin http ://www.apache.org/ . /src/helpers/install. sh —c /usr/local/apache/conf/magic [config] —m 644 . /conf/magic You now have successfully built and installed the Apache 1 . 3 HTTP server. TO verify that Apache actually works correctly you now should first check the (initially created or preserved) configuration files /usr/local/apache/conf/httpd. conf and then you should be able tO immediately fire up /usr/local/apache/bin/apachectl start Apache the first time by running : Thanks for using Apache . マリスト 1 BSD / OS 用のレイアウト The Apache Group 画面 4 make install の実行 # BSD/OS layout く Layout BSDI> prefix: exec_prefix: bindir: sbindir: libexecdir : mandir : sysconfdir : datadir : iconsdir : htdocsdir : cgidir: includedir : localstatedir: runtimedir : logfiledir : proxycachedir : く /Layout> /var /www /usr/contrib $exec—prefix/bin $exec-prefix/bin $exec—prefix/libexec/apache $exec—prefix/man $prefix/conf $prefix $datadir/icons $datadir/htdocs $datadir/cgi—bin $exec—prefix/include/apache /var $localstatedir/run $localstatedir/log/httpd $localstatedir/proxy 寺集 皀 00 で M ッを作るプ インストールディレクトリのカスタマイズ 最もよく利用されるオプションは一 pre ⅱ x ではないだろうか ? これはイン ストールディレクトリを設定するため のもので、 Apache では /usr/local/apache がデフォルトになっている。これを変 更したい場合は $ . /conf igure --prefix=/any/path/ to/apache とすればよいのだが、 Apache ではレイ アウトファイルというものを用いてさ らに柔軟な設定が可能になっている。 デフォルトのレイアウトファイルは configure コマンドと同じディレクトリ にある config. layout というファイルだ が、そこにはいくつかのレイアウトパ ターンが記述されているので見ていた だきたい。たとえば、このファイルの 最後の部分には BSD / OS 用のレイアウ トがリスト 1 のように定義されており、 con ⅱ gure 時にこのレイアウトを用いた いときには $ . /configure ——with—1ayout=BSDI のようにすればいいようになっている。 また、便利なことに --show-layout とい うオプションもあり、このオプション を付けるとどういうレイアウトでイン ストールされるのかを表示してくれる ので独自のレイアウトを考えたり、あ らかじめ確認したいときなどには重宝 する。上の BSDI レイアウトの場合を見 てみると、画面 5 のように出力される ので確認してみていただきたい。 さて、 config. layout には他のものを真 似て独自のレイアウトを定義すること もできるし、独自のレイアウトを別の 2000 No. 5 BSD magazine ファイルにした場合には、 ファイルで定義することもできる。別

8. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

集 でう が可能であるが、 ppp の nat 機能では、 もあるように、 ppp に対して NAT 機能 6000 番に変更してローカルネットワー 一組のホスト間の転送しかできない。 を追加 / 拡張された方である。なぜ、 クに送り出している。 HostA では 6000 ポートを使ってコネクションを張って RealAudio などを扱うことができないサ より多くのサービスを natd で扱うために ービスが存在するのかは、佐藤氏の きたことから、 HostA ではディスプレイ 番号 0 の x サーバーに HostB の x クライ こまでの説明でまったく触れてい 「 iij - ppp を NAT 対応にする技術情報と アントを張り付けることになる。 詳細」のページ なかったが、実は natd によって、ネッ もし、別のホスト Hostc ()P アドレ トワークを介したすべてのサービスを http : //configure. sh/FreeBSD/NAT/ ス : 192.168.0.3 ) に対しても同様な設 中継できるわけではない ( これは他の nat2. html 定をしたければ、 /etc/natd. conf に NAT を実現する方法でも同様である ) 。 一部の特殊な通信形態を持っサービ を参照すると良いだろう。これを読む ス、たとえば、 RealAudio の通信形態 と、 ppp の NAT 機能の拡張に苦労され redirect-port tcp 192.168.0.3 : 6000 6011 などは現状の natd では扱うことができ ているのがわかる。このときの経験を を追加し、 natd を再起動する。そして 兀に、 libalias の NAT 機能の拡張を試み ない。 そこで、佐藤淳一氏は、 natd ( 実際 外部のホスト上でのディスプレイ番号 られていて、その第一段が、この Real は libalias というライプラリ ) を ReaI は 11 を使うことになる。 system の対応なのである。ちなみに この方法は、 ssh を使う方法と比べ、 system (ReaIAudio 、 RealVideo の rtsp 、 佐藤氏によって ppp で利用可能になっ pna の UDP 転送 ) 対応にするためのパ 転送先のホストを増やしたり変更する ていたサービスは、 CU-SeeMe 、 ReaI たびに、 H 。 stGW の設定を変更する必 ッチを作成し、それを次の URL で公開 Audio 、 VDO Live Video 、 DiabIo 、 要があることが欠点である。また、当 QuickTime4 であり、今後は、これらの されている。 サービスが natd でも順次利用可能にな 然であるが、この方法では、 HostA か http : //configure. sh/FreeBSD/ ることであろう。なお、佐藤氏の NAT ら H 。 stB の経路がすべて信頼できる extend—libalias—j . html ( 盗聴されていない ) という保証のある 機能は、 4. O-RELEASE 以降では ppp へ の改造は行われず、ⅱ ba ⅱ as への対応の 場合に使うべきである。 佐藤淳一氏と言えば、「ダイアルアッ ちなみに、 IPFiIter でも同様な設定 みにするそうである。 プサーバーの構築」の節に FreeBSD の旧 F ⅱ te 「による NAT の実現方法 FreeBSD には、 ipfw と natd を組み合わせた方式以外に カーネルの再構築 「ダイアルアップサーバーの構築 NetBS D 編」 ( 以後、 旧 F ⅱ te 「を利用可能に 「 NetBSD 編」と略すことにする ) で紹介された旧 FiIter も標 ンフィグファイルに加え 準でインストールされている。もちろん、これによって、ゲ 構 natd のところで kernel の ートウェイに NAT 機能を持たせることも可能である。また、 らを参照してもらいたい。 旧 F ⅱ ter は多くの OS に移植されているので、 FreeBSD でもこ 再構築すること以外 ( れを利用することがあるだろう。そこで、ここでは旧 Filter を ール ipl.ko を 用いた NAT 機能の実現方法を簡潔に示す ( 詳しくは NetBSD 編を参照 ) 。なお、ここで示す実例は、「 FreeBSD の ipfw と # kldload modules/ip natd による NAT の実現方法」の図 1 の環境を想定し、また、 その設定により「 NetBSD 編」と同じように基本的な機能の としてロードすることで み実現している。 ーめに、リスト 1 のエントリをコ ーネルを再構築する。 ipfw と 、を簡単に示したのでそち こめのローダブルモジュ 00 ハになる。 リ イ 7 BSD magazine 2000 NO. 5

9. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

寺集 でう 皀を Web サーバーを作る イメージソース花井浩之 /Hiroyuki an hanai@imgsrc. CO. jp ノの な彦気れ 1 マイサーバーを作る、ということに ばわかると思うが、もともとの web サ HTTP サーバーをベースにしていたのだ なるとやはり web サーバーははすせな が、現在では完全にオリジナルなコー ーバーである Apache server 以外にもた ドのみからなるソフトウェアとして、 くさんのプロジェクトが生まれている。 いところだ。 Web ってなんやねん ! ? という人も今さらいないとは思うが、 精力的に開発が進められており、世界 こでは安定バージョンの最 さて、 web とは簡単に言ってしまえばネット 中で最も利用されている web サーバー 新版である Apache 1.3.12 についてイン ワーク上に分散した情報を hyperlink と ソフトウェアとなっている。現在は安 ストール方法などを解説するが、その 定バージョン ( 1.3. x ) と最新機能を備 いう手段で結び付けたもの、といえる ソースコードが入った tarball である のではないかと思う。そこで情報がや えたバージョン ( 2. x ) が同時に開発さ apache ー 1.3.12. tar. gz は上記のサイトにあ れており、前者の最新版は 1.3.12 、後 るので、あらかじめ手元に持ってきて り取りされる際に用いられるプロトコ おこう。 者はいくつかの夜バージョンが出たと ルには、 HTTP 、 FTP 、 Gopher といった いう段階である。今年の終わり頃には ものがあり、つまり p サーバーも web メジャーバージョンアップが予定され サーバーの一つではあるのだ。とはい ている ( 本当は今年の早いうちの予定 え、 Web サーバーといえば HTTP サーバ 各 BSD には pkgsrc や ports といった仕 ーのことを指すのがまあ普通だ。とい ( 噂 ? ) であったのだが遅れている ) 、 うことで、このセクションでは Web サ 組みが用意されており簡単にソフトウ といったところである。 ーバーソフトウェアの定番 Apache を取 当初はボランティアが集まったグル ェアをインストールすることができる のだが、 Apache の場合は自分でマニュ り上げ、インストール方法から立ち上 ープとして始まった Apache プロジェク トだが、現在ではしつかりとした体制 アルインストールをするのも非常に簡 げまでの基本的な設定方法について解 が整い、 Apache Software Foundation 単である。 説する。 こでは pkgsrc/ports などは (ASF) として Apache をさらに良いソ 使わないことにする。また、動作確認 フトウェアとするべく多くの人が参加 は FreeBSD 4. ト stable の上で行ったが、 している。 ASF の web サイト (http: NetBSD や OpenBSD でも特に問題にな //www.apache.org/) を見ていただけれ ることはないかと思う。 Apa e イ、 pac e とは Apache とはなにか今さら説明するこ ともないとは思うが、簡単に紹介して おこう。 web が広まり始めた頃、 HTTP サー $ tar zxf apache—l . 3.12. tar ・ gz $ cd apache—l . 3.12 バーとしては CERN のものと NCSA のも $ ls のがよく使われていた。読者の方もこ ABOUT_APACHE 存知のように web はどんどんとものす Announc ement INSTALL ごいスピードで広まっていったにも関 KEYS わらす、両者ともに開発が滞りがちに LICENSE なりほとんど止まりかけていたため、 Makefi1e . tmpl 有志が集まって Apache プロジェクトが スタートしたのだ。当初は NCSA の config ・ layout configure* htdocs/ IC011S/ logs/ README README . NT README. c onf i gure WARNING—NT . TXT cgi—bin/ conf/ tarb 訓を展開し、 apache ー 1.3.12 ディレクトリに移る 画面 1 97 BSD magazine 2000 No. 5

10. BSD magazine No.5 BSDでMy Serverを作ろう! ; Mr.McKusick特別インタビュー

DHCP サーバを作る イメージソース花井浩•Hiroyuk an hanai@imgsrc. CO. jp をプロードキャストする。これを受け ports/packages や pkgsrc を用いてもよい DHCP とは、 Dynamic Host Configu し、手でインストールするのも簡単だ。 取った DHCP サーバーは DHCPOFFER ration protocol のことであり、 RFC2131 というメッセージをクライアントに返 tarball を展開したら dhcp-2.0P13 ディレ で定義されている。この名前から想像 す。さらに、 DHCPOFFER を受け取っ クトリに移り、 configure 、 make 、 make が付くと思うが、 IP アドレスやデフォ install で終わりだ。 たクライアントが DHCPREQUES T をサ ルトルータ、ネームサーバーといった、 ただ、手でインストールした場合は ーバーへ返し、最後にサーバーが ホストをネットワークに接続するため DHCPACK というメッセージとともに 実行ノヾイナリが /usr/sbin に置かれ、設 の情報を動的に割り当てようという仕 定ファイルなどは / etc にあると仮定され 各種設定パラメータをクライアントに 組みである。なんらかのサーバーにな るようになるため、それが嫌な場合は るホストの場合、 IP アドレスが固定さ 送って一段落、といった具合だ。実際 の手続きではもう少し繁雑な場合や簡 MakefiIe. conf や includes/dhcpd. h などの れていなければいろいろと不便なこと ファイルを編集して自分の好みのディ 単な場合があるが基本はこういった形 が起こるのだが、単なるクライアント レクトリ構成になるようにしよう。 ホストであれば IP アドレスがしよっち である。 ゅう変わってもそれほど問題はないだ ろう。むしろ、いろいろなネットワー クに接続する必要のあるラップトップ サーバーの設定は dhcpd. conf という DHCP サーバーは ISC (lnternet などは別のネットワークに繋ぐたびに ファイルで行う。このファイルは software consortium) によって開発さ 手で設定を変更するのは面倒である。 /usr/local/etc や /etc に置くようになる。 また、今日ではネットワークに接続す れている。 http://www.isc.org/roducts/ たとえば、表 1 のようなネットワーク DHCP/ にさまざまな情報があるので一 る人がみなよくわかっている人ではな 上で DHCP サーバーを立てる場合を考 いということから、「素人」の人たちに 読していただきたい。 ISC の DHCP には、 いちいちネットワークの設定方法を教 える。このとき、 dhcpd. conf ファイルは Version 1 、 Version 2 、 Version 3 と二つ のバージョンがあるが、現在の安定バ リスト 1 のようになる。 えるのは大変だ。このようなときには、 DHC サーバーを立ち上げておけばよ これらが何を意味するかはだいたい ージョンは Version 2 だ。 Version 3 は、 ッ下ヴ、クに物理的に接続した 読めばわかると思うが、簡単に解説し まだ開発途中のべータ段階なので冒険 よう。 動的にサーバーか をしたくない人は version 2 を選べばよ 行うため、人の手 設定の基本として、ます叩 ti 。 n で始 いだろう。ここでも versi 。 n2 を例に取 まる設定は DHCP で提供する情報、そ ることにする。 Version2 の最新版は , , - な、ネッワ クに接 きるのだ。 うでない設定は DHCP サーバーの振る 2 . 0P13 である。インストールは HC ドメイン名 ネットワーク DNS サーバー こ解 = しようこ当す 動イ、理を サブネットマスク こ久ツント ネットク , 繋 テフォルトルータ R と、、メッセージ DHCP サーバーが割り当てる旧アドレスの範囲 が DISCOV 38 20 0 N 5 B magazin ~ なツ・ , 0 ー′の設 ら を・ 表 1 想定するネットワークの構成 bsdmagazine. net 192.168.0.0 / 24 192.168.0.1 255.255.255.0 192.168.0.1 192.168.0.2 ~ 192.168.0.31