php_infoでPDO_MYSQLが表示されなかった時のメモ。

1.はじめに

CentOS6.4でFuelPHPを導入するための下準備 - 波打際のブログさん

CentOSでpdo_mysqlをインストールする方法 - BlueAnelaを参考にさせて頂きながら、

LAMP環境を作るためにPDO_MYSQLをインストールした時のメモです。

ApacheMySQL,PHPのインストールについては説明しません。

 

2.作業環境

CentOS6.5 (kenel:2.6.32-431.23.3.el6.i686)

Apache2.2.15、MySQL 5.5.39、PHP5.5.15

各々が動作していてPHPはphpinfo();を使って動作確認をしている状態。

 

3.状況

LAMP環境を作るためにPDO_MYSQLをインストールしたが、

phpinfo();を実行しているPHPのテストページにpdo_mysqlが表示されない。

 

4.原因と解決策

CentOSにPDOインストールするメモ - toytools's diaryという記事を見つけて

そもそもphp-pdoが入ってなかった事を知る。よって

yum intstall php-pdo

だけで解決する事が出来た。

 

以下、余談

5.解決までの経緯。

原因は単純なものであったが、解決するまでに結局6時間ほど悩み続けていた。

その間に試した事を以下に示す。

 

まず初めに上記にも示した

CentOS6.4でFuelPHPを導入するための下準備 - 波打際のブログさん

CentOSでpdo_mysqlをインストールする方法 - BlueAnelaの方法に従って

pdo_mysqlコンパイルしてインストール。しかし、phpinfo上に表示されなかった。

 

ここでコンパイルは成功していたのに、それでも何か抜けがあったのではないかと

訳も分からぬまま、configureのオプションを疑い始めた事で泥沼に嵌る。

その間に試した事を覚えている範囲で以下に記しておく。

 

まずPDOのドライバーインストール - PHP::PEAR - dozo PukiWikiに書かれていた下のコマンドを試した。

configure --with-pdo-mysql=/usr/local/mysql

上手くいかなかったので同サイトにあった次のコマンドも試した。

pecl install pdo_mysql

 

次にPDO_MYSQL を追加 | targzの日記 | スラッシュドット・ジャパンに書かれていた下のコマンドを試した。

configure --with-pdo-mysql=shared,/opt/local/lib/mysql5

 

その次にPDO mySQL Driver Install - Qiitaに書かれていた下のコマンドも試した。

configure --with-pdo-mysql=/usr/local/mysql --with-php-config=/usr/local/php/bin/php-config

 

上記4つのコマンドは、いずれもそのまま実行するとパスが間違ってるとエラーが出てきたので

find / -name MySQL

で出てきた結果に値を変えて片っ端から試していったが、どれもコンパイル出来ずに終わった。

ただし--with-php-configのオプションを定めた方法は/usr/bin/php-configで上手く通ったが、結局--with-pdo-mysqlの方が原因でコンパイルエラーになって諦めた。

 

それでお手上げ状態になっていたら

ケーススタディ LAMP環境の構築 MySQL・PHPの初期設定 - OBDN - 開発者向け情報 | OpenBlocksという記事で

extension=pdo_mysql.so
extension=pdo.so

と書かれているのを見てpdo.soがない事に気付き、もう一度初めの方法でpdo_mysqlコンパイルして、

あとは上に書いた通りCentOSにPDOインストールするメモ - toytools's diaryを参考に

php-pdoをインストールすると、無事にphpinfo上にpdo_mysqlの項目が出てきて解決した。

 

解決まで長かった。

結局、見当違いなところで苦しんでいた訳だ。

ひとまず時間は掛かったが解決出来てよかった。