日々のできごとと写真

XAMPPをVistaで使おうとしてハマるワナ

2009-02-04 00:02 | IT | コメントをする »

xampp_vista

Windows環境で使っているXAMPPに含まれるApacheやPHPのバージョンが若干古いので、最新のものに入れ替えようとしてハマったことを記します。

環境

  • Windows Vista SP1
  • XAMPP 1.7.0
    • Apache 2.2.11
    • MySQL 5.1.30
    • PHP 5.2.8
    • phpMyAdmin 3.1.1
    • FileZilla FTP Server 0.9.29
    • Mercury Mail Transport System v4.52
    • OpenSSL 0.9.8

apache friendにある1.7.0のZIPアーカイブ版を利用しました。
ダウンロード後、C:\xamppに展開することにします。

PHPのcliでエラー

早速、PHPが正常に動くか確認するため、コマンドラインでバージョン情報を確認します。

c:\xampp\php>php -v
PHP 5.2.8 (cli) (built: Dec  8 2008 19:31:23)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

すると、もれなく

CLIは動作を停止しました

と、エラーが出現します。強制終了の雰囲気ですが、コマンドは実行されます。
うーん、気持ち悪い。
原因は既出で、php_mysqli.dllが原因のようです。

extension=php_mysqli.dll

;extension=php_mysqli.dll

とコメントにすることで対処できるんですが、じつは1.7.0では(どのバージョンからは不明)対応済みのdllが用意されています。
xampp\php\extをのぞいてみると、「php_mysqli_5.0.51a.dll」というファイルがあり、これを「php_mysqli.dll」にリネームすることで回避できます。

php -i
#snip
mysqli

MysqlI Support => enabled
Client API library version => 5.1.30
Client API header version => 5.0.51a

バージョンがバラバラなのがかなり気持ち悪いんですが、MySQL5.1.30に対しても問題なく動きます。

eAcceleratorでエラー

デフォルトではOFFにされていますが、PHPのアクセラレータのひとつ、eAcceleratorがバンドルされているので、これを有効にしてみます。
php.iniを修正します。

よくあるミス
XAMPPにはphp.iniが2つあります。
ひとつはxampp\php の下、もうひとつはxampp\apache\bin の下。
前者はCLI用のiniファイルで後者はApacheモジュール用のiniファイルですので、注意しましょう。

セミコロンをすべて外します。

矩形選択

