モジュールごとにページ分けしようかと考え中(とりあえず今今メンテされてるものとか中心に)
- mod_uploader
- mod_qos
- mod_parp
以下は古い情報盛りだくさんのため、最新は待ってて下しあ。
Apache2.4に適当に対応させたパッチ置き場はこちらとりあえずコンパイルと起動までは確認してあります。(mod_uploaderはうpと削除まで確認)mod_perlは適当パッチなので、Fedoraのrpmに入ってるパッチ使った方が幸せになれるかもしれません。
自己責任で使って下しあ
ということで、いろいろと遊んでみますか
mod_uploader
http://acapulco.dyndns.org/mod_uploader/
最強?とうわさのあぷろだを試してみます。なぜかサムネイルが動かなかったのが原因判明したので覚書ですサムネイルにはImageMagicを使用しますが、ソースから入ってるとなにやら足りないものがあるらしく、Apacheが起動時にエラーをはいて起動しなくなります。ということで/usr/local/libにlibWand.so.10がある場合はソースをuninstallした後に削除しましょう?
Fedora18にしたらコンパイルでこけるわコンパイルできるようになったらなんかライブラリ?がおかしいわで起動しなくなったので、どこかのエロい人が直してくれるまで放置決定でござる。
必要環境公式HPより抜粋httpdはrpmではなく今回はソースでやってますので無視します。
gcc-c++makelibtoolhttpd-develImageMagick-c++-develfreetype-develfontconfig-devel
インストール
cd /usr/local/srcwget http://osdn.dl.sourceforge.jp/mod-uploader/37519/mod_uploader-3.1.1.tgztar zxvf mod_uploader-3.1.1.tgzcd mod_uploader-3.1.1./configure --enable-thumbnail#/usr/local/apache2にapacheがインストールされてれば自動的に必要なパスを検索してくれます#それ以外の場合は--with-apxs2=/path/to/bin/apxs2 --with-apctl2=/path/to/bin/apachectlとか指定しましょう。makemake -f GNUmakefile.apache install
これで必要なモジュールがインストールされました次に設定です。
/usr/local/apache2/conf/httpd.conf以下を追加+""で囲まれたパスは適宜変更
AddDefaultCharset EUC-JP RewriteEngine Off SetHandler uploader #UTF-8なOSだと日付が文字化けするので英語にしておきます SetEnv LC_LANG en_US UploaderBaseUrl "http://www.example.org/up" UploaderDataDirectory "/usr/local/apache2/htdocs/test/data" UploaderFileDirectory "/usr/local/apache2/htdocs/test/file" UploaderThumbDirectory "/usr/local/apache2/htdocs/test/thumb" UploaderTempDirectory "/usr/local/apache2/htdocs/test/temp" UploaderTotalFileSizeLimit 10485760 UploaderTotalFileNumberLimit 200 UploaderFileSizeLimit 1048576 UploaderPerPageItemNumber 30 UploaderIndexViewTemplate "/usr/local/apache2/htdocs/tmpl/index.htm" UploaderInfoViewTemplate "/usr/local/apache2/htdocs/tmpl/info.htm" UploaderProgressViewTemplate "/usr/local/apache2/htdocs/tmpl/progress.htm" UploaderDownloadViewTemplate "/usr/local/apache2/htdocs/tmpl/download.htm" UploaderThumbnailViewTemplate "/usr/local/apache2/htdocs/tmpl/thumbnail.htm" UploaderAdminViewTemplate "/usr/local/apache2/htdocs/tmpl/admin.htm" UploaderErrorViewTemplate "/usr/local/apache2/htdocs/tmpl/error.htm" Order Deny,Allow Deny From All Allow From 127.0.0.1 Alias /up_img "/usr/local/apache2/htdocs/img" Alias /up_css "/usr/local/apache2/htdocs/css" Alias /up_js "/usr/local/apache2/htdocs/js
テンプレートファイルとかをコピー
cd /usr/local/src/mod_uploader-3.1.1 cp -r css img js tmpl /usr/local/apache2/htdocs cd /usr/local/apache2/htdocs mkdir test cd test mkdir data file thumb temp cd /usr/local/apache/htdocs chown -R apache. test css img js tmpl chmod 777 test/*
後はapacheを再起動してエラーが出ていなければhttp://www.example.org/up/へアクセスするとあぷろだのページが表示されます。
テンプレートは編集可能ですが、編集後httpdのリロードが必要です。
mod_evasiveうちのような貧弱なサイトにはあまり関係ないですが、ダウンロードサイトとかで自動ツールによる大量アクセスを防いだりDoSアタックを防ぐためにこのモジュールをつかいます。
旧(つながらない)http://www.zdziarski.com/projects/mod_evasive/
新http://www.zdziarski.com/blog/?page_id=442
インストールcd /usr/local/src wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz tar zxvf mod_evasive_1.10.1.tar.gz cd mod_evasive /usr/local/apache2/bin/apxs -cia mod_evasive20.c
これでインストールは完了で設定はこんな感じで
/usr/local/apache2/conf/httpd.conf
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10
説明DOSPageCount ページのアクセス回数でDOSPageIntervalと組み合わせるDOSSiteCount サイトへのリクエスト回数でDOSSiteIntervalと組み合わせるDOSPageInterval この秒数以内でDOSPageCount回数以上アクセスがあるとだめDOSSiteInterval この秒数以内でDOSSiteCount回数以上リクエストがあるとだめ上の例では1秒間に2回以上の同一ページへのアクセスがあるか50回以上のリクエストが送られてきたときに10秒間アクセスを拒否する動作をします。オプションで通知とかができたりするそうです。
DOSLogDir "/usr/local/apache2/logs/mod_evasive" DOSEmailNotify webmaster@example.com DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" DOSWhitelist 127.0.0.*
ホワイトリストはワイルドカードで指定が可能だそうです。
mod_bwbwとはBandWidthの頭文字で帯域制御を可能にするモジュールです。うちのような貧弱な(ry
http://ivn.cl/
インストールcd /usr/local/src wget http://ivn.cl/files/source/mod_bw-0.92.tgz mkdir mod_bw cd mod_bw tar zxvf ../mod_bw-0.92.tgz #.htaccessでの制御はできないようなのでパッチを #あてると使えるようになります(使うなら自己責任で使ってください) #0.8用 wget http://ftp.momo-i.org/pub/www/modules/mod_bw_dothtaccess.patch #patch -p0 < mod_bw_dothtaccess.patch #0.92用 wget http://ftp.momo-i.org/pub/www/modules/mod_bw_dothtaccess-0.92.patch.gz #gzip -dc mod_bw_dothtaccess-0.92.patch.gz | patch -p1 /usr/local/apache2/bin/apxs -cia mod_bw.c
これでインストールが終わったので以下のように設定をします。
BandWidthModule On ForceBandWidthModule On LargeFileLimit .wmv 1000 1200 BandWidth 192.168.0.0/255.255.255.0 8000 BandWidth 192.168.1.0/24 8000 BandWidth crawl.example.com 8000 BandWidth "u:^Mozilla/5(.*)" 500 BandWidth all 10240
IP/Subnetとかドメインで設定できるようです。この場合は/path/to/dir配下のwmvの拡張子で1000KB以上のファイルは1200B/sまた指定したアドレスに対しては8000KB/sに制限指定したユーザエージェントでは500KB/sに制限それ以外のファイルは10240B/sに帯域制限します。ここではbit/secでは無くByte/secになるので注意してください。
mod_layoutこれは1.3・2.0・2.2の各バージョン用にダウンロードできるようになってるようです。各ページに一律のヘッダやフッタを挿入できるらしい?
インストールcd /usr/local/src wget http://download.tangent.org/mod_layout-5.1.tar.gz tar zxvf mod_layout-5.1.tar.gz cd mod_layout-5.1 vi Makefile #以下を適宜修正 ################ APXS=/usr/local/apache2/bin/apxs APACHECTL=/usr/local/apache2/bin/apachectl ################ make make install
内容がこれもあまりわかっていない?のでとりあえず後回しで
Layout LayoutHeader LayoutFooter LayoutAppend LayoutAppendHeader LayoutAppendFooter LayoutIgnoreURI LayoutIgnoreHeaderURI LayoutIgnoreHTTPHeaderURI LayoutIgnoreFooterURI LayoutComment LayoutDisplayOriginal LayoutTimeFormat LayoutHTTPHeader LayoutIgnoreTag LayoutIgnoreTagFooter LayoutIgnoreTagHeader LayoutPostAsync LayoutBeginTag LayoutEndTag LayoutReplaceTags LayoutNotes
mod_qosQoSが出来るモジュールだそうです。公式を見る限りかなり柔軟な設定が出来るようなので遊んでみます。
http://mod-qos.sourceforge.net/
公式ではhttpdのソースにコピーしてコンパイルしろって書いてありますが個別にコンパイル可能なので、それでやります。
mod_parpってのを使うと応答ボディデータの制限とフィルタリングが可能だそうです?Request body data limitation and filtering
http://parp.sourceforge.net/
マニュアル(永遠に準備中)
cd /usr/local/src/ wget http://jaist.dl.sourceforge.net/sourceforge/mod-qos/mod_qos-9.57.tar.gz tar zxvf mod_qos-9.57.tar.gz cd mod_qos-9.57/apache2 /usr/local/apache2/bin/apxs -cia mod_qos.c #8.xからmod_qos_controlはなくなったようです /usr/local/apache2/bin/apxs -cia mod_qos_control.c cd ../tools ./configure make make install
9.57では./configureが利用可能なので、以下は不要
mkdir /usr/local/apache/conf/qsfilter vi qsfilter/Makefile 以下をApacheのソースディレクトリに修正 --------------例-------------- top_srcdir = /usr/local/src/httpd-2.2.15 top_builddir = /usr/local/src/httpd-2.2.15 srcdir = /usr/local/src/httpd-2.2.15/support builddir = /usr/local/src/httpd-2.2.15/support VPATH = /usr/local/src/httpd-2.2.15/support ------------------------------ make cp qsfilter2 /usr/local/bin
Fedora12ではOpensslが1.0.0になっているのでqsfilter2のmakeでエラーがでます。よく分かってないんですが、グーグル先生に聞いてみたところ1550行目あたりのSTACKを_STACKにしたらコンパイルが通るようになりました。他に直し方があれば教えてください?
ついでにmod_parpも
cd /usr/local/srcwget http://jaist.dl.sourceforge.net/sourceforge/parp/mod_parp-0.9-src.tar.gztar zxvf mod_parp-0.9-src.tar.gzcd mod_parp-0.9/apache2/usr/local/apache2/bin/apxs -cia mod_parp.c
設定はいつか。。。('A`)
mod_cbandこのモジュールも帯域制御系の1種で、主にホスティングサーバ向けの物と言っても良いかと。
公式: http://codee.pl/cband.html
mod_authn_otpこれはワンタイムパスワード認証を提供してくれるモジュールだそうです。
公式: http://code.google.com/p/mod-authn-otp/
コメントを追加