2006年10月26日木曜日

patchコマンドでパッチを適用する


誰もが当たり前のように使っているpatchコマンド。分かってるようで実は意外と分かってなかったりします。

http://x68000.q-e-d.net/~68user/unix/pickup?patch

こちらのページでpatchコマンドの使い方、つまりパッチ適用のやり方が丁寧に説明されており、参考になります。


それとpatchコマンドはWindowsでも使えます。その解説は下記のページが参考になります。



http://www.koikikukan.com/archives/2006/01/22-235056.php

それからこちらのサイトではpatchコマンドでよく使われる「-p」オプションについても詳しく説明されています。

http://www.koikikukan.com/archives/2006/02/17-235135.php

2006年10月20日金曜日

MySQLチューニングアドバイスツール「mMeasure」


こちらのブログ記事で、MySQLのチューニングアドバイスツール「mMeasure」というものがあることを知りました。



http://www.multiburst.net/project-multiburst/archives/2006/07/31/1119.php




MySQLは仕事でも個人でもバリバリ使ってるのでさっそく導入してみました。



インストール方法は上記のページで詳しく解説されているので割愛します。



インストールは無事完了し、早速稼動開始。



mMeasureが生成するウェブページではMySQLの設定情報や負荷状況がグラフにて分かりやすく見ることができ、また設定と負荷に応じたチューニングのアドバイスも表示されます。



それから1日1回、チューニングアドバイスメールがmMeasureから自動で送信されます。
たとえばこんな感じ。



--------------------------------------



【最大接続率】 6.00 %
 最大接続数に対してmax_connectionsの設定が大きすぎます。



【テーブルキャッシュ使用率】 100.00 %
 table_cacheのサイズを増やすことで性能が改善します。



--------------------------------------




これまでmy.cnfの値をいじることは何度かありましたが、それが果たして正しいのかどうかまで調べるに至っていませんでした。それをmMeasureがやってくれるので、これはすごく助かります。(mMeasureのアドバイスは絶対に正しい、というわけではありませんが)



ウェブアプリのパフォーマンスが悪いなぁ、と感じている方、MySQLのチューニングをやってみたいと思う方、mMeasureを使ってみるといいかもしれません。

2006年10月19日木曜日

Zend Optimizerを導入した


もともと有償だった(と思う)Zend Optimizerが、いつの間にか無償になっていました。調べてみるとかなり手軽に導入できるようなので、早速導入してみます。



具体的な手順は他のサイトが詳しいので割愛します。ていうかむちゃくちゃカンタンです。インストールは対話形式だし。あっという間に導入完了です。
さらに、ご丁寧にもインストーラーがapacheの再起動までやってくれちゃいます。



インストールが完了したので、さっそくチェック。
phpinfoを見ると、powered byのとこに「 with Zend Optimizer v3.0.1, Copyright (c) 1998-2006, by Zend Technologies」が追加されてる。また、Configureの項にも「Zend Optimizer」が追加されてるのを確認。どうやらうまく導入できたようです。



早速、Zend Optimizerの効果のほどを体感してみます。
自分のサイトはほぼすべてのページがphpだったり、htmlにphpを埋め込んであるため「最大で40%の高速化が見込める」というZend Optimizerが機能すれば体感速度はかなり速くなるはず。。。というわけで、自分のサイト内を徘徊してみます。




・・・速くなってる。気がする。。。




そのとき同時にアクセスしてる人数とか、ネットワークの調子とか、いろんな要素が介在するのでZend Optimizerがどのくらい効果があったのかははっきりは分かりません^-^; でも結構速くなってる気がします。(こういう場合、Apache benchとかで導入前・導入後で測定したりすればいいんだろうか?)




何はともあれ、特に害もないようですし、手軽なのでphp使ってる人はぜひ導入するといいと思います。



 




P.S.
ローカルにもZend Optimizer入れてみよう。っと思ってxamppで動いてるphpに組み込もうと思ったんですが、既にデフォルトで入ってました。php.iniのZend Optimizer関連の設定のコメントアウトをはずすだけです。
ついでにeAccelerator(これも高速化のモジュール)などもxampp標準で入ってるみたいです。うーん、xamppすごい。



 



参考ページ:
http://www.zend.co.jp/
http://vine.1-max.net/zend.html
http://gigazine.net/index.php?/news/comments/20060701_loadavarage_battle/

2006年10月18日水曜日

mt-tb.cgiの名前を変えてスパム対策

これ、前からやろうと思ってずっと忘れてたんですが、ようやく実行に移しました。

2006年10月17日火曜日

Baiduspiderのアクセスを拒否する


