XAMPP 1.7.0でMySQLアクセス時にApacheが落ちるとき

ここのところ普段と違うパソコンを使っているのですが、そこでPHP/symfonyの開発環境を構築する必要があり、ひさしぶりに、Windowsの簡単ウェブ開発環境インストーラXamppを使ってみました。

# 普段はビルド済のPHPとMySQL, Apacheをダウンロードして入れています。これでも手抜きと言われるかもしれませんが

xamppのサイトから、Windows版 1.7.0 ベーシック版 インストーラ(xampp-win32-1.7.0-installer.exe)というやつをダウンロードして実行するだけです。

それで、xamppについてくるサンプルや静的なページは問題なく動くのですが、symfonyで作ったアプリケーションを呼び出そうとすると、PHPがApacheを巻き込んで落ちてしまいます。

Apacheのログにはこんなエラーが

[notice] Parent: child process exited with status 3221225477 — Restarting.

いったいこれは何だ、ということで類似の問題が起こってないか検索してみたところ、このフォーラムにたどり着きました。XAMPP 1.7.0のインストーラが展開するdllが、XAMPPの中のMySQLと合致していないために起こると読みました。

フォーラムに書かれているとおり、

c:\xampp\php\libmysql_5.0.51a.dll

c:\xampp\php\ext\php_mysql_5.0.51a.dll

c:\xampp\php\ext\php_mysqli_5.0.51a.dll

を、それぞれ”_5.0.51a”のない方に上書きすることで、エラーは無くなりました。問題が解決するdllまで一緒に配布しているということは、原因は把握されてるんじゃないかと思うのですが、なんでこうなってるんでしょう。今これをやってるのがWindows 2000なので、XPやVistaでは問題ないのかしら。

というわけで、XAMPPで簡単にPHP開発環境ができることは確認できたのですが(上記の問題で何時間も使ったので簡単でもないという話も)、XAMPPの設定するphp.iniはいくつか微妙ですね。いまどきmagic quoteオンとかshort tagオンとか。E_NOTICEがオフになってたのでオンにしたら、XAMPP自身のトップページが警告を出しちゃうし。

WindowsのXAMPPでそのまま本番環境にする人はあんまりいないだろうとは思いますけど、万一自宅サーバとかでそういうことをするなら、php.iniは上から下まで読んで設定しなおしたほうがよさそうです。

[追記] Windows XPでも同様のエラーになるそうです

アメリカシトコム地図

アメリカのシチュエーション・コメディ、いわゆるsitcom(シトコム)がどの都市を舞台にして作られているか、というのを地図上にマップしたものが公開されていました。

USA Sitcom Map

あれ、フレンズやザインフェルドは? と思ったら、ニューヨーク市内のシトコムはそれより先に発表されていました。

newyork-sitcom-map

テレビ局や制作会社も多いでしょうし、ニューヨークを舞台にしたドラマはやっぱり多いんですね。同じニューヨークといっても、どのあたりに住んでる、と設定することでライフスタイルなんかも決まってくるのかもしれません。

とはいっても、日本のドラマの多くが東京をロケ地や舞台にしているのと比べると、そこそこ大きな都市がまばらに散らばっているアメリカでは、設定としていろいろな地方を使っているようですね。日本のドラマで同じような地図を作っても、東京が大半になるような気もします。

FlickrがPHP4からPHP5に移行

Flickr上で先月出された「このグラフの変化は何?」というクイズ

Drop in CPU

答えは、「PHP5に移行したFlickr.comのサーバのCPU利用率」ということでした。サーバのスクリプトエンジンをPHP5に切り替えた際に、上記のようなCPU利用率の削減が見られたということです。

このクイズを出したのは、Yahoo/Flickrでキャパシティ・プランニングを担当するジョン・アルスポーさん。先週のWeb2.0 ExpoでFlickrのサーバマシン入れ替えとパフォーマンス改善について話されています。

Web2.0 Expoのスライドで話されているのは、以下のような内容です。

  • Flickrのストレージ構成やデータ量
  • PHP5移行でCPU利用率が15%減ったこと
  • ImageMagickからGraphicsMagickに変更して高速化
  • OpenMPでサムネイル作成を並列化
  • サーバマシンを良いスペックのものに置き換えて台数や設置面積を削減
  • 交換前の古いサーバを、リアルタイム性を要しない処理や開発用に転用
  • 自動コンフィギュレーションやデプロイの自動化
  • 自己診断や自己回復を機械にまかせる
  • トラブルシューティング連絡手段(IRC, IMなど)とそのログ化や検索手段提供

未読ですが、この人のこの本もこのあたりについての本のようですね。

[am]4873113997[/am]

via Kitchen Soap