php_infoでPDO_MYSQLが表示されなかった時のメモ。
1.はじめに
CentOS6.4でFuelPHPを導入するための下準備 - 波打際のブログさんや
CentOSでpdo_mysqlをインストールする方法 - BlueAnelaを参考にさせて頂きながら、
LAMP環境を作るためにPDO_MYSQLをインストールした時のメモです。
ApacheやMySQL,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が入ってなかった事を知る。よって
だけで解決する事が出来た。
以下、余談
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
上手くいかなかったので同サイトにあった次のコマンドも試した。
次に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の項目が出てきて解決した。
解決まで長かった。
結局、見当違いなところで苦しんでいた訳だ。
ひとまず時間は掛かったが解決出来てよかった。