タグ「Apache」が付けられているもの

WordPressでFTP情報の入力を省略する方法

WordPress

WordPressで自動アップデートやプラグインのインストールの時、以下のようなメッセージが出る。

ftp入力

セキュリティー的にまぁ当たり前といえば当たり前だが、いちいちめんどくさい(^^;)

しかも、これをやろうと思ったら、サーバーのFTPポートを開けておかなければならない。FTPS(SSL)でも結局は同じこと。

普段サーバーへはSCPでアップロードしているので、余計なポートは開けたくない。

ということで、何かいい方法はないかと、Google先生に聞いてみたところ、以下のページを見つけた。

Movable Type

つい先日、サーバの負荷がピークに達し、自宅サーバが落ちてしまった。

落ちた頃のApacheのアクセスログを見てみると。。。。

Movable Typeの検索プロセスである、mt-search.cgiが、Googleクローラーによって鬼のように叩かれていた。。。

mt-search.cgiがサーバのリソースを食いつぶし、サーバごと落ちてしまった orz

このmt-search.cgi、サイト上の検索だけでなく、タグをつけたリンクもこのCGIを利用している。

で、このmt-search.cgiがめちゃめちゃ重い。なんでこんなに重いの?っていうくらい重い。

「FAST ESP Document Retriever」が酷い

最近、「FAST ESP Document Retriever」というクローラ?がすさまじい勢いで自宅サーバにサクセスしている。

正確にUser-Agentを書くと、


FAST ESP Document Retriever/CVS HEAD 2008-01-02 20:19:11 UTC

である。

このクローラ、baiduより酷く、すさまじい勢いでクロールしていくのです。

上記クローラの正体は不明。

ちなみにこのクローラ、GETやPOSTではなく、HEADメソッドでアクセスしてくるので、それほど負荷にはならないものの、httpdプロセスは立ち上がってしまうわけで。。。。

前々から思っていたのだが、海外の検索エンジンのクローラーは行儀が悪いのが多い!

というのも、自宅サーバのApacheのアクセスログを[tail -f access_log]で見ていると、baiduとかyetiとかが、サーバーの負荷とか考えてないだろ!というくらいにアクセスしてくる!


  • baidu (中国)

  • Yeti/Naver (韓国)

  • など


しかも、これらの検索クローラーは、robots.txtが意味をなさない場合が多い。

それにこれらの海外クローラはアクセスしてきても、それらをインデックスしているページから飛んできてもほとんど意味がない。。。言語違うし・・

百害あって一利なし!!

ということで、Apacheでアクセスそのものを拒否ることにした。

Apacheの設定は以下の通り。

XAMPPのApacheプロセスがクラッシュ

  • 投稿日:
  • by
  • カテゴリ:

いつもPHPの開発はWindowsのローカルマシンでやっていて、環境はXAMPPEclipseを使用している。

EclipseではPHPプラグインを入れているので、PHPでのコード変更したらPHPブラウザで随時確認できるという便利さなのだが、CakePHPを開発している時に、XAMPPのApacheプロセスがクラッシュしてしまう現象に悩まされてしまった。

Apacheのエラーログには以下のように出ていた。

[Sat Mar 07 18:07:19 2009] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Sat Mar 07 18:07:19 2009] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Sat Mar 07 18:07:22 2009] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Sat Mar 07 18:07:22 2009] [crit] (2)No such file or directory: unable to replace stderr with /dev/null

え??、Windowsに/dev/nullなんてないよ?なんて思いつつ、原因をネットで検索して見るも、あまり参考になる記事は見つからず。

CakePHPをサブディレクトリで運用する方法

CakePHPのマニュアルなどには、「http://your-domain/」という風にルートディレクトリで運用するやり方しか載っていないのですが、実際問題、そんなこと滅多にないはずです。ほとんどが、「http://your-domain/tutorial/」などのサブディレクトリで運用することが大半だと思います。

サブディレクトリで運用する場合のやり方を自分自身の備忘録という意味でも、メモっておきます。

まず、前提として、Apache等のWEBサーバのエイリアスを自分で設定できる環境での話です。

たとえば、CakePHPの「app/webroot/index.php」をトップとし、http://your-domain/turorial/でCakePHPのホームにアクセスしたい場合、以下のようにApacheでエイリアスを組みます。

Alias /turorial /hogehoge/cakeinstalldirectory/app/webroot

次に、app/webroot/.htaccessに以下を追加します。

RewriteBase /tutorial

つまりは以下のようになります。

mod_rewriteの「%2F」問題の解決法

  • 投稿日:
  • by
  • カテゴリ:

いや~、はまったはまった。。。

mod_rewriteを使った場合にクエリーに「%2F」が含まれていてうまく動かない場合の解決方法です。

PHPで以下のようなスクリプトをくんだとします。

index.php

< ?php
echo $_GET["pre"];
echo $_GET["path"];
?>

そして、

以下のように「.htaccess」にmod_rewrite構文を設定していたとします。

RewriteEngine On
RewriteRule ^hiroshima/(.*)$ index.php?pre=hiroshima&path=$1 [L]

ここで、「http://*******/hiroshima/aiueo/」にアクセスすると、きちんとアクセスできます。

この場合、mod_rewriteによって実際には、「http://****/index.php?pre=hiroshima&path=aiueo」にアクセスします。

しかし、

http://*******/hiroshima/aiueo%2Fkakikukeko/

にアクセスすると、うまくアクセスできなくなってしまいました。

mod_rewriteによって、

http://****/index.php?pre=hiroshima&path=aiueo%2Fkakikukeko

というURLに実際にはアクセスするのですが、「%2F」、つまりは「/(スラッシュ)」をURLエンコードした文字列を含む場合、うまくデコードしてくれないようなのです。

この解決方法としては、

RSSフィードをFeedBurnerに切り替えたと言うことで、今までのRSSフィードをApache側でリダイレクトすることにしました。

FeedBurnerで読み込んでいるフィードは本物?のフィード(atom.xml)なので、FeedBurner用にもう一つフィード(atom2.xml)を作ることにしました。

インデックステンプレートに新規でフィードを追加します。

出力ファイル名を別名の「atom2.xml」とでもします。

で、

私のアフィリエイトブログはいくつかあるのですが、どれも「数打ちゃ当たる」作戦でやっています。コンスタントにそれなりの結果は出しているのですが、やはりこの辺で頭打ち状態。しかも下記のサイトは、Googleから嫌われてしまった?らしく、クロールが一切来なくなってしまった。確かにGoogleウェブマスターツールで見ても、クロールが最終日が4ヶ月前となっている。さらに、インデックスもその最終日より以前になっている。


  • iPod で快適音楽生活!


これは本気で稼ぎに行こう!!

と決意しました(^^;)

で、その最初のアプローチとして、Googleに再度クロールしてもらうよう、サイトのドメインを変更することにした。ドメインを変更といっても、今まで、

http://www.mutliburst.net/ipod-prospect/

だったものを、
http://ipod.mutliburst.net/

という、サブドメイン変更+コンテンツのルート化です。