2009年9 月22日  |  Written by matsumoto  |  under PHP Yahoo!ブックマークに登録    はてなブックマーク - [PHP] PHP5.3.0でのアクセラレータ導入

PHP5.3自体のインストールについては
[PHP] CentOS5.3 で PHP5.3をインストール(YUM風オプションで)をご覧下さい。


こんにちは、松本です。シルバーウィークの天気 も全く関係ない引きこもり状態で、だらだらと経過中です。

PHP5.3.0 もリリースされて少し経ちましたが、早くも PHP5.3.1-rc1 がリリースされ、例によって矢継ぎ早にアップデートされそうな予感です。

前回に引き続き、PHPのアクセラレータ導入です。

PHP5.3で利用できるアクセラレータ

PHP5.3系のアクセラレータは、eAcceleratorAPCXCache などが対応しています。

一番気になる速度面ですが、どのアクセラレータもそこまで大きな違いはありません。
自分では、eAcceleratorをよく利用しています。

PHP5.3ではありませんが、お祭りコムリラックスライト でも eAcceleratorを導入しています。

なぜ eAccelerator なのか? という部分ですが、自分で実測した限りでは APC よりも eAccelerator の方が httpdのプロセスサイズが小さく見えました。

また、VPSなどのメモリ容量が小さい環境での運用でもshmとdiskをどちらも併用できる eAccelerator が、ある程度の可用性を保つ面でも良いかなと思い採用しています。

前回の導入時にややハマった PHP5.3でのAPCの導入 ですが、現在は APC-3.1.3p1 がリリースされ、PHP5.3でもハマらずにインストールできました。

eAccelerator

eAcceleratorの公式サイト から、ソースをダウンロードします。
サイトの下部にバージョン別のリリースがありますので、一番新しいものを選択します。

PHP5.2までは 0.9.5.3 でも動作しますが、PHP5.3以降は 0.9.6-rc1 以降のバージョンでの動作となります

コンパイル→インストール

phpizeが入っていない場合、前もってインストールしておきます。

yum -y install php-devel

ソースコードからコンパイルしてインストールします

mkdir /usr/local/src
cd /usr/local/src
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
tar jxvf eaccelerator-0.9.6-rc1.tar.bz2
cd eaccelerator-0.9.6-rc1

phpize
./configure --enable-eaccelerator=shared
export SED=sed
sudo make install

インストールが完了したら、キャッシュ用のディレクトリを作成します。

# mkdir /var/php-cache/eaccelerator
# chmod 777 /var/php-cache/eaccelerator

php.iniでの設定

次にphp.iniに設定を定義します。

vim /etc/php.ini

※ XDebugをインストールしている場合、XDebugの記述より以前に記述します。

[eaccelerator]
zend_extension="/path/to/eaccelerator.so"
eaccelerator.shm_size = "32"
eaccelerator.cache_dir = "/var/php-cache/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "86400"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys     = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content  = "shm_and_disk"

zend_extentionは eAccelerator がインストールされたディレクトリをフルパスで指定します。

APC

APCも試しています。前回の記事に引き続きですが、検証しまくりです。eAcceleratorを入れるよりもプロセスサイズが大きめに出るのが気になりますが・・・

あと、これは自分の環境だけかもしれませんが、APCが効いている状態で、ファイルを書き換えると(statが変わると) httpdがCoreDumpしていまして、そちらも原因を追っているところです。

インストール

APCのインストールも簡単です。
peclコマンドでも可能ですが、ここではeAcceleratorと同様にソースをダウンロードし、インストールします。

cd /usr/local/src
wget http://pecl.php.net/get/APC-3.1.3p1.tgz
tar xvzf APC-3.1.3p1.tgz
cd APC-3.1.3p1

 phpize
 ./configure --enable-apc

sudo make install

php.iniでの設定

大体以下のような感じでしょうか。上記eAcceleratorと同等の機能を定義しています。

vim /etc/php.ini
[APC]
extension=apc.so
apc.mode = shm
apc.check_compiled_source = 1
apc.check_mtime = 1
apc.enabled=1
apc.shm_segments=1
apc.shm_size=30
apc.num_files_hint=100
apc.user_entries_hint=640000
apc.ttl=86400
apc.user_ttl=86400
apc.gc_ttl=86400
2009年9 月30日  |  Written by matsumoto  |  under web技術 Yahoo!ブックマークに登録    はてなブックマーク - webエンジニア必携のツール10選

こんにちは、松本です。

