2009年 11月 の記事
bindは標準で named-checkzone named-checkconf などのエラーチェックツールが付属してくる。 でもこれはゾーンファイルやコンフィグファイルにsyntaxなエラーがあるかチェックするだけ。 DNSはけっこうテキトーな設定でもとりあえず動いてしまい、infoレベルのsyslogにはエラーを吐かないことも多いので、いま一歩詳細なチェックツールを使っておいたほうがいい。 dnswalk http://sourceforge.jp/projects/sfnet_dnswalk/ このtarボールは直下に解凍されてしまうので、ディレクトリを掘って解凍すること。 Net::DNSが必要 cpan install Net::DNS perlスクリプトなのでそのまま実行可能。ただperlへのパスが奇異なのでそのままでは動かない。 vi dnswalk #!/usr/contrib/bin/perl ↓ #!/usr/bin/perl chown root.root dnswalk cp dnswalk /usr/bin # dnswalk example.com. Checking example.com. BAD: SOA record not found for example.com. BAD: example.com. has NO authoritative nameservers! BAD: All zone transfer attempts of example.com. failed! 0 failures, 0 warnings, 3 errors. - [ 続きを読む ]
バーチャルホストが多くなってくると、同じ設定を繰り返すことが無駄に思えて自動化・構造化したくなってくるのが人の情というもの。 バーチャルホストを動的に割り当てる方法には、mod_rewrite で強制的に割り当てる方法と、mod_vhost_alias を使う方法があるけれども、返す環境変数がそれぞれ異なってしまう問題がある。 http://sub.example.com を /home/exmaple.com/plublic_html/sub/ に割り当てる際のバーチャルホスト設定として、下記の3種の方法を試し、その際に返すDOCUMENT_ROOTを取得してみた。 (1) VirtualHost <VirtualHost *> DocumentRoot /home/example.com/public_html/sub/ ServerName sub.exmaple.com </VirtualHost> 結果 /home/example.com/public_html/sub/ (2) mod_rewrite <VirtualHost *> DocumentRoot /home/example.com/public_html/ ServerName example.com ServerAlias *.example.com RewriteEngine On RewriteCond %{HTTP_HOST} ^[^.]+\.example\.com$ RewriteRule (.*) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.example\.com(.*) /home/example\.com/public_html/$1/$2 [L] </VirtualHost> 結果 /home/example.com/public_html/ (3) mod_vhost_alias UseCanonicalName Off VirtualDocumentRoot /home/%2+/public_html/%1 結果 /home 以上のように、(2)または(3)の設定で、DOCUMENT_ROOTを、(1)の状態で扱うことはできない。 この不具合によって、環境変数を参照するCGIやモジュールに正常な動作は期待できない。 mod_vhost_alias のこの不具合はbugzillaで報告されているが、解消される様子はない。 https://issues.apache.org/bugzilla/show_bug.cgi?id=26052 具体的には下記のように環境変数が異なる。 ■vhost <VirtualHost *> DocumentRoot /var/www/html/exmaple.com/public_html/ ServerName exmaple.com </VirtualHost> DOCUMENT_ROOT="/var/www/html/exmaple.com/public_html/sub/" GATEWAY_INTERFACE="CGI/1.1" HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" HTTP_ACCEPT_CHARSET="Shift_JIS,utf-8;q=0.7,*;q=0.7" HTTP_ACCEPT_ENCODING="gzip,deflate" HTTP_ACCEPT_LANGUAGE="ja,en-us;q=0.7,en;q=0.3" HTTP_CONNECTION="keep-alive" HTTP_HOST="sub.exmaple.com" HTTP_KEEP_ALIVE="300" HTTP_REFERER="http://sub.exmaple.com/" HTTP_USER_AGENT="Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)" PATH="/bin" QUERY_STRING="" REMOTE_ADDR="192.168.10.2" REMOTE_PORT="65356" REQUEST_METHOD="GET" REQUEST_URI="/printenv.cgi" SCRIPT_FILENAME="/var/www/html/exmaple.com/public_html/sub/printenv.cgi" SCRIPT_NAME="/printenv.cgi" SERVER_ADDR="192.168.0.2" SERVER_ADMIN="admin@exmaple.com" SERVER_NAME="sub.exmaple.com" SERVER_PORT="80" SERVER_PROTOCOL="HTTP/1.1" SERVER_SIGNATURE="" SERVER_SOFTWARE="Apache/2.2.14 (Unix)" ■rewrite <VirtualHost - [ 続きを読む ]
net2ftp バージョン0.98にはSafariやIEでアクセスした際にダウンロードするファイル名がすべてindex.phpになってしまうバグがある。 この問題は下記でも指摘されているが修正されていない。 http://www.net2ftp.org/forums/viewtopic.php?id=2960 includes/filesystem.inc.php を下記に修正 header("Content-Type: " . $content_type); header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); if ($net2ftp_globals["browser_agent"] == "IE") { header("Content-Disposition: $content_disposition; filename=\"" . $filename_html . "\""); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: public"); } //if ($net2ftp_globals["browser_platform"] == "Mac"){ if ($net2ftp_globals["browser_agent"] == "Safari" || $net2ftp_globals["browser_agent"] == "IE"){ header("Content-type: application/force-download"); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"".$filename_html."\""); - [ 続きを読む ]
本日から鯖缶日誌を開始します。 - [ 続きを読む ]