apache: 2007年12月アーカイブ
⑴ Source Fileのダウンロード
wget http://www.modsecurity.org/download/modsecurity-apache_2.1.4.tar.gz
⑵ インストール
make
make install
⑶ ルールファイルを読み込むために,httpd.confの変更
⑷ 設定完了したら,Apacheの再起動してみる。(設定ファイルは以下のような感じ)
※ mod_unique_idがApacheにロードされて無い場合は,予め追加しておく必要があるようです。
[root@localhost metadata]# /usr/local/apache2/bin/apxs -cia mod_unique_id.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o mod_unique_id.lo mod_unique_id.c && touch mod_unique_id.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_unique_id.la -rpath /usr/local/apache2/modules -module -avoid-version mod_unique_id.lo
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_unique_id.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp mod_unique_id.la /usr/local/apache2/modules/
cp .libs/mod_unique_id.so /usr/local/apache2/modules/mod_unique_id.so
cp .libs/mod_unique_id.lai /usr/local/apache2/modules/mod_unique_id.la
cp .libs/mod_unique_id.a /usr/local/apache2/modules/mod_unique_id.a
chmod 644 /usr/local/apache2/modules/mod_unique_id.a
ranlib /usr/local/apache2/modules/mod_unique_id.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache2/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_unique_id.so
[activating module `unique_id' in /usr/local/apache2/conf/httpd.conf]
[root@localhost metadata]# ls -l /usr/local/
詳細は,オフィシャルサイト参照下さい。
リッチサイトはCSSやらJSやら多くのファイルをロードするために,リクエスト回数も増えサーバーも重くなります。
変更が少ないファイルについてはExpiresヘッダを追加することで,ユーザにキャッシュさせリクエスト回数
を減らすことができます。
Apache側でExpiresヘッダをレスポンスに追加することで,このファイルは,~日間までは再リクエストしなくても変更が無いという設定をmod_expiresですることが出来ます。
基本的には静的なファイルや更新されることがほとんど無いファイルはmod_expireにて設定した方が
良い場合が多いです。(gif/jpg, js, css)
mod_expireはApacheのディフォルトモジュールです。
①find . / -name mod_expires.c で.cを探す。
②/home/admin/httpd-2.2.4/modules/metadata/mod_expires.cに発見した.cより.soを作成する。
③cd /home/admin/httpd-2.2.4/modules/metadata/
④/usr/local/apache2/bin/apxs -c mod_expires.c
⑤ls -l mod_expires*
- -rw-r--r-- 1 admin admin 18117 7月 12 2006 mod_expires.c
- -rw-r--r-- 1 admin admin 3971 8月 6 2006 mod_expires.dsp
- -rw-r--r-- 1 admin admin 15 11月 22 2004 mod_expires.exp
- -rw-r--r-- 1 root root 822 8月 31 06:15 mod_expires.la
- -rw-r--r-- 1 root root 324 8月 31 06:15 mod_expires.lo
- -rw-r--r-- 1 root root 29116 8月 31 06:15 mod_expires.o
- -rw-r--r-- 1 root root 0 8月 31 06:15 mod_expires.slo
⑥mod_expire.soファイルの作成
/usr/local/apache2/bin/apxs -i -a -n expires mod_expires.la
⑦/usr/local/apache2/modules/mod_expires.so が作成されたか確認。
⑧/usr/local/apache2/conf/httpd.conf にモジュールロードが追加されているか確認。
LoadModule expires_module modules/mod_expires.so
⑨画像ファイル等のキャッシュを設定
mod_expiresでgif、jpeg等をキャッシュ
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType text/css "access plus 1 days"
ExpiresByType application/x-javascript "access plus 1 days"
</IfModule>
⑩再起動して設定を反映
/usr/local/apache2/bin/apachectl restart
