初稿 : 2001.03.08
PerlとApacheのインストール
各種アプリケーション、サーバのインストールに当たって
実はNetBSDはmakeが結構下手だったので苦労が多かったのだが、前バージョンの1.4xあたりからだいぶよくなったのとGNU configureスクリプトの普及のおかげでMakefileをいじることもめっきり少なくなった。これから入れるようなメジャーなソフトはほとんど一発で出来上がる。
以前NetBSD/mac68kにチャレンジしてくじけた人も、恐れずにガンガンmakeしよう。makeのよい所はデフォルトインストール先が一般的なディレクトリになることと、GNU configureものだと設定ファイルがほとんどそのまま使える状態で出来上がってくることだ。これは意外と大きい。
Packagesからのインストールでは/usr/pkg/bin以下にインストールされてしまうので何かと都合がよろしくない。以前は/usr/pkgを/usr/localにシンボリックリンクしていたが、パッケージとコンパイル物が混ざってくるとこれも結構都合が悪いことが解った。packagesのreadmeを拾い読みして設定ファイルや実行ファイルを探し回った揚げ句、FAQなどでいちいちディレクトリを読み替えたりしていると思わぬところで設定にはまったりもするんで、かえって手間的には早いことも多い。しかし68kは旧いマシンゆえ、コンパイル自体は非常に遅いので気長に構えよう。
Perlのインストールと設定
NetBSDはいまや必須のPerlが標準でインストールされていないので、インストールする。
また、今後perl modulesなどを導入する際もソースがあると何かと便利だから、これは作ることにした。
# mkdir /usr/src
ftp.cpan.org/CPAN/src/ から5.005系の最新版(2001/02/22現在5.005_03)をgetして/usr/src/以下に展開。現在5.6.0までリリースされているが、大半のWebサーバのperlはまだ5.00x系なので、こちらを取った。
$ tar -xvzf perl5.005_03.tar.gz -C /usr/src/ [hoge@lc475](‾)$ rm -xvzf perl5.005_03.tar.gz [hoge@lc475](‾)$ cd perl5.005_03 [hoge@lc475](‾)$ ./configure.gnu [hoge@lc475](‾)$ make [hoge@lc475](‾)$ make test [hoge@lc475](‾)$ su - [root@lc475](‾)# make install [root@lc475](‾)# ln -s /usr/local/bin/perl /usr/bin/ [root@lc475](‾)# exit $ make clean
ここまで来たら確認。
$ perl -v This is perl, version 5.005_03 built for mac68k-netbsd Copyright 1987-1999, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5.0 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.com/, the Perl Home Page. $ perl -e 'print 1+1,"¥n";' 2
最近は/usr/binにperlを置いているディストリビューション(プロバイダのサーバ)も多くなってきたので、互換性に配慮してシンボリックリンクを張っておくことをお勧めする。また、もう/usr/bin/以下でいいだろう、直接入れるよ、という人は
[hoge@lc475](‾)$ ./configure.gnu
のところで
[hoge@lc475](‾)$ ./Configure
とするとインストール先やら何やら質問攻めにあえるじょ。prefixのところで/usr/binと答えるだけで(他の質問はデフォルトでいいでしょう)OKだ。
Apacheのインストールと設定
Apacheも拡張性豊かなので今後mod_perlやphpなどのモジュールを組み込むときに便利なようにソースから作る。
http://www.apache.org から1.3系の最新のソース(2001/02/22現在1.3.14)をgetして/usr/src/以下に展開。
[hoge@lc475](‾)$ tar -xvzf apache_1.3.14.tar.gz -C /usr/src/ [hoge@lc475](‾)$ rm apache_1.3.14.tar.gz [hoge@lc475](‾)$ cd /usr/src/apache_1.3.14 [hoge@lc475](‾)$ ./configure [hoge@lc475](‾)$ make [hoge@lc475](‾)# su - [root@lc475](‾)# make install [root@lc475](‾)# exit [hoge@lc475](‾)$ make clean
Apacheの設定ファイル/usr/local/apache/conf/httpd.confを編集。makeしたので、ほとんどそのままで動くが、/usr/users/username/htdocsをデフォルトに、また、CGIとSSIを許可する。
[hoge@lc475](‾)$ su -
[root@lc475](‾)# vi /usr/local/apache/conf/httpd.conf
(省略)
DocumentRoot "/usr/users/username/htdocs"
(省略)
<Directory "/usr/users/username/htdocs">
#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
Options All
AddHandler cgi-script .cgi .pl
AddHandler server-parsed .shtml
AddType text/html .shtml
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
(省略)
<Directory /user/users/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
AddHandler cgi-script .cgi .pl
AddHandler server-paesed .shtml
AddType text/html .shtml
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
#
# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index. Separate multiple entries with spaces.
#
<IfModule mod_dir.c>
DirectoryIndex index.html index.shtml index.cgi
</IfModule>
(省略)
として保存。このサイトのデータを/usr/users/username/htdocsに転送後、適宜パーミッションを設定して
[hoge@lc475](‾)$ su - [root@lc475](‾)# /usr/local/apache/bin/apachectl start
でApacheをスタートさせる。前項のDNSの設定が正しければ、
http://lc475.you-wing.lan/
http://www.you-wing.lan/
http://192.168.0.10/
のいずれも/usr/users/username/htdocs以下のindex.html(またはindex.shtml、index.cgi)を表示するはずだ。
apachectlのオプションはstart,stop,restartで、それぞれ起動、停止、再起動なので、設定がうまくいかなくて再設定したらわざわざpsなどで調べてkillしなくても
$ /usr/local/apache/bin/apachectl restart
で停止と起動を自動で行ってくれるので便利だ。見たら本体はシェルスクリプトなので、あとで他のデーモンにも流用させていただくことにする。
うまく表示されたら、あとはCGI,SSIの動作を確認する。
最後に起動スクリプト/etc/rc.localに組み込む
[root@lc475](‾)# vi /etc/rc.local
(省略)
echo -n 'starting local daemons:'
#
# Starting Apache Server
#
if [ -x /usr/local/apache/bin/apachectl ]; then
/usr/local/apache/bin/apachectl start
fi
[root@lc475](‾)# exit
再起動して、自動起動するか確認しても良いが、68kマシンは遅い上必ずMacOSの起動までやるので、うざったいから他にもデーモンを設定するなら最後に一回やればよい。