トップ(最新)

nDiki : .htaccess

.htaccess

Apache においてディレクトリ毎に設定を変更するための「分散設定ファイル」のデフォルトファイル名

AccessFileName ディレクティブによってファイル名を変更することもできるが、変更されることはほとんどない。

スポンサード リンク

Related term

1999年12月18日 (土)

Apache での PostgreSQL を使った認証 このエントリーを含むはてなブックマーク

先日インストールした PostgreSQLApache認証に使ってみる。

まずは PostgreSQL の設定。 自分自身を登録。

 $su -
 #su postgres
 $createuser 自分のアカウント

次に Apache の動作アカウントである www-data を登録したい。 が、ハイフンのあるユーザ名はうまく動かないので (createuser は成功する)、www-data と同じユーザIDで wwwdata を用意しておく。 /etc/passwd と /etc/shadow に www-data と同じ ID で www-data より先に wwwdata アカウントを追加。

そして postgres ユーザで createuser。

 $createuser wwwdata

次にデータベースの作成。 自分自身のアカウントで以下を行う。

 $createdb wwwdb
 $psql wwwdb -c 'create table passwd ( UserID text, Passwd text );'
 $psql wwwdb -c 'grant all on passwd to 自分;'
 $psql wwwdb -c 'grant all on passwd to wwwdata;'
 $psql wwwdb -c 'insert into passwd values ( '自分', '暗号化パスワード' );'

暗号パスワードはとりあえず htpasswd でつくったものを指定。

次に postmaster が TCP/IP を許すようにする。 Debian では /etc/postgresql/postmaster.init で PGALLOWTCPIP=yes を指定。 書き換えたら /etc/init.d/postgresql restart する。

Apache の方は、/etc/apache/httpd.conf の LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so を有効にして再起動しておく。

そしてここでは認証の設定を .htaccess によって行ってみる。

 Auth_PGhost      127.0.0.1
 Auth_PGport      5432
 Auth_PGdatabase  wwwdb
 Auth_PGpwd_table passwd
 Auth_PGuid_field userid
 Auth_PGpwd_field passwd
 AuthName         "WWW Authentication"
 AuthType         Basic
 require valid-user

と書く。 これで Apache認証できた。 めでたし、めでたし。

スポンサード リンク


[ 12月18日全て ]

2005年9月12日 (月)

nDiki のコメント欄にコメントスパム このエントリーを含むはてなブックマーク

更新チェックをしたら、nDiki にコメントが入っていたので「どれどれ」と見てみる。

うぎゃー。

丁度攻撃を受けているところやんけ。

NaneyOrgWiki にもリンクスパムな書き込みがちょくちょくあるのだが、幸い絨毯爆撃的なものは受けていない。 今回もそんな感じでたかだか数十回ぐらいの書き込みだろうと、.htaccess で接続元のIPアドレスを deny しつつコメントを消していく。

……はっ、速い。

追いつかん。終わらん。

マジ攻撃ですか。IP アドレスもかなり散らしてきてますか。 あきらめて、CGI プログラムを移動して書き込みできないように。

その後もしばらく連続アクセスがあったが、途中で気がついたのか止まった。

ということで、現在一時的にコメントの全文表示・新規不能状態。

くっつき BBSを使っているのだが、まさかこれが攻撃されるとは。 そろそろ DiKicker 自体にコメント機能を直接実装しようとしていたところだったのだが、いろいろ対策を打たないといけないと思うと萎えるなあ。


[ 9月12日全て ]

2006年3月3日 (金)

サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更 このエントリーを含むはてなブックマーク

www.naney.org をホスティングしているサーバが重いと思ったら、同じサーバ上のあるユーザの CGI プログラムが5プロセス無限ループしてるっぽい……。 load average 20前後。

あおりを受けて、nDiki が大変なことになっている。

nDikiSpeedyCGI を使っているのだが、バックエンドの speedy_backend が捌ききれず、フロントエンドの speedy が大量に待ちに入ってしまっている。

MaxBackends を調整しても駄目(下手にバックエンドプロセス数を増やしても、結局処理が追いつかない)。

ということで急遽対策。

@ 高負荷時にはてなブックマークへのアクセスを停止

load average が高い時には、はてなブックマーク上の検索結果を表示させるために行なっているはてなブックマークへのアクセスを休止するように変更。 24時間に設定してあるキャッシュの有効期限が切れていても、高負荷の時にはアクセスにいかないようにする。

これで DiKicker の処理時間を短縮。相手側サーバへの負担も軽減。

@ Google Desktop からのアクセスを一時的に拒否

おかげ様でここ最近 nDikiRSS へのアクセス数が増えてきている。 ありがたい事である。

しかしながら DiKickerRSS レスポンスは、あまり賢くなく毎回データベースから最新記事情報を抽出して生成しているため、それほど処理が速くない。

なのでアクセス頻度を高くしている RSS リーダがどこかで同時に起動しているとちょっとしんどい。 特にここ最近 Google Desktop からのアクセス数が増えている感じ。

さすがに今日はサーバの負荷が高く処理が追いつかなくてどうしようもないので、一時的に Google Desktop を拒否することに。

.htaccess に設定を追加。

 BrowserMatch "Google Desktop" denybrowser
 deny from env=denybrowser

近日中に、RSS 処理を改善してすぐに解除する予定。

@ robots.txt に Crawl-delay: を追加

効果があるかどうかは不明だが、Crawl-delay: に対応するというクローラ (Slurp、msnbot) 向け設定を追加。

 User-agent: Slurp
 Crawl-delay: 20

 User-agent: msnbot
 Crawl-delay: 20