弊社でwebシステムを開発する上で、よく利用しているツール、アプリケーションを10個挙げてみます。
例えば "出先でネットに繋がるノートPCで作業する" といった場合など、
どんな環境でもこれさえあれば、一通りの作業は何とかできるかも・・・というあたりです。

自分は下記ツール、アプリケーション群をどのパソコンにもインストールしています。

基本、全てWindowsXPをベースにしています。ご了承下さい。

1.FireFox

FireFoxアドオン3選

  1. FireBug
    https://addons.mozilla.jp/firefox/details/1843
    超必須です。特にJSの開発時にはこれが無いと、事実上開発ができないぐらいです。
  2. Y!Slow
    https://addons.mozilla.org/ja/firefox/addon/5369
    ブラウザでのキャッシュやサーバサイドのExpireっぷりを確認するために利用します。これも必須かと。
  3. Firecookie
    https://addons.mozilla.jp/firefox/details/6683
    Cookieを確認する必須ツールです。これも必須で。

2.PuTTY ごった煮版

  • http://yebisuya.dip.jp/Software/PuTTY/
    ターミナルで接続しての作業時には必携のツールです。こちらもTeraTermPoderosaなど、自分の好きなものであれば何でも良いかと思います。
    自分はプログラミングの99%をターミナルを通して行いますので、一番利用するツールであります。
    ※Macをお使いの方はiTermあたりでしょうか。デフォルトのターミナルは文字コードを変更できなかったのでちょっと辛かったです。

3.TortoiseSVN

4.FFFTP

5.サクラエディタ

6.IETester

  • http://www.my-debugbar.com/wiki/IETester/HomePage
    この数年間、webエンジニアを大いに悩ませるのがInternetExplorer(IE)です。
    IEはバージョンによって挙動の変化が激しく、またW3Cに準拠していない部分も多いので

    FireFoxで開発していて、久しぶりにIEで挙動を確認したら思いっきり崩れてた。

    なんていうこともザラです。
    また、シェアが落ちたとは言え、”IE6でも動く”サイトが最低限の基本になっていますので、
    VistaやIE7/8をインストールしたXPでも確認できるようにと、利用しています。
    ※Win7にも対応しているっぽいので一安心です。

7.WinSCP

  • http://www.tab2.jp/~winscp/
    サーバーにSSHでアップロードするための必須ツールです。
    最近はほとんどFTPは使わず、基本WinSCPでアップしていたりします。

8.cassava

  • http://www.asukaze.net/soft/cassava/
    CSVの確認、編集時には必須ツールです。UTF8やEUCなどSJIS以外の文字列を読み込んだり、
    ケタ数のフローがないので大変便利です。

9.インスタントメッセンジャー

10.GIMP

  • http://www.geocities.jp/gimproject/gimp2.0.html
    ※公式サイトではありませんが、GIMPについての非常に情報が整理され見やすいサイトです。
    グラフィックツールです。ちょこっとした画像の修正やGIF→JPGなどへのフォーマット変更、
    またCSSスプライト時にベースとなる画像作成など、エンジニアサイドも利用できる多機能なツールです。
    フリーソフト(GPL)というのも大変吉です。

いかがでしょうか。ごくごく基本的なツール、アプリケーションかと思います。
メールの送受信をするメーラーについての言及が抜けていると思いますが
thunderbirdなどのメーラーを使わず、全てオンラインに移行しています。
このあたりは、"webエンジニア必携のサイト10選"に続きます。


[番外] 10選とはやや関係ないですが、パソコンのハードウェア

作業用のPCの選定は、CPU自体の速度を結構重視します。

実際の作業ではFireFoxを開いてFireBugで確認しながら、FlashでActionScriptを書いて・・・
というケースも多く、結構なCPUの負荷を食います。

複数のアプリで同時に処理というケースが多いので
Celeronなどの廉価版は避け、Core2Duo以上が搭載されているPCを選んだほうがベストと思います。

このあたりは柔軟に対応できるように、また自分のノウハウ蓄積のためにも自作PCを利用しています。
自作はもう12年ぐらい続けています。

また、モニタも広めの21.5インチワイドタイプを利用しています。
※最近のモニタは安いですね・・・・1万円台で22インチタイプが購入できます。

メインPC

パソコンはメインではデスクトップを利用しています。構成は以下です。

  • PC本体

    • 自作PC (Core2DuoE8500、メモリ4G、HDD500G)
  • モニタ
    • LCD-MF221X

      HDMI付きなのでPS3も接続できますw
  • キーボード

サブPC

サブPCはノート型で、ThinkPadです。
長年HPを利用していたのですが、
あまりのキータッチの素晴らしさにLenovoに移ってしまいました。

