2005-11-10

問題解決のヒント

マルチバイト対応のPHPの入手

本編では、マルチバイト対応のWindowsバイナリの入手先として

http://www.geocities.jp/rui_hirokawa/php/win/

を紹介しましたが、海外では

http://snaps.php.net/

が有名なようです。

MySQLに関する問題

PHPスタートアップ時にphp_mysql.dllの組込みでエラーになる

apache2起動時のPHPスタートアップで次のエラーが出る事があります。

[09-Nov-2005 16:35:22] PHP Warning:  PHP Startup: Unable to load dynamic
library 'C:\php5mb/ext\php_mysql.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0

このエラーはPHPのエラーログファイルからの抜粋ですが、Windowsの画面上にも同等のエラーメッセージが出力されます。このエラーは一見、php_mysql.dllが存在していないかのように見えます。本当に存在していない場合もありますが、MySQLのクライアントライブラリ:

libmysql.dll

が正しく設置されていない場合も同じエラーが出力されます。libmysql.dllの設置場所は

  1. %SystemRoot%\system32
  2. 環境変数PATHで設定されたフォルダ

になります。本編では二番目の方法(環境変数PATHによる方法)を採用しています。理由は、libmysql.dllの入手先やバージョンを把握しておきたいからです。本編では、PHPとMySQLのインストールフォルダをPATHに設定しており、それぞれにlibmysql.dllが存在します。このような場合、PATHの中で先に現れたフォルダが優先になります。

但し、環境変数PATHによる方法には1つ盲点があります。それは環境変数PATHを変更した後にWindowsの再起動が必要な事です。なぜ、再起動が必要なのか、はっきりとした理由は分かりません。コマンドプロンプトで確認するとPATHの設定は直ぐに反映されていますし、apacheは再起動しているので、Windowsの再起動までは必要ないと思いますが、そうではないのです。この現象はWindowsXP HOME Ed.(SP2)で確認しています。特にこだわりのない方は、libmysql.dllをsystem32にコピーするのが確実な方法です。

PHP5の設置に関する問題点やその解決法またはヒントなどを入力して下さい

  • php.ini -- ジョン 2006-04-30 14:55:54 (日)
  • You don't have permission to access / on this server. -- yakkung 2007-04-12 11:37:08 (木)
  • libmysql.dll -- 2007-07-09 12:10:47 (月)
  • "PATHの中で先に現れたフォルダが優先" ということは, path の先頭に "c:\php\ext;c:\…" と, 無いとダメってことですか? path のデリミタ処理にバグがあるのかな〜? -- nekoyama 2007-11-28 17:05:02 (水)
  • もうひとつ, extension_dir=".\;c:\php\ext" は, ダメで, ="c:\php\ext" だけにしないとダメみたいです. -- nekoyama 2007-11-28 17:27:18 (水)
  • "c:\php\ext" から system32 へ, dll をコピーしなくても動く様になりました〜 -- nekoyama 2007-11-30 12:13:29 (金)
  • 久々に訪問! 会社拝見しました 遅いですが おめでとうございます -- Apple 2008-04-05 19:39:13 (土)
    • ありがとうございます。Apple様お久ぶりです。お元気でしたか?最近ここは更新が滞っていますが、 プログラマの朝礼は会社HPの「社寺社報」に移行しました。そちらをご覧下さい。 -- y2sunlight 2008-04-09 22:05:28 (水)


最終更新のRSS Last-modified: Wed, 10 Mar 2010 18:56:15 JST (2637d)