アクセス数としては Googlebot と Slurp がダントツ。 しかし Google は無下にする訳にもいかないしなぁ。


[ 3月3日全て ]

2006年7月22日 (土)

Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 このエントリーを含むはてなブックマーク

入社してから社内情報共有の一環として

といろいろ手をつけてきた。 次に狙っているのは SBS である。

Wiki社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。

はてなブックマークのような公開サービスは

  • タグ・コメント・傾向などが外に出るのはよろしくない
  • あるいは、それを気にして活用されない
  • そもそも社内リソースについてはブックマークできない

という点から、今回は利用できない。

ということで社内に SBS を設置したい考えている。

最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQLMySQL 用で、これを修正するのが面倒なので断念。

次に Perl + SQLite で動く Rubric を試してみることにした。

@ Rubric 0.140

Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。

  1. CGI プログラムを動かすディレクトリを決める (以下 $RUBRIC)
  2. Rubric tarball の bin/rubric.cgi を $RUBRIC/ にコピーし、必要なら #! を修正する。
  3. Rubric tarball の templates ディレクトリを $RUBRIC/ にコピーする。
  4. Rubric tarball の style/rubric.css を $RUBRIC/ にコピーする。
  5. Rubric tarball の etc/rubric.yml を $RUBRIC/ にコピーして環境に合わせて編集する。
  6. データベースを初期化する。0.140 には makedb.pl が同梱されていないので、0.13_01 の bin/makedb.pl を参考に perl -MRubric::DBI::Setup -e 'Rubric::DBI::Setup->setup_tables' で初期化する。ちなみに 0.140 付属の rubric コマンドで rubric db -s してみたが、これはうまく動かなかった。
  7. 必要に応じて .htaccess を作成・編集し rubric.cgi を CGI プログラムとして実行できるようにする。またその他アクセスされたくないファイルを deny するようにしておく。

これで OK。

rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに

 rubric user -a ユーザ名

でアクティベートする。

Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。

基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。

とりあえず Rubric はおいておいて、他のものも試してみることにするか。


[ 7月22日全て ]

2007年4月5日 (木)

Referer spam は # がお好き? このエントリーを含むはてなブックマーク

Referer spam が相変わらずきている。 今まで個別に .htaccess で拒否している。

ところでログを見ていてしばらく前から気になっていたのだが、なぜだか知らないがうちにくる Referer spam

 http://www.example.com/#

のような最後に # がついた(通常は送られてこない) Referer URL を送ってきている。

サヨウナラ。

 SetEnvIf Referer "http://[^/]+/#" denyreferer
 deny from env=denyreferer

[ 4月5日全て ]

2008年8月23日 (土)

フィード向け AdSense を追加してみた このエントリーを含むはてなブックマーク

Google AdSenseで「フィード向け AdSense」が利用可能になったので、nDiki に追加してみた。

Google AdSenseにログインして nDikiURL を指定してフィードを登録すると、FeedBurner 上にフィードが作成される。

www.naney.org 側では nDiki のフィードへのアクセスがきたら、FeedBurner 上のフィードへリダイレクトするように設定する。 ただし FeedBurner から巡回がきた際にはリダイレクトせずに、nDiki のオリジナルフィードにアクセスさせる。

www.naney.org のトップディレクトリの .htaccess に以下を追加。

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner
 RewriteRule ^diki/d/rss\.rdf$ http://feedproxy.google.com/nDiki [L,R]

思ったよりあっけなく設定終了。

今のフィード URL が既にフィードリーダーに登録してもらっていることを考えて nDiki (DiKicker) に「FeedBurner 向けに別 URL でのフィード出力機能」と「現在のフィード URL からのリダイレクト機能」を追加する必要があるなと思っていたのが、mod_rewrite が使えれば手間無しだった。

nDiki のフィードと同様の内容に広告が挿入されたバージョンのフィードが http://feedproxy.google.com/nDiki で表示されることを確認。

せっかくなので FeedBurner のレポート機能もチェックしてみることにしよう。


[ 8月23日全て ]

2008年8月30日 (土)

XAMPP デカすぎなので Uniform Server をチョイス このエントリーを含むはてなブックマーク

デモ用 Web サイトのとりまとめ。 必要な時に ZIP ファイルを Windows 上で展開してすぐ使えるようにしておきたい。 インストール不要Web サーバも一緒に入れておきたい。

ということでポータルな Apache を物色。WAMP である必要はなし。 MicroApache が小さくて良さそげなのだが公式サイトがつながらない。

XAMPPXAMPP Lite でもデカすぎ。

ということで今回は Uniform Server 3.5 をセットにすることにした。 ZIP した状態で 14MB ぐらい。

展開して Server_Start.bat を実行すれば Apache が起動する。 デフォルトで W ドライブを仮想ドライブとして subst して動く。 違うドライブに割り当てて起動したい場合は Disk Start.vbs を使う。ダイアログが表示されるのでそこでドライブレターを指定すれば OK。

止める時は Stop.bat。

あとは udrive/www 以下に Web コンテンツを置けば良い。 udrive/www/.htaccess で 127.0.0.1 からしかアクセスできないようになっているので必要があれば変更する。

まとまったら ZIP ファイルにしてどこかに置いておけば、他の PC でも展開するだけでデモ用 Web サイトを準備できる。

Stop.bat の実行を忘れやすいので注意。


[ 8月30日全て ]

スポンサード リンク

■よく検索されるキーワード

perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 15.09785s / load averages: 0.24, 0.26, 0.28
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)