2009年9 月30日  |  Written by matsumoto  |  under web技術 Yahoo!ブックマークに登録    はてなブックマーク - webエンジニア必携のサイト10選

こんにちは、松本です。

前回のwebエンジニア必携のツール10選に続きます、今回はサイト編です。
Webアプリケーションそのものも含みますので、純粋にサイトだけではないのですが、その辺はいい感じに。

1.Gmail(Webメール)

いきなりwebアプリケーションですが、
前回のエントリでクライアントPCでのツール10選を出しています。この10選で、メーラーが完全に抜けているのですが
それも全部Gmailに移行しているためです。

以前はthunderbirdなど、スタンドアロンのメーラーを使っていたのですが
オンラインが当たり前になった現在、全てオンラインでの処理で良いのかなという判断で、Gmailを利用しています。

自分は持っていないのですが、iPhoneでもGmailが超便利と聞いています。

2.スケジューラー(Googleカレンダー)

続いてGoogleカレンダーです。
社内のメンバーのスケジュール共有はこれもすべてオンラインで行っています。
iCalのデータをインポートできるので livedoor 天気情報iCal天気 を利用しています。これも便利。

3.RSSリーダー

RSSリーダーで効率的に情報を収集します。慣れないうちはとまどうのですが、慣れると中々便利です。
普通にWebサイトを巡回するよりも相当速くチェックできます。
自分はメジャーどころでは以下のRSSを登録しています。

趣向がばらっばらなのですが・・・wこんな感じです。

Googleリーダー以外でもどのWebアプリケーションでも、使いやすいものをご利用されて良いかと思います。

4.php.net

やっとGoogle以外のサービスなのですが、
PHPの開発を行う際に、関数のドキュメントを検索したりなど、常に開きっぱなしで利用します。
特にPHPは関数によって、引数の順番がいきなり変わったりしますので、無用なハマりを回避するためにも、ちょっとでも疑問をもったら都度検索がベストです。

5.CPAN

CPANもよく利用しています。Class::DBIDBIx::MoCoのドキュメントを見るときにもよく利用しています。

6.TemplateToolkit

Perl(mod_perl)ベースでの開発時には、非常によく利用します。現在弊社で利用しているPerlのテンプレートシステムは全てtemplate-toolkit(TT)を利用しています。
TTの日本語でのドキュメントは中々少なく、上記サイトは非常に重宝しています。

[参考]TemplateToolkitの参考サイト

TTは mod_perl上で扱う Templateモジュール自体の使い方と、Templateシステム内のシンタックス(表記法)の2つが混在しています。

[参考2]DateTimeモジュールの参考サイト

DateTimeもよく利用するモジュールの1つです。APIがやや難しく、忘れがちですので上記サイトを常に見ていたりします。

7.fixdap

Todoをオンラインで使える貴重なWepアプリケーションです。
細かいタスクはメールではなくBTSベースで行うと漏れがありません。
非常に便利です。このような便利系アプリケーションを弊社でもサービスしたい所であります。
SSL対応になるとより吉ですね。

8.ソーシャルブックマーク(Yahoo!ブックマーク)

Y!ブックマークはsymfonyでできているのらしいのですが、レスポンスが重いのが何とも・・・

9.jQuery用ドキュメント

jQuery用のドキュメントです。相当に詳しく載っていまして毎回お世話になっております。m(_ _)m

10.mod_perlリファレンス(mod_perl クイック・リファレンス (1))

mod_perl1 Apache1.3系のmod_perlのリファレンスです。
mod_perlベースでのWebアプリケーション開発時には必ず見ています。(というかAPIを覚えられないんですよね・・・)


いかがでしょうか。
他にもevernoteGoogleDocsなども激しく便利です。

次回は更に掘り、mod_perlを扱う上での便利サイト10選、PHPを扱う上での便利サイト10選などをしてみたいと思っています。


[番外]Twitter

おなじみのTwitterです。自分のつながりのある方たちの状況がおおよそ把握でき、また直接口頭では話さないような趣向が分かったりと中々これはこれで便利であります。

Twitterを利用される場合、TwitterFoxというFireFoxのアドオンがあるのですが、これが大変便利です。メッセンジャーの様に入力できますし、まさに"つぶやく"といった感じです。

ありんくのTwitterも公開しています。よろしければご覧下さい

松本個人のTwitterは以下でございます。こちらもよろしければどうぞ、技術面以外の事が多いですが・・・

[番外2] GoogleBooks

立ち読みでさらっと確認したい系のものなど、特に専門書を買うときには強烈に便利です。
自分はオライリーの洋書を見るときなど、よく使います。

私はチーム・マイナス6%です