こういう作業は矩形選択(箱型選択)できるエディターが便利ですね。
(上記エディターはK2Editor

さて、実行してみましょう。

php -i
#何も表示されずに終わってしまう・・・

php -v
#こっちもだ・・・

ログもエラーも出ないので、困った・・・。
CLIからの追跡はあきらめて、PHPモジュールの方のphp.iniのeAcceleratorを有効にして、ApacheからPHPを実行して経過をみてみます。
すると、Apacheが起動せず、強制終了します。

eacceleratorが有効にならない

ということなので、Apacheのエラーログ(xampp\apache\log\error.log)を確認します。すると、

PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.7. Rebuild it for your PHP version (5.2.8) or download precompiled binaries.\n in Unknown on line 0

衝撃の事実。xampp1.7.0にバンドルされているeAccelerator.dllは(ある意味伝説の)5.2.7 をターゲットにコンパイルされているので、バージョンが合わないというエラーです。

こちらのサイトに5.2.8用にビルドされたdllがダウンロードできるので、こちらをxampp\php\ext\eAccelerator.dllと差し替えます。

c:\xampp\php>php -v
PHP 5.2.8 (cli) (built: Dec  8 2008 19:31:23)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

ちゃんと認識されました。

それから忘れがちなのが、ACLが有効になってるとサーバーの立ち上げなどにAdministrator権限が必要なので、xampp-control.exeなどを実行するときには、右クリック→管理者として実行(A) で起動しましょう。sudoですね。
リソースが許すの出れば、サービスに登録してしまうと楽です(セキュリティーには気をつけて)。

今回なんでVista環境にxamppを入れたかというと、このブログでも使ってるWordPressのコードを読んで見ようと思ったからです。
ソースをちらっと見たことある人ならわかると思うんですが、結構ヒドいコードです。
PHPのカオスさがそのまま如実に表れてるというか。
なので、debugツールを使って楽をしようと導入したわけです。
XDebugかZend Debuggerを使って、少しずつ解析していって、経過を載せたいと思います。

Mac買っちゃった

2008-07-16 01:25 | エントリー, 日記 | 1 コメント »

MacBookを半ば衝動買いで買ってしまいました。

129,800円+メーカー製メモリ4GB(20,000円)−5%でした。
実は買う前、すごい悩んだんですよ。高い買い物だし、そもそも要るのかよ!っていう話ですよ。

それが一変。
買ったらテンション上がっちゃって、もうずーっとMacBookをいじってます。アホみたいに。

このブログを始めた頃にちょっと書いたんですけど、
Windows Vistaマシンを期待して買ったわけですよ。
いい噂は聞かないけど、MSが「XPもうやめたい…」って言ってるし、
仕事柄新しいOSも触っておかなきゃいかんかなと。
でも最悪な結果で。
そもそも重いし、常にハードディスクがカリカリしてるし、
スリープから戻るとエクスプローラ落ちたり、無線LAN切れたり、
とにかく使うたびにイライラするんです。

効率よく仕事(作業)したい方絶対にVistaにしない方がいいです。
Windowsだったら、Core2Duoに2GBのメモリ載せて、XP SP3がトータルのパフォーマンスは絶対高い。

…と、Windowsの愚痴を言うつもりはなかったのに。
それぐらい、このMacBookが心の琴線にふれたんです。体に染み入る感じ。

なにが良いって、まず速い。間違いなくVistaより速くて、安定している。
そして、まさに「神は細部に宿る」を地でいくディテール。
Expose(1ボタンでウィンドウをはけさせるたアレ。VistaのAreoは使えない)の小気味よさ、
Dashboardの慎ましさ。

エンジニアにとってはSpacesがすばらしく便利。
言葉で言っちゃうと最大16画面のバーチャルデスクトップ。
でもその切り替えが、Ctrl+↑↓←→でビュンビュン切り替わる爽快感。

当然ターミナルも標準。
URLをコピってwgetで取得とか、ファイルをrsynでコピーとか、普通にできちゃう。
ターミナルの表示もいろいろカスタマイズができて、
「Pro」っていう黒い画面は、バックグラウンドのウィンドウが透けて表示されて
無意味にかっこいい!と思っていたら、実は裏が透けていた方が
ブラウザーを読みながらコマンドが打てたりして超便利。

Javaも標準。
Eclipse3.4もスルスル動きました。

ApacheもPHPもPerlもRuby(Railsも)もPythonも入ってます。

まさにWebエンジニア用のハードウェアです。

Bluetoothを使ってケータイとPCでデータ通信をする

2008-05-13 23:48 | IT, エントリー | コメントをする »

こうゆうエントリーは別にしたいと思いつつ、書いちゃえ。

僕はソフトバンクの913SHというケータイを利用しておりまして、このケータイにはBluetoothという無線規格でデータのやり取りができる機能があるんですが、PCに認識されてもどうやって写真などのデータをコピーするのか分からず、途方に暮れていました。

OS(Windows Vista)がデフォルトで利用できる機能は通信機能(Dial-Up Networking)のみのようで、公衆無線LANやらイー・モバイルやらあるなかで、ニーズがいったいどれだけあるのか。

そしたら、ちゃんとアプリケーションがでていました。その名も「ケータイdaSH」!

!!!!

ダッシュとSH(シャープ端末の意味)をかけてるの!?えーダサくない?ダサくない?
でも、しょうがない。使わせていただくのだから・・・。

922SH/921SH/920SH/913SH/912SH/911SH/910SH/905SH/
904SH/903SH/823SH/822SH/821SH/820SH/816SH/815SH/
814SH/813SH/812SH s/812SH sII/812SH/811SH/810SH/
804SH/705SH/703SH/703SHf

が対象機種みたいで、Bluetooth以外にもUSBや赤外線通信もサポートしているようです。

これでケータイでメモ書いたり、写真撮ったりしても面倒くさいことにはならなくなりました。

Vistaはきらい

2008-04-10 01:07 | エントリー | コメントをする »

去年買ったメインのPCがVistaなんですけど、休止状態から復帰するとALT+TABが効かなくなったり、IEがメモリリークして新しいウィンドウが開けなくなったり・・・。

せっかくクアッドな環境なのでVMWare Server上にCent5とFedora8と入れたんですが、起動時にフリーズぎりぎり一歩手前位の状況になるんです。
リソースを見てみても、CPUも10%程度、実メモリもまだ60%くらい残っているのにHDDをものすごい勢いでガリガリやるんで、よく見てみるとなぜかスワップを起こしているような状況。

で、いろいろ調べてみると、解決方法を発見!
VMware が頻繁にディスクアクセスして OS 全体が固まる件

設定したらウソみたいに快調に動き出しました!やった!

・・・とはいっても、休止状態からの復帰ではVMWareが暴走して、どこかのキーが押しっぱなしになっちゃうみたいな動きで、強制終了をせざるを得なくなります。

会社で使ってるPCはCore2Duo/DDR2 2GB/GeForce7600にXP Pro SP2と、スペック的には下なんですけど、とても快適なので、余計イライラします。
たぶんHDDがRAIDだからなんだと思うんですが、さすがにそれを自宅のPCにやりだしたらやりすぎかな、と。

でも最近普通にRAID5が組めるNASが家電量販店に売ってますよね。5万くらいですか。
メモリもCPUもパフォーマンスが上がってるのにストレージだけはパッとしませんね。
RAIDにするか、SSDでもいれてみるか。