apacheの最近のブログ記事
⑴ 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
以下のオプション無で,64bit Linuxでconfigureするとconfig.subでエラーに なったので,GCCのオプションで64bit用のオプション付けてCPUの種類 教えてあげてconfigureしました。
Apache Download Site
http://httpd.apache.org/download.cgi
http://ftp.riken.jp/net/apache/httpd/httpd-2.2.6.tar.gz1 ) Configure./configure CFLAGS="-DRECORD_FORWARD -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \--enable-rewrite --enable-proxy --enable-proxy-balancer \ --enable-expires --enable-headers --enable-so --with-included-apr \ --with-mpm=worker --prefix=/usr/local/apache2_2_62) Make3) Make install4) ln -s /usr/local/apache2_2_6 /usr/local/apache5) /etc/init.d/httpd起動スクリプト作成。6) chkconfig httpd on64bitのapacheはまだ不安だし,必要性もそれ程ないので本番では利用するのは暫くしない。MYSQLであればメモリーやLarge Fileの扱いがあるのと事例が多いので良いかな。
tcp 1 0 192.168.11.4:46009 72.21.40.11:80 CLOSE_WAIT
tcp 1 0 192.168.11.4:46013 72.21.40.11:80 CLOSE_WAIT
tcp 1 0 192.168.11.4:46325 218.227.162.248:80 CLOSE_WAIT
tcp 1 0 192.168.11.4:46327 218.227.162.248:80 CLOSE_WAIT
tcp 1 0 192.168.11.4:46304 64.92.174.75:80 CLOSE_WAIT
tcp 1 0 192.168.11.4:46300 64.92.174.75:80 CLOSE_WAIT
[root@localhost bin]# netstat -n | grep 80 | wc -l
6
[root@localhost bin]#
ファイルをダウンロードして,展開後にApacheのインストールを開始します。
wget http://ftp.riken.jp/net/apache/httpd/httpd-2.2.6.tar.gz
tar zxvf httpd-2.2.6.tar.gz
-----------① Apach Configuration -------------
./configure \
--enable-rewrite \
--enable-so \
--enable-ssl \
--enable-dav \
--enable-dav-fs \
--enable-suexec \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-webdav=true \
--with-suexec-docroot=/home/www \
--with-included-apr \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-suexec-caller=apache
※WEBDAVはサブバージョン用に準備したもの。
※Cache関連のオプションは,apache2.xxで可能。
-----------② Apach Compile -------------------
make
-----------③ Install -------------------------
make install
-----------④ 起動スクリプト準備 /etc/init.d/ -
#!/bin/bash
#
# Startup script for Apache Web Server
# chkconfig: 345 85 15
#
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin:/bin
CMDPATH=/usr/local/apache2/bin/
CMD=apachectl
test -f $CMDPATH$CMD || exit 0
start()
{
echo -n "Starting httpd ... "
$CMDPATH$CMD start
echo "done."
}
stop()
{
echo -n "Stopping httpd ... "
$CMDPATH$CMD stop
echo "done."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
sleep 2
start
;;
*)
echo "Usage: /etc/rc.d/init.d/rc.httpd2 {start|stop|restart}"
exit 1
;;
esac
exit 0
-----------⑤ 起動確認 -------------------------
[root@localhost apache2]# /etc/init.d/http start
Starting httpd ... done.
-----------⑥ 自動起動設定 ---------------------
[root@localhost apache2]# chkconfig --list http2
[root@localhost apache2]# chkconfig --add http2
[root@localhost apache2]# chkconfig --list http2
http2 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[root@localhost apache2]#
-----------⑦ httpd.confの編集------------------
ServerSignature Off
ServerTokens ProductOnly
HostnameLookups Off
TraceEnable Off
-----------⑧ httpd.confの確認------------------
[root@localhost bin]# ./apachectl -t
Syntax OK
とりあえず基本設定完了
