Apache †
インストール †http://httpd.apache.org/download.cgiよりダウンロード sslを有効にしたい場合は、--enable-sslを付加する。 Digest認証をしたい場合は--enable-auth_digestをつける。圧縮転送をしたい場合は、 --enable-deflateをつける。 WebDev?を使いたい場合は、--enable-dav=yes --with-berkeley-db=/usr/local/BerkeleyDB.4.3 またproxyを組み込みたい場合は--enable-proxy, URLを書き換えたい場合は、--enable-rewrite ModSecurity?を使いたかったので、--enable-unique-idを付加しました。lpap認証を使いたいかったので、--with-ldap --enable-ldap --enable-auth-ldapを付加してます。ちなみに ./configure --helpを参考に tar zxvf httpd-2.0.52.tar.gz cd httpd-2.0.52 ./configure --prefix=/usr/local/apache2 --enable-ssl --enable-so --enable-auth_digest --enable-deflate --enable-dav=yes --with-berkeley-db=/usr/local/BerkeleyDB.4.3 --enable-proxy --enable-rewrite --enable-unique-id --with-ldap --enable-ldap --enable-auth-ldap --with-included-apr か、2.2は --with-ldap --enable-ldap --enable-authnz-ldap --with-included-apr 全部いきたい場合は --enable-module=all --enable-mods-shared=all make make install 再度インストールする場合は、apacheは止めましょう。ちなみにmakeのときに Undefined symbols: "_apr_socket_sendfile", referenced from: _sendfile_it_all in libmain.a(core_filters.o) ってleopardのときエラーになったんですが、次やるとうまくいけました。make cleanしたからかな? ldd /usr/local/apache2/bin/httpd で使用しているライブラリをチェックしておきます。 オプションの--enable-deflateをつけた場合は、エラーがでました。http://forums.devside.net/viewtopic.php?t=123と同じエラーです。PHPを参考にzlibをインストールしてますが、エラーがでます。どうも、/usr/include/zlib.hと/usr/local/include/zlib.hが2ついてこれが原因ぽいです。ですので、とりあえず、/usr/local/include/zlib.hを/usr/local/include/zlib.horgにリネームしてコンパイルしました。後ユーザとグループは groupadd httpd useradd httpd -g httpd -d /dev/null -s /sbin/nologin で作成し、httpd.confのuser,groupをhttpdにします。 ついでにaprも入れておきます。http://apr.apache.org/download.cgiより、 wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.2.12.tar.gz wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.2.12.tar.gz tar xzvf apr-1.2.12.tar.gz tar xzvf apr-util-1.2.12.tar.gz cd apr-1.2.12 ./configure make make instal cd ../apr-util-1.2.12 ./configure --with-apr=/usr/local/apr make make install 2.2 †
起動・停止 †APACHE_HOME/binで実行 ./apachectl start 停止は ./apacehctl stop 再起動は ./apachectl restart リバースproxy †http://www.sixapart.jp/movabletype/developers/naoya/archives/2004/10/apache_20_mod_p.html 独自のディレクトリ作成 †APACHE_HOME/conf/httpd.confに追加します。 Alias /test /usr/local/test <Directory /usr/local/test> Options All MultiViews AllowOverride All </Directory> ちなみに特定のURLにディレクティブを設定したい場合は、Locationを使います。 またcgiを動かしたい場合は、/usr/local/testに.htaccessを作り Options +ExecCGI +MultiViews を追加します。 ちなみに、 <Directory /usr/local/test> Options All 対象となるフォルダのオプション AllowOverride None .htaccessで別の指定を許可するかどうか Order allow,deny 許可と不許可の評価の順番 Allow from all 許可の範囲 Allow from 192.168.0とか、 Allow from 192.168.0.0/24とか .co.jpとか 複数の場合はスペースで allow fromを複数行でも可 </Directory> で、optionsの設定は、 All MultiViewsを除くすべてのオプションが有効 None すべて無効 ExecCGI CGIスクリプトの実行を許可 FollowSymLinks シンボリックリンクへアクセス許可 Includes サーバサイドのインクルード許可 IncludesNoExec サーバサイドのインクルード許可するがコマンドは禁止 Indexes ディレクトリ一覧を表示 SSLだけ許可したい場合は、 SSLRequireSSL 承認 †
mod_rewrite †ディレクトリを移動したい場合、そのディレクトリに.htaccessファイルを作り、 RewriteEngine on RewriteBase /hoge/ RewriteRule ^(.*)$ /hogehoge/$1 [R=301,L] また/hogeでも移動させたい場合は、ルートに RewriteEngine on RewriteRule /hoge$ /hogehoge/index.html [R=301,L] クエリはRewriteRule?では置換してくれないので、 RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^aaa=(.*)$ RewriteRule ^hoge/hoge1.php /hoge/hoge2/hoge3.php?bbb=%1 [R=301,L] 参考: mod_deflate †mod_authnz_ldap †ldap認証です。httpd.confに <Location /svn> DAV svn SVNParentPath /usr/local/svn-rep AuthType Basic AuthName test AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://localhost/ou=sales,o=example,c=jp?uid require valid-user </Location> とか。2.0と2.2でちょっと違いますね。上記のサンプルはwebdavも使った2.2です。 AuthType Basic AuthLDAPUrl ldap://localhost/ou=People,dc=my-domain,dc=com?uid AuthName test require valid-user ApacheのLDAP認証 CGI実行 †大きくは2通り httpd.confに ScriptAlias /cgi-bin/ /webroot/cgi-bin/ もしくは.htaccessに SetHandler cgi-script or AddHandler cgi-script .cgi .pl Options +ExecCGI とする。AddHandler?については拡張子を指定する場合で、SetHandler?は拡張子に関係なく実行させたい場合です。ただしOptionsで指定できるのは、AllowOverride?の指定によるので、確認しておく。 メール送るサンプル #!/usr/bin/perl $sendmail = '/usr/sbin/sendmail'; $from = 'from@hoge.jp'; $to = 'to@hoge.jp'; $subject = 'test'; $msg = <<"_DATA_"; message _DATA_ # sendmail open(SDML,"| $sendmail -t -i") || die 'sendmail error'; # mailhead print SDML "From: $from\n"; print SDML "To: $to\n"; print SDML "Subject: $subject\n"; print SDML "Content-Transfer-Encoding: 7bit\n"; print SDML "Content-Type: text/plain;\n\n"; # mail print SDML "$msg"; # end close(SDML); FastCGI †Rubyを動かしたいので、インストールしてみました。 wget http://www.fastcgi.com/dist/fcgi.tar.gz tar xzvf fcgi-2.4.0.tar.gz cd fcgi-2.4.0 ./configure make make install ldconfig このfcgiはThe Development Kitなので、いらないような気もしますが、とりあえずいれてます。ではmod_fastcgiです。 wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz tar xzvf mod_fastcgi-2.4.2.tar.gz cd mod_fastcgi-2.4.2 READMEを読んで、 For information on installing mod_fastcgi with Apache 2.x, see the file INSTALL.AP2. とあるので、INSTALL.AP2を読みます。 cp Makefile.AP2 Makefile make make install すると/usr/local/apache2/modules/にmod_fastcgi.soが出来てました。ではhttpd.confに LoadModule fastcgi_module modules/mod_fastcgi.so <IfModule mod_fastcgi.c> FastCgiIpcDir /tmp/fcgi_ipc/ AddHandler fastcgi-script .fcgi </IfModule> を付け加えて、再起動です。 FastCGI: access for server (uid -1, gid -1) failed: read not allowed FastCGI: can't create dynamic directory "/tmp/fcgi_ipc/dynamic": access for server (uid -1, gid -1) failed: read not allowed こんなエラーが出る場合は、 chown -R httpd:httpd fcgi_ipc chmod -R 777 fcgi_ipc として権限をつけておいてやるか、 <IfModule mod_fastcgi.c> FastCgiIpcDir /tmp/fcgi_ipc/ AddHandler fastcgi-script .fcgi </IfModule> を、 User httpd Group httpd と定義してある下に書いてやります。 ログ †インストールしたら、ログの設定は変更しておきましょう。 APACHE_HOME/conf/httpd.confで #CustomLog /usr/local/apache/logs/access_log common コメントし、 CustomLog /usr/local/apache/logs/access_log combined を生かします。 ワームのログをはずす †APACHE_HOME/conf/httpd.confで #画像ファイル,CSSはログをとらない SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" nolog #ローカルIPからのはログはとらない SetEnvIf Remote_Addr 192.168.100. nolog #wormのログは別ログへ SetEnvIf Request_URI "^/_mem_bin/" worm nolog SetEnvIf Request_URI "^/_vti_bin/" worm nolog SetEnvIf Request_URI "^/c/" worm nolog SetEnvIf Request_URI "^/d/" worm nolog SetEnvIf Request_URI "^/msadc/" worm nolog SetEnvIf Request_URI "^/MSADC/" worm nolog SetEnvIf Request_URI "^/scripts/" worm nolog SetEnvIf Request_URI "^/default.ida" worm nolog SetEnvIf Request_URI "root\.exe" worm nolog SetEnvIf Request_URI "cmd\.exe" worm nolog SetEnvIf Request_URI "NULL\.IDA" worm nolog CustomLog logs/access_log combined env=!nolog CustomLog logs/worm_log combined env=worm ついでにSEARCHで始まるやたら長いアクセスも除外します。414のエラーがそれです。 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined を LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined に変更しておきましょう。 日本語が化ける †
AddDefaultCharset Off noneなんて指定なかったんですね。なぜこんなことを覚えてしまったんでしょう。マニュアルを読まずに検索エンジンに頼ってしまった結果です。ちょっと他のも見直してみます。またLanguagePriority? は、「MultiViews? リクエストを扱うときに、クライアントが優先順位を提供していない場合の 言語の優先順位を設定します」と書いてあるので、関係ないです。またAddDefaultCharsetはデフォルトでOffなので、 #AddDefaultCharset ISO-8859-1 でもいいです。これでも化けるページがありました。 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> と設定してあるのに。調べると、<title>が<meta>より上にきているページでした。 http://web-sniffer.net/などでHTTP Response Headerを確認してみましょう。 http://httpd.apache.org/docs-2.0/mod/core.html#adddefaultcharset VirtualHost?の設定 †httpd.confに NameVirtualHost *:80 <VirtualHost *:80> ServerName www.j2se.org ServerAlias j2se.org DocumentRoot H:\webroot1 <Directory "H:\webroot1"> AllowOverride All Order allow,deny Allow from all </Directory> CustomLog "H:\webroot1\logs\access.log" combined ErrorLog "H:\webroot1\logs\error.log" </VirtualHost> <VirtualHost *:80> ServerName www.hidekazu.info ServerAlias hidekazu.info DocumentRoot H:\webroot2 <Directory "H:\webroot2"> AllowOverride All Order allow,deny Allow from all </Directory> CustomLog "H:\webroot2\logs\access.log" combined ErrorLog "H:\webroot2\logs\error.log" </VirtualHost> としてやると、www.j2se.orgとwww.hidekazu.infoの2つ出来上がりました。このとき元のhost(hidekazu.dhs1.sst.ne.jp)にはpukiwiki/pukiwiki.phpがあって、www.j2se.orgにはない場合、www.j2se.org/pukiwiki/pukiwiki.phpとすれば、どうなるのでしょうか。 この場合は、表示されます。つまりwww.j2se.orgにない場合は、通常の設定があればそれを使用するのです。ですので、VirtualHost?ではなく通常の設定を消してしまえば、どこにもないので、表示はされません。ただこのときtomcatと連携している場合は、tomcatは表示されます。これは、tomcatのserver.xmlのHostの設定によります。 見せたくない場合は、server.xmlの<Hostで始まっているタグでname="localhost"とあるのですが、これを <host name="hidekazu.dhs1.sst.ne.jp" .... とします。次に、Apacheと連携しているということは、workers2.propertiesがあると思いますので、これに、[uri:/home/*]となっていたのを [uri:hidekazu.dhs1.sst.ne.jp/home/*] と変更してやります。するとwww.j2se.orgからはhomeは見えなくなります。 mkdir vhosts として、VirtualHost?用のディレクトリを作成します。 その中に適当にVirtualHost?ごとにファイルを作成します。上の例でいくと、j2se.confと、hidekazu.confで作成しました。その中身は<VirtualHost? *:80>から</VirtualHost?>までです。ファイルの中身が書き終えましたら次は、http.confを修正します。<VirtualHost? *:80>以下を消します。その代わりに、 Include vhosts/*.conf を設定しておきます。するとそのvhostsにあるファイルを読み込んでくれるので、管理が少し楽になります。設定は httpd -t -D DUMP_VHOSTS で確認してください。 Apache の設定 - 1つのホストで複数のhttp/httpsサーバを運用する SSL †インストールされてない場合は、http://www.openssl.org/source/からダウンロードしましょう。apacheのconf以下に、ssl.confがありますので、これのSSLCertificateFile?とSSLCertificateKeyFile?を参照してください。SSLCertificateFile?が証明書を示しており、SSLCertificateKeyFile?が秘密鍵を示しています。デフォルトでは、conf/server.crtとconf/server.keyです。もしかしたら、server.crtとserver.keyはssl.crtとssl.keyだたかもしれません。ではconf/server.keyで openssl md5 * > rand.dat openssl genrsa -rand rand.dat -des3 1024 > server.key SSLのCSR参照 次に、CSRを作ります。CSRとは、サイト証明書を発行するためのリクエストになります。confの下で作業します。 openssl req -new -x509 -days 365 -key ssl.key/server.key -out myserver.crt (openssl req -new -key ssl.key/server.key -out myserver.crt ベリサリンの場合) Country Name (2 letter code) [GB]:JP<リターン> State or Province Name (full name) [Berkshire]:Osaka Locality Name (eg, city) [Newbury]:Osaka-shi Organization Name (eg, company) [My Company Ltd]:Kaisya Co. Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname)[]:test.com Email Address []:test@test.com
http://ash.jp/sec/openssl_ca.htm クライアント証明書 †SSLで方法は記述していますが、phpのプログラムを動かすと、 ページを表示できません とIEで表示されました。FireFox?では Method Not Allowed と表示されるときがあります。ログを見てみると、 [error] SSL Re-negotiation in conjunction with POST method not supported! hint: try SSLOptions +OptRenegotiate とありますので、SSLOptions +OptRenegotiate?をつけてトライしたのですが、現象は変わらず。調べておりましたら、 apacheのバグらしく、2.2では直っているとのこと。使っているのは2.0でした。んーー うなっていてもしょうがないので、 http://issues.apache.org/bugzilla/show_bug.cgi?id=12355を参考にパッチを当てるか、postをgetに変えましょう。 一応2.0.54用ですが、下に添付してあります。ssl_engine_io.c,mod_ssl.h,ssl_engine_kernel.c 参考 http://framework.g.hatena.ne.jp/tukiichi/comment?date=20070214 拒否 †ドメインで拒否する場合 deny from .hoge.com .hoge2.com IPで拒否する場合 deny from 100.200. … 100.200.で始まるアドレスを拒否する うまくいかないときはAllowOverride? Noneになっていなか確かめましょう。 SSI †.htaccessに Options +IncludesNoExec AddType text/html .shtml AddHandler server-parsed .shtml として、インクルードしたいファイルに <!--#include file="test2.htm"--> と記述します。IncludesNoExec?をIncludes にすることも可能ですが、この場合EXECコマンドが使えるので、セキュリティを考慮してください。 帯域制限 †mod_bandwidthは1.3で2.0には対応していないらしいので、bwshareをインストールしてみます。ただ、for Apache 1.3.x and 2.0.44となっているので、2.0.53はどうなんでしょうか。http://www.topology.org/src/bwshare/README.html 既存のトラフィック制御モジュール ab †Apache BenchというApacheのベンチマークツールです。たとえば ab -n 100 -c 10 -w http://localhost/index.html > kekka.html とすると100回のリクエストを10の同時接続でテストします。 -A user:passwordを追加すれば認証のあるページもテストできます。 http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15b.html セキュリティ †とりあえずこちらを一読Apacheの安全を確保するための10の対策 Apacheのバージョン情報を隠す †ServerSignature Off http://www.ne.jp/asahi/tokyo/shin/linux/apache/apache01.html 情報の抑止 †ServerTokens Prod デフォルトはFullなので、Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod?/1.2 なことを教えちゃいます。
http://httpd.apache.org/docs/2.2/ja/mod/core.html#servertokens mod_security †Web Application Firewall (WAF)というもので、これはapacheに組み込んで使うのですが、ホストのチェックやURLパラメータチェック、POSTチェック等をしてくれます。ぜひ組み込んでおきましょう。
マニュアルです。http://hp.vector.co.jp/authors/VA027424/mod_security/v_1_9_stable_ja_.html wget http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz tar xzvf modsecurity-1.8.7.tar.gz cd modsecurity-1.8.7 1.9.4がでてますが、同じようにします。 ここにINSTALLファイルがありますので、一読しておきましょう。 cd apache2 apache1系の場合はcd apache1です。 /usr/local/apache2/bin/apxs -cia mod_security.c するとhttpd.confに LoadModule security_module modules/mod_security.so が設定されていると思います。 ftp://xmlsoft.org/libxml2/libxml2-2.6.28.tar.gz tar xzvf libxml2-2.6.28.tar.gz cd libxml2-2.6.28 ./configure --with-zlib --with-html --with-xpath --with-xptr --with-xinclude make make install ではmodsecurity-apache_2.1.1をインストールしましょう。 wget http://www.modsecurity.org/download/modsecurity-apache_2.1.1.tar.gz tar xzvf modsecurity-apache_2.1.1.tar.gz 次にapache2ディレクトリにある、Makefileを編集します。 #top_dir = /apps/apache22 top_dir = /usr/local/apache2 INCLUDES=-I/usr/include/libxml2 ではインストールです。 make make install すると/usr/local/apache2/modulesにmod_security2.soができてますので、httpd.confに LoadModule security2_module modules/mod_security2.so を追加します。apacheを再起動したら、 Cannot load /usr/local/apache2/modules/mod_security2.so into server: /usr/local/apache2/modules/mod_security2.so: undefined symbol: xmlFree と怒られましたので、 LoadFile /usr/lib/libxml2.so を追加しました。 ではルールをhttp://www.modsecurity.org/download/modsecurity-core-rules_2.1-1.4.tar.gzよりダウロードし、 mkdir /usr/local/apache2/conf/modsec cd /usr/local/apache2/conf/modsec tar xzvf modsecurity-core-rules_2.1-1.4.tar.gz とし、httpd.confに <IfModule security2_module> Include conf/modsec/*.conf </IfModule> を付け加えておきます。http://www.modsecurity.org/documentation/ModSecurity-Migration-Matrix.pdfに1系からの移行についてまとめがあります。 ではhttpd.confに設定します。1系 <IfModule mod_security.c> SecFilterEngine On <-フィルターエンジンをON SecFilterScanPOST On <- POSTの解析をON SecFilterDefaultAction "deny,log,status:406" <-デフォルトのアクションの設定です。denyで拒否し、logでログに残し、エラー画面は406です。 SecFilter /etc/passwd <-index.html?/etc/passwdとかリクエストにこの文字列が入っている場合はエラーです。 # script tag SecFilter "<[[:space:]]*script.*>" SecFilter "<[[:space:]]*style.*>" SecFilter "<[[:space:]]*link.*>" SecFilter "<[[:space:]]*body[[:space:]]*>" # suspected protocol SecFilter "javascript:" SecFilter "vbscript:" SecFilter "about:" # call script SecFilter "expression\(" SecFilter "&{.*};" # event SecFilter "onError" SecFilter "onUnload" SecFilter "onBlur" SecFilter "onFocus" SecFilter "onClick" SecFilter "onMouseOver" SecFilter "onMouseOut" SecFilter "onSubmit" SecFilter "onReset" SecFilter "onChange" SecFilter "onSelect" SecFilter "onAbort" # SecFilterSelective REQUEST_METHOD "!(GET|POST|HEAD)" <-リクエストがGET,POST,HEAD以外はエラー SecAuditEngine RelevantOnly <-RelevantOnlyでルールと一致したものがログに落ちます。 SecAuditLog /usr/local/apache2/logs/modsec.log <-ログ </IfModule> 一部単語の最後の文字が全角になってますが、これはそのままですと引っかかって登録できないので変えてます.... またルールについては、下記のURLから参考にさせてもらいました。WebDAVの場合はメソッドで、COPY,MKCOL,MOVE,PROFIND,PROPATCH,LOCK,UNLOCK,DELETE等追加しないと動きません。 またhttp://www.modsecurity.org/download/modsecurity-rules-current.tar.gzからダウンロードして、 解凍した*.confを apache2/conf/modsec/ にでもコピーして Include conf/modsec/*.conf としておけば、logsディレクトリに modsec_audit.log が出力されます。ただし SecFilterSignatureAction "log,pass,msg:'Command execution attack'" のようにpassになってますので、denyにでも変えておきます。
もっと厳しくするには、 DOS対策 †mod_evasiveをhttp://www.zdziarski.com/projects/mod_evasive/よりダウンロードします。Apache2の場合 wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz tar xzvf mod_evasive_1.10.1.tar.gz cd mod_evasive /usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c するとhttpd.confに LoadModule evasive20_module modules/mod_evasive20.so が追加されていました。ではディレクティブです。 <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 </IfModule> またオプションとして、 Optionally you can also add the following directives: DOSEmailNotify you@yourdomain.com DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" DOSLogDir "/var/lock/mod_evasive" も指定出来るそうです。このあたりの細かい内容はREADMEに記述してあるのですが、上記の設定では、
同ページで、1秒間に(DOSPageInterval?)に2回以上(DOSPageCount)、
もしくは同サイトで1秒間に(DOSSiteInterval?)に50回以上(DOSSiteCount)リクエストがあった場合に、
10秒(DOSBlockingPeriod?)ブロックすると言ったような設定になります。 libwww-perl †ログを見ていると、スパムでユーザエージェントにlibwww-perl/5.65とかやってくる場合があります。Googleでははじいているようですので、 はじいちゃいましょう。 SetEnvIf User-Agent "^libwww" deny_ua Order allow,deny Allow from all Deny from env=deny_ua ついでにLWP::Simpleも止める場合は、 SetEnvIf User-Agent "^LWP::Simple" deny_ua を追加しておきます。
Googleにもアクセス拒否され、スパム送信源と化した「libwww-perl」とは? ロボット †ロボットに巡回してほしくない場合に、サイトのトップにrobots.txtを作成します。 User-agent: * Disallow: /secret/ ただ無視する検索エンジンもあります。
参考 TIPS †インストールされているモジュールを調べる †httpd -l あと httpd -M とか。 httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName?というエラーがでた。 †httpd.confのservernameを直しましょう。 Indexリストで特定のファイルを非表示にしたい。 †IndexIgnore? *.hoge ヘッダ、フッタをすべてのページにつけたい †SSI以外にmod_layoutが使えるかもしれません。ちょっと使ってないので、わからないですが。他にもphpでヘッダや、フッタをincludeするとか。どれが一番楽でしょうね。 File 'NONEXISTENT/charsets/?.conf' not found †エラーログにエラーが出まくってました。どうもphpをインストールするとき、--with-mysql=/usr/local/mysqlをつけてなかったからみたいです。詳しくは、 http://www.hamusuta.net/mame/viewkizione.php?kizino=04022940416e4111521 プロセスIDの指定 †PidFile logs/httpd.pid 起動中のhttpdに設定を反映させる~ †apachectl graceful 別のURLに転送させたい †Redirectを使います。 http://www.itmedia.co.jp/help/tips/linux/l0397.html HTTPメソッドで制限をかけたい †GETとPOSTを制限したい場合は.htaccessで <Limit GET POST> order deny,allow deny from all allow from 192.168.1 </Limit> とか 追加でモジュールを入れたい †たとえばmod_rewrite cd httpd-2.0.54 mkdir work cp -ip modules/mappers/mod_rewrite.c work/ cp -ip modules/mappers/mod_rewrite.h work/ cd work /usr/local/apache2/bin/apxs -c mod_rewrite.c /usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la mod_proxy cd httpd-2.0.54 mkdir work cp -ip modules//proxy/mod_proxy.c work/ cp -ip modules//proxy/mod_proxy.h work/ cd work /usr/local/apache2/bin/apxs -c mod_proxy.c /usr/local/apache2/bin/apxs -i -a -n proxy mod_proxy.la ん?動かしたらエラーがでたぞ。 [warn] proxy: No protocol handler was valid for the URL /hoge. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. これだけではだめなのか。では /usr/local/apache2/bin/apxs -cia mod_proxy.c proxy_util.c /usr/local/apache2/bin/apxs -cia proxy_connect.c /usr/local/apache2/bin/apxs -cia proxy_http.c で動きました。素直に--enable-proxyをつけてコンパイルしましょう。 IPアドレス制限とユーザー認証 †Satisfyを使います。
IPアドレス制限とユーザー認証の組み合わせ RDF(Resource Description Framework)を開きたい †AddType application/xml .rdf AddType text/xml;charset=UTF-8 .rdf リンク †http://httpd.apache.org/ 参考書籍 †Apache2設定&管理 逆引きリファレンス カテゴリ †コメント †
|