インストール/設定
PHP Manual

インストール手順

PHP 5.0 以降、標準の配布パッケージでは MySQL サポートがデフォルトで有効にはなっていません。 つまり、MySQL 拡張モジュールを使いたければ PHP を明示的に configure する必要があるということです。

一般的な Unix ディストリビューションには、バイナリ版の PHP がインストールされています。 これらのバイナリ版は、通常は MySQL 拡張モジュールに対応したものになっています。 しかし、拡張モジュールライブラリ自身を別パッケージでインストールする必要があります。 使用しているディストリビューションのパッケージマネージャで確認してみましょう。

もしご利用の Unix ディストリビューションの提供するバイナリパッケージに mysqli 拡張モジュールが含まれていない場合は、 PHP をソースコードからビルドしなければなりません。 PHP をソースからビルドすれば、使いたい MySQL 拡張モジュールを指定したり 各拡張モジュールが使用するクライアントライブラリを選択したりすることができます。

mysqli 拡張モジュールを PHP で有効にするには、 PHP のソースコードを configure する際に mysqli を使うよう指定する必要があります。そのためには configure スクリプトにオプション --with-mysqli=mysql_config_path/mysql_config を指定して実行してから PHP をビルドします。これで mysqli が有効となり、 MySQL Client Library (libmysql) を用いて MySQL Server と通信できるようになります。

注意: mysql_config_path は、MySQL Server に含まれる mysql_config プログラムの場所を表します。

PHP 5.3 以降のバージョンでは、新しい MySQL Native Driver を mysqli で使うことができます。 これは libmysql を使うよりも多くの点で有利です。

MySQL Native Driver を mysqli で使用するには、 PHP ソースコードの configure の際に --with-mysqli=mysqlnd オプションを指定して PHP をビルドします。

このオプションを指定することを推奨します。MySQL Native Driver を使うとパフォーマンスが向上し、MySQL Client Library を使用した場合には使えない機能も使用することができます。 PHP の MySQL Native Driver とは? に、MySQL Native Driver の利点が簡単にまとめられています。

MySQL 拡張モジュールとクライアントライブラリの組み合わせは自由であることに注意しましょう。 たとえば、MySQL 拡張モジュールは MySQL Client Library (libmysql) を使うようにして有効にし、 一方 mysqli 拡張モジュールは MySQL Native Driver を使うようにするということも可能です。 しかし、それ以外にも拡張モジュールとクライアントライブラリのすべての組み合わせが使用可能です。

次の例は、MySQL 拡張モジュールを MySQL Client Library を使うようにビルドし、一方 mysqli と PDO MYSQL 拡張モジュールでは MySQL Native Driver を使うようにするものです。


./configure --with-mysql=/usr/bin/mysql_config \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
[other options]

Windows システムでのインストール

Windows の場合、PHP のインストールにはたいていバイナリインストーラを使用します。 PHP をインストールしたら、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 に含まれているからです。 しかし、これはできるだけ避けるようにしましょう。

Windows の PHP バージョン 5.3 以降では、 mysqli 拡張モジュールはデフォルトで MySQL Native Driver を使用します。つまり、 libmysql.dll にアクセスできるようにする必要はなく、 単に php.ini ファイルで拡張モジュールを有効にするだけでよくなります。

その他の 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.dlllibmysql.dll をシステムが見つけられないことが原因です。


インストール/設定
PHP Manual