ここ最近、サーバーの負荷が突然高くなることが何度かあり、おかしいと思ってログを調べてみたところ、「Baiduspider+(+http://www.baidu.com/search/spider.htm)」というユーザーエージェントのアクセスが大量にあることが判明。



さっそくググってみたところ、このBaiduは中華系のサーチエンジンロボットだとか。
中華系サーチエンジンロボットからの大量アクセスなんてリソースの無駄遣いにしかならないので、さっそくアクセス拒否しました。



http://postcard.blog.ocn.ne.jp/itazura/2006/09/baiduspider_5e4c.html



こちらのページを参考に(ていうかそのまんま)してapacheで拒否するようにしました。それから数日経ちましたが、だいぶ負荷が減りました。



追記:
<Location>を使ってbaiduspiderを拒否したんですが、その設定を加えた後、なぜか.htaccessが無効になってしまっていました。<Location>は<Directory>より優先されるようで、それが影響してAllowOverride Allが効かなくなっていたようです。



というわけで、こんな感じに書き直しました。



------------------
SetEnvIf User-Agent Baiduspider baidu_robots



<Directory />
    Options FollowSymLinks...
    AllowOverride All
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <Files *>
        Deny from env=baidu_robots
    </Files>
</Directory>
------------------



うちのサーバーではcgiやphp等もすべてDocumentRoot以下においてあるのでこの設定でも問題ないと思います。

2006年10月16日月曜日

「タグが閉じられていません」を手軽に解決する方法


MTを3.3にアップグレードすると、サイト内検索が「結果の表示ができません: <MTTagName>タグが閉じられていません。」というエラーが出るようになりました。



このエラーの原因および正当な解決策はGoogleでヒットする他のサイトを参考にしてください。



http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2006-17,GGLG:ja&q=%3cMTTagName%3e%e3%82%bf%e3%82%b0%e3%81%8c%e9%96%89%e3%81%98%e3%82%89%e3%82%8c%e3%81%a6%e3%81%84%e3%81%be%e3%81%9b%e3%82%93%e3%80%82+




さて、このページでは正当な解決策とはちょっと違った、非常に手軽な解決策をご紹介します。
以下、手順です。



---



1.search_templates/default.tmplを、search_templates/default_search.tmplという名前でコピー



2.search_templates/default_search.tmplを開き、Tagに関連する記述を片っ端から削除する



3.mt-config.cgiを開き、 AltTemplate default_search default_search.tmpl という記述を追加



---



以上。



http://your.mt.url/mt-search.cgi?IncludeBlogs=*&search=hoge&Template=default_search



こんな感じで、お尻に「&Template=default_search」をくっつけるとエラーが消えます。
あとは検索フォームに<input type="hidden" name="Template" value="default_search" />を加えればOK。




タグ機能を使っていない人、プラグインのソースをいじるのに抵抗がある人、などにはこの方法が手軽でちょうどいいかもしれません。

2006年10月7日土曜日

postfixとqpopperを入れる


これまでメールサーバーはqmailを使っていましたが、postfixが主流になりつつあるようなので勉強がてら入れ替えてみました。



入れ替える、と言ってもVineLinux3.2では標準でpostfixが入っているのでインストールは必要ありません。有効にするだけです。



# chkconfig postfix on



続いて設定。/etc/postfix/main.cfの編集をします。
以下のサイトを参考にさせていただきました。



http://www.miloweb.net/mail.html
http://hnw.dip.jp/server/postfix.html



これでqmailを止めてpostfixを起動すれば入れ替え完了。
念のため不正中継のテストもしておきます。
http://www.abuse.net/relay.html



もちろんテストは無事通過。



ちなみに、postfixを起動するときに



sendmail: fatal: please use fastforward/newaliases instead



というエラーが出ます。
これはqmailをインストールした際、「/usr/sbin/sendmail」を「/usr/sbin/sendmail.bak」にリネームし、新たに「/var/qmail/bin/sendmail」へのシンボリックリンクとして「/usr/sbin/sendmail」を作っていることが原因です。というわけで、sendmail.bakをsendmailに戻してやれば解決します。



 



続いてpopサーバーを用意します。今回はqpopperを使いました。
例によってapt-getでインストールします。



# apt-get install qpopper



その後の設定はこちらのサイトを参考にさせていただきました。
http://www.miloweb.net/qpopperapop.html



これですべて完了。。。と思ったんですが、メールクライアントからpopサーバーへのアクセスができない。特に間違ってないと思うんだけど、おかしいな。。。



しばらく悩みましたが、原因は/etc/hosts.allowにありました。



ウェブ上のいくつかのページを見たんですが、



pop: 許可したいIP



とか



pop3: 許可したいIP



などのように設定しろ、と書いてあります。
が、この通りに書いてもNG。
ようやく見つけた正解は以下でした。



in.qpopper: 許可したいIP



こちらのサイトを参考にさせていただきました。ありがとうございます。
http://shikichi.ddo.jp/qpopper_set.html




以上で入れ替え完了。意外とすんなりいけました。
以前はqmailをソースから入れていたんですが、それに比べると圧倒的に楽でした。




あとせっかくpostfixにしたのでバーチャルホストも使ってみました。



http://www.miloweb.net/postfix_virtualhost.html



すごく簡単です。確かqmailだと面倒だった記憶があるので、バーチャルホストを使いたい人にはオススメです。



 



◆追記
postfixではメールの振り分けなどでPerl正規表現も使えるようです。
その場合は、



# apt-get install postfix-pcre



でPostfix PCRE サポートのモジュールをインストールします。

2006年10月1日日曜日

xamppを使ってみた


phpspotで紹介されているxamppというツールを使ってみました。



xamppは、Apache、MySQL、PHP、phpMyAdmin、Webalizer、FTPなどなど、Windows上でphpアプリの開発をするために必要なサーバー系ソフトがまとめてインストールできてしまう、という夢のようなソフト。読み方は、、、わかりません。「ザップ」とかかな?




実際に自分のローカルにインストールしてみましたが、素晴らしいの一言。
これまでWindows上で開発環境を作るときはApache、MySQL、PHPをひとつずつダウンロード、インストール、設定、、、とやっていたわけですが、xamppならインストーラでウィザードに従ってるだけで超簡単。さらにxamppコントロールパネルというのが標準で付属しており、これを使えば各サーバーソフトの起動・停止をまとめて管理できます。



xampp、Windowsでphpアプリの開発をするなら絶対オススメです。