mysqli
拡張モジュールが使えるようになったのは PHP バージョン
5.0.0 以降です。また、MySQL Native Driver が PHP に含まれるようになったのはバージョン 5.3.0 以降です。
一般的な Unix ディストリビューションには、バイナリ版の PHP がインストールされています。 これらのバイナリ版は、通常は MySQL 拡張モジュールに対応したものになっています。 しかし、拡張モジュールライブラリ自身を別パッケージでインストールする必要があるでしょう。 使用しているディストリビューションのパッケージマネージャで確認してみましょう。
たとえば Ubuntu なら、php5-mysql
パッケージをインストールすれば、
ext/mysql、ext/mysqli、そして pdo_mysql をインストールできます。CentOS の場合は
php-mysql
パッケージを使えば、同じものをインストールできます。
この拡張モジュールを自分でコンパイルすることもできます。 PHP をソースからビルドすれば、使いたい MySQL 拡張モジュールを指定したり 各拡張モジュールが使用するクライアントライブラリを選択したりすることができます。
クライアントライブラリには MySQL Native Driver を使うことを推奨します。 そのほうがパフォーマンスが向上し、MySQL Client Library を使用した場合には使えない機能も使用することができます。 PHP の MySQL Native Driver とは? に、MySQL Native Driver の利点が簡単にまとめられています。
/path/to/mysql_config
は、MySQL Server に含まれる
mysql_config
プログラムの場所を表します。
PHP バージョン | デフォルト | 設定オプション: mysqlnd | 設定オプション: libmysqlclient |
変更履歴 |
---|---|---|---|---|
5.4.x 以降 | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd がデフォルトになりました。 |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd が使えるようになりました。 |
5.0.x, 5.1.x, 5.2.x | libmysqlclient | 利用できません | --with-mysqli=/path/to/mysql_config | mysqlnd は使えません。 |
MySQL 拡張モジュールとクライアントライブラリの組み合わせは自由であることに注意しましょう。
たとえば、MySQL 拡張モジュールは MySQL Client Library (libmysqlclient) を使うようにして有効にし、
一方 mysqli
拡張モジュールは MySQL Native Driver
を使うようにするということも可能です。
しかし、それ以外にも拡張モジュールとクライアントライブラリのすべての組み合わせが使用可能です。
Windows の場合、PHP のインストールにはたいていバイナリインストーラを使用します。
Windows の PHP バージョン 5.3 以降では、
mysqli
拡張モジュールはデフォルトで有効になっており、
また MySQL Native Driver を使うようになっています。つまり、
libmysql.dll にアクセスできるようにする必要はないということです。
これらの旧バージョンの PHP (PHP 5.2 は 2011年1月6日にサポートを終了しています)
では、mysqli
を有効にしてクライアントライブラリを指定するための設定が必要です。
mysqli
拡張モジュールはデフォルトでは有効になりません。そこで、
php_mysqli.dll DLL を
php.ini の中で有効化しなければなりません。有効化するには、まず
php.ini を探し (通常は c:\php にあります)、
そして extension=php_mysqli.dll
という行の最初にあるコメント
(セミコロン) を削除します。この行は
[PHP_MYSQLI]
というセクションにあります。
また、MySQL Client Library を mysqli
で使いたい場合は、PHP からクライアントライブラリのファイルにアクセスできるようにしなければなりません。
MySQL Client Library は libmysql.dll
という名前のファイルで、これは Windows 版の PHP に含まれています。
このファイルを Windows の環境変数
PATH で指定された場所に置けば読み込めるようになります。
FAQ の
"Windows で PHP のディレクトリを
PATH に追加するにはどうすればいいのですか?"
に、その方法が説明されています。
libmysql.dll を Windows のシステムディレクトリ
(通常は c:\Windows\system) にコピーしても動作します。
システムディレクトリは、デフォルトでシステムの
PATH に含まれているからです。
しかし、これはできるだけ避けるようにしましょう。
その他の PHP 拡張モジュール (php_mysqli.dll など)
を有効にするときと同様、PHP のディレクティブ
extension_dir
を設定して PHP 拡張モジュールのある場所を指定する必要があります。
Windows
での手動インストールの手順 も参照ください。PHP 5 の extension_dir
の値は、たとえば c:\php\ext のようになります。
注意:
ウェブサーバーの起動時に
"Unable to load dynamic library './php_mysqli.dll'"
のようなエラーが出たら、それは php_mysqli.dll や libmysql.dll をシステムが見つけられないことが原因です。