*httpdとその仲間
*httpdとその仲間 [#r391639c]
#navi(OpenBlockS)

追加ソフトのインストール手順

OpenBlockS に apache とバックエントを入れて http サーバーを構築する手順

**目次
**目次 [#c7e0e1ba]
#contents

-Apache - 2.0 系はまだやばいのかな?
-expat - コンパイル時に無くても問題ないようだが、あったら使われる
-mod_dav - 外からファイルを書き込んだりできる
-php - PukiWiki を入れるため

**Apache
**Apache [#m01c17b4]

[2003/11/1] apache 1.3.29 へ更新。手順は同じ

[2003/7/24] apache 1.3.28 へ更新

/usr/local/www/data 下や、/usr/local/etc/apache 下のファイルを必ずバックアップしてから実行する。ファイルの取得は適当なミラー・サイトから行う(WEBブラウザからダウンロードすればよい)。予め公開鍵を GnuPG にインポートしておく。

 $ cd ~/src/01distfiles
 $ wget http://www.apache.org/dist/httpd/apache_1.3.28.tar.gz
 $ wget http://www.apache.org/dist/httpd/apache_1.3.28.tar.gz.asc
 $ wget http://www.apache.org/dist/httpd/apache_1.3.28.tar.gz.md5
 $ gpg --verify apache_1.3.28.tar.gz.asc
 $ cat apache_1.3.28.tar.gz.md5
 MD5 (apache_1.3.28.tar.gz) = 2cdece7b4881d541e072de6a2b65db77
 $ md5sum apache_1.3.28.tar.gz
 2cdece7b4881d541e072de6a2b65db77 apache_1.3.28.tar.gz
 $ cd ..
 $ tar xzvf 01distfiles/apache_1.3.28.tar.gz
 $ cd apache_1.3.28
 $ ./configure --with-layout=FreeBSD --enable-shared=max
 $ time make
 .. (途中省略) ..
 real 3m42.685s
 user 2m58.110s
 sys 0m41.290s
 $ mkdir ~/src/02localpkg/apache
 $ make root=~/src/02localpkg/apache install
 $ cd ../02localpkg/apache/
 $ rm usr/local/etc/apache/httpd.conf
 $ tar czvf apache_1.3.28-ssdlinux-1.tgz --owner=root --group=wheel usr var
 $ rm -rf usr var
 $ su
 # apachectl stop
 # rm -rf /usr/local/www
 # rm -rf /usr/local/share/doc/apache
 # tar xzvf apache_1.3.28-ssdlinux-1.tgz -C /

この後、/usr/local/etc/apache/httpd.conf や、/usr/local/www/data を戻して、apachectl start する。php や mod_dav 等が不整合を起こしていないか確認する。幸い、1.3.27 → 1.3.28 の時は問題ないようだった。

1.3.27 に比べて、1.3.28 は libexpat.so.0 に依存していることが判明(ldd /usr/local/sbin/httpd で調べることができる)。Auto Configure の弊害というやつだ。apache には、xml parser として expat-lite というライブラリを自分で持っているが、システムに expat がインストールされている場合は、そちらを使うようになる。configure のオプションで、そうしないようにすることができるような気がするが、確認できていない。

バイナリのローカル・パッケージを作って、expat がインストールされていない環境へ持っていったときに初めて発覚するので注意。

[2003/6/2] ブラウザのキャッシュ問題。

掲示板の背景を毎月新しくするのだが、いちいちファイル名を変えると、cgi も変更しなければいけないので、同じファイル名で内容だけ入れ替えたのだが、ブラウザ(mozilla や Netscape 7 等)によっては、変わったことを認識してくれないようだ。

mozilla のキャッシュ設定には4種類あって、[ページをアクセスする毎に] [セッション毎に] [キャッシュしたページが古いとき] [しない] という選択肢で、デフォルトは、[キャッシュしたページが古いとき] のようだ。IE の場合は、[ページを表示するごとに確認する] [Internet Explorer を起動するごとに確認する] [自動的に確認する] [確認しない] の4種類だ。

キャッシュとサーバーのファイルの比較で古いかどうかの判断は、ブラウザで異なるようだが、キャッシュに無いファイルを読み込んだときは、Cache-Control: ヘッダか、Expires: ヘッダでどのくらいの期間キャッシュするか決めているようだ。どちらのヘッダも無いときは、ブラウザが適当に決めているらしい。過去にアクセスした履歴で更新されていない期間が長ければ、これからも更新されないだろう、というような判断も行っているかもしれない。

ひと月に1回背景の画像を変更するような場合、同じファイル名で内容だけ更新すると、ブラウザによっては何日も更新されていないように見えることがある。結局、一番簡単で無難な解決策は、画像ファイル名を更新の度に変える事だ。

 $ cd ~/src/apache_1.3.27
 $ configure --with-layout=FreeBSD --enable-shared=max
 $ make
 $ su
 # make install

***expat (XML Parser)
***expat (XML Parser) [#yc72d1cf]

apache コンパイル時に必要なわけではないが、php で XML Parser を使ったりする場合にあると便利。

[[SourceForge.net- Project Info - Expat XML Parser:http://sourceforge.net/projects/expat/]] から WEBブラウザでダウンロード、~/src/01distfiles へ保存。

 $ cd ~/src
 $ md5sum 01distfiles/expat-1.95.6.tar.gz
 ca78d94e83e9f077b5da2bfe28ba986a 01distfiles/expat-1.95.6.tar.gz
 $ tar xzvf 01distfiles/expat-1.95.6.tar.gz
 $ cd expat-1.95.6
 $ ./configure
 $ make
 $ sudo make install

***mod_dav
***mod_dav [#pfbbf355]

 $ cd mod_dav-1.0.3-1.3.6
 $ ./configure --with-apxs=/usr/local/sbin/apxs
 $ make
 $ su
 # make install
 
 $ cd mod_encoding-20020611a
 $ ./configure --with-apxs=/usr/local/sbin/apxs
 $ make
 $ su
 # make install
 
 # cd /usr/local/etc/apache
 # vi http.conf
 
 # apachectl start

起動時に自動的に立ち上がるようにする。/etc/rc.local に以下の内容を加える。

 if [ -f /usr/local/sbin/apachectl ]; then
         /usr/local/sbin/apachectl start
         echo -n ' apache'
 fi

***log rotate
***log rotate [#le7089cf]

/var/log/access_log, /var/log/error_log をローテーションしなければいけない。[[WEB サーバ(Apache)の設定:http://freebsd.sing.ne.jp/FreeBSD/10apache/10.1.html]] を参考に /etc/newsyslog.conf に以下を加えた。毎週日曜日の午前4時に最大7世代のローテーションを行う。

 /var/log/access_log     644     7       *       W0D4    B /var/run/httpd.pid
 /var/log/error_log      644     7       *       W0D4    B /var/run/httpd.pid

**php
**php [#bc277628]

 cd ~/src/01distfiles
 wget http://downloads.php.net/jani/php-4.3.10.tar.bz2
 wget http://jp2.php.net/get/php-4.3.11.tar.bz2/from/this/mirror
 cd ..
 tar xjvf 01distfiles/php-4.3.10.tar.bz2
 cd php-4.3.10
 tar xjvf 01distfiles/php-4.3.11.tar.bz2
 cd php-4.3.11
 ./configure --with-apxs=/usr/local/sbin/apxs --enable-zend-multibyte \
  --enable-mbstring=all --enable-mbregex
 make

コンパイルに45分程度かかる。--with-mysql(デフォルト)で build すると
以下のような警告が出た。

 /home/otsuka/src/php-4.3.1/ext/mysql/libmysql/my_tempnam.c:115: 
 the use of `tempnam' is dangerous, better use `mkstemp'

【後日談】 php-4.3.10 を build したら、最後に (It is safe to ignore warnings about tempnam and tmpnam). と出るので、問題ないと思われる。

build ディレクトリを使うと、テストやインストールが出来ないようだ。

local package を作る場合は、ダミーの httpd.conf を用意しないとインストールに失敗する。

 mkdir -p ~/src/02localpkg/php/usr/local/etc/apache
 cp /usr/local/etc/apache/httpd.conf.default \
  ~/src/02localpkg/php/usr/local/etc/apache/httpd.conf
 make INSTALL_ROOT=~/src/02localpkg/php install
 cd ../02localpkg/php
 (cd usr/local/etc/apache; rm httpd.conf.bak; mv httpd.conf httpd.conf.php)
 cp ../../php-4.3.10/php.ini-recommended usr/local/lib/php.ini.default
 tar czvf php-4.3.10-minig-1.tgz --owner=root --group=wheel usr
 cp ../../php-4.3.11/php.ini-recommended usr/local/lib/php.ini.default
 tar czvf php-4.3.11-minig-1.tgz --owner=root --group=wheel usr
 rm -rf usr
 sudo /usr/local/sbin/apachectl stop
 sudo rm -rf /usr/local/include/php
 sudo rm -rf /usr/local/lib/php
 sudo tar xzvpf php-4.3.10-minig-1.tgz -C /
 sudo tar xzvpf php-4.3.11-minig-1.tgz -C /

/usr/local/lib/php.ini が存在しないときは、/usr/local/lib/php.ini.default をコピーする。

Apache でせっかくバージョン表記を隠しているのに、X-Powered-By: PHP/4.3.10 とか返されるのがいやなので、以下を追加。
Apache でせっかくバージョン表記を隠しているのに、X-Powered-By: PHP/4.3.11 とか返されるのがいやなので、以下を追加。

 /usr/local/lib/php.ini:
 expose_php = Off

#include(免責事項)

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS