ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2008/02/13

mod_cacheと圧縮転送のロミオとジュリエット的関係

圧縮転送とmod_cacheを一緒にやると文字コードがおかしいって怒られる。
キャッシュしたgzファイルを読み込む時になぁんか不具合が起こるのかな。
とりあえずmod_cacheをやめたらうまくいきました。

Apache2.2.8とTomcat6の連携

前にdebianに入れた時はa2enmodってコマンドで動的に組み込めたのですが、コマンドありません。
悩んでるより./configureし直した方が早いと決断して、いろいろ入れました。

$ ./configure --enable-cache --enable-disk-cache --enable-mem-cache --enable-proxy --enable-proxy-ajp --enable-rewrite --enable-so


cache, disk-cache, mem-cacheはキャッシュするために使います。
詳しくは、@IT「強化されたドキュメントキャッシュ機能を使う」へどうぞ。

proxy, proxy-ajpはTomcatとの連携に使います。
使い方は以下の通り。

<Location /~hoge/ServletFuga>
ProxyPass ajp://localhost:8009/~hoge/ServletFuga
</Location>


rewriteは圧縮転送に使います。
その際の.htaccessの例は以下の通り。

RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME} !\.gz$
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz

ForceType application/x-javascript
AddEncoding x-gzip .gz

2008/02/11

Apache2.2.8をMacOS X 10.3(Panther)にソースインストール

Apache2.2.8をインストールしたので、一応メモしておく。

$ tar xvfz httpd-2.2.8.tar.gz
$ cd httpd-2.2.8
$ ./configure --enable-so # DSOによる動的機能追加を有効に
$ make
$ make install # へたこいた貴方はmake clean


この後にapacheユーザに権限渡したり自動起動設定したりする。けど今回は略。

/usr/local/apache2/conf/httpd.confにて、変更したところのみ記述。

ServerName myDomain:80
DocumentRoot /myDocumentRoot/

<Directory "/myDocumentRoot/>
Options FollowSymLinks
AllowOverride All
</Directory>

ServerTokens Prod
ServerSignature Off


Option Indexes : クライアントがディレクトリのURIを要求、かつそのディレクトリ内にindex.htmlが存在しない時に、ファイル一覧を返すのを許可。
Option FollowSymLinks : サーバがディレクトリ内のシンボリックリンクをたどるのを許可。
AllowOverride All : .htaccessで何だって上書きできる。
ServerTokens Prod : 外部の人に対してOSと組み込んだモジュールを非表示
ServerSignature Off : サーバのバージョンなどを非表示

ScriptAliad /cgi-bin/ "/myDocumentRoot/cgi-bin/"

<Directory "/myDocumentRoot/cgi-bin/">
AllowOverride All
Options ExecCGI +SymLinksIfOwnerMatch
SetHandler cgi-script
</Directory>


Options ExecCGI : CGIスクリプトの実行許可。
Options SymLinksIfOwnerMatch : 所有者が同じ時だけ上述のFollowSymLinks許可。
SetHandler cgi-script : ディレクトリ内のファイルを実行する。要ExecCGI。

ここからは個人のディレクトリ以下に作るために必要。
Include conf/extra/httpd-userdir.conf の#を外す

以下は一番下に書かなかったら読み込まなかった。。。ハマりました。

<Directory "/home/*/public_html">
AllowOverride All
Options SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from All
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

<Directory "/home/*/public_html/cgi-bin">
AllowOverride All
Options ExecCGI
SetHandler cgi-script
</Directory>


(追記)

よーし、Apache2.0 + Tomcat6.0 + Java5で動いてたプログラムを移行しよう
      ↓
MacってJava5使えるようになったのって10.4からかよ
      ↓
Java5の文法使えないじゃん
      ↓
ふー、Java1.4でコンパイル通ったぞ
      ↓
Tomcatもバージョン4入れるしかないよな
      ↓
動かないっす。。。