PDO_MYSQLをインストールする方法

PDO_MYSQLをインストールするには事前にMySQLクライアントのインストールが必要です。

[参考記事] MySQLのインストール
[参考記事] WindowsでMySQLをインストールする方法
[参考記事] PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合

yum -y install mysql
yum -y install mysql-devel

MySQLサーバもインストールするなら次のyumも必要になります。

yum -y install mysql-server

PHPをソースからインストールする場合
yumでインストールする場合
PECLからインストールする場合
インストールの確認

PHPをソースからインストールする場合

PHPをソースからインストールする場合はconfigureで『--with-pdo-mysql』を追加します。

$ ./configure --with-pdo-mysql 既存のオプション………

ここでPHPを更新する場合に注意が必要なのが、『--with-pdo-mysql』のみをオプションで付けるのではなく、phpinfo()などで既存に設定されているオプションを調べ、追加する形で『--with-pdo-mysql』を指定します。

yumでインストールする場合

yumでインストールする場合はphp-pdoとphp-mysqlをインストールするとインストールできます。

yum -y install php ← phpがインストールされていないなら

yum -y install php-pdo
yum -y install php-mysql

変更をApacheに反映させるにはApacheを再起動します。

service httpd restart
または
/etc/init.d/httpd restart

PECLからインストールする場合

PECLからダウンロードしてインストールする場合は次のようにします。

peclコマンドが使えるようにするにPEARをインストールします。
[参考記事] Unix・Linux版PHPにPEAR・PECLをインストールする方法
[参考記事] Windows版PHPにPEAR・PECLをインストールする
[参考記事] PEARを更新する方法
[参考記事] コマンドラインからpearを実行するとエラーが出る 環境変数PHP_PEAR_PHP_BINの設定

peclでダウンロードやインストールを行う前にチャネルを更新しておきます。

# pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded

PDO_MYSQLをダウンロードします。

$ pecl download PDO_MYSQL
downloading PDO_MYSQL-1.0.2.tgz ...
Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes)
.....done: 14,778 bytes
File PDO_MYSQL-1.0.2.tgz downloaded

次のように直接 peclのサーバから取得することも可能です。

$ wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

tgz圧縮形式でダウンロードされるので解凍します。

$ tar xvf PDO_MYSQL-1.0.2.tgz
package2.xml
PDO_MYSQL-1.0.2/config.m4
PDO_MYSQL-1.0.2/CREDITS
PDO_MYSQL-1.0.2/mysql_driver.c
PDO_MYSQL-1.0.2/mysql_statement.c
PDO_MYSQL-1.0.2/pdo_mysql.c
PDO_MYSQL-1.0.2/php_pdo_mysql.h
PDO_MYSQL-1.0.2/php_pdo_mysql_int.h
PDO_MYSQL-1.0.2/php_pdo_mysql_sqlstate.h
package.xml

解凍されたディレクトリに移動します。

$ cd PDO_MYSQL-1.0.2

このディレクトリにはconfigureは含まれていません。

$ ls
CREDITS  config.m4  mysql_driver.c  mysql_statement.c  pdo_mysql.c  php_pdo_mysql.h  php_pdo_mysql_int.h  php_pdo_mysql_sqlstate.h

拡張モジュールのビルド環境を準備するために、phpizeコマンドを実行します。

$ phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
config.m4:104: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from...
config.m4:104: the top level
config.m4:104: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from...
config.m4:104: the top level

これでビルドに必要なconfigureファイルなどが作成されます。

$ ls
CREDITS          acinclude.m4  autom4te.cache  config.guess  config.m4   configure     install-sh  missing        mysql_driver.c     pdo_mysql.c      php_pdo_mysql_int.h       run-tests.php
Makefile.global  aclocal.m4    build           config.h.in   config.sub  configure.in  ltmain.sh   mkinstalldirs  mysql_statement.c  php_pdo_mysql.h  php_pdo_mysql_sqlstate.h

あとはオプションを指定してインストールします。

$ ./configure --with-pdo-mysql=shared,/usr/local/mysql
$ make 
$ make test
$ su
# make install

ここで次のようなエラーが出る場合はmysql-develがインストールされていません。

# configure: error: mysql_query

次のようなエラーが出る場合はパスが通っていません。

configure: error: Cannot find php_pdo_driver.h.

PHPがインストールされている場所から/usr/includeにシンボリックリンクを張ります。

ln -s /usr/include/php5 /usr/include/php

pecl installでダウンロードからインストールまでまとめて行うこともできます。

# pecl install PDO_MYSQL

インストールが終わったら、php.iniで拡張モジュールの設定をします。(yumでインストールした場合には不要)

php.iniに追記します。

; Enable pdo extension module
extension=pdo.so

; Enable pdo_mysql extension module
extension=pdo_mysql.so

または/etc/php.dにファイルを作成します。

/etc/php.d/pdo.ini

; Enable pdo extension module
extension=pdo.so

/etc/php.d/pdo_mysql.ini

; Enable pdo_mysql extension module
extension=pdo_mysql.so

php.iniの変更をApacheに反映させるにはApacheを再起動します。

service httpd restart
または
/etc/init.d/httpd restart

インストールの確認

phpinfo()でpdo_mysqlが含まれていればインストール完了です。


コマンドラインから確認する場合にはphp -iでpdo_mysqlが含まれているか確認します。

php -i | grep pdo
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
pdo_mysql
pdo_sqlite

関連記事

スポンサーリンク

バッテリーの製造番号 製造の年月がわかります

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る