質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

8140閲覧

Fatal error: Class 'PDO' not found

K_T_T_K

総合スコア231

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2014/11/15 02:50

CentOS6系にNginx・PHP・Mysqlをインストール・設定しました。
PHPは現状5.3です。

そこで、Mysql接続をPDOで行ったのですが、
Fatal error: Class 'PDO' not found
とでます。

前回も同じエラーが出たため、

php.iniに追加
#Vim /etc/php.ini
extension=pdo_mysql.so;
extension=pdo.so;

yum install php-pdo
yum install php-mysql

php-mを見てみたところ、
PDOはあります。

php/nginxを再起動かけてもブラウザを更新しても
Fatal error: Class 'PDO' not found
とエラーが出ます。

phpinfoではPDOはありません。

以下PHPコードです。

lang

1<?php 2error_reporting(-1); 3ini_set('display_errors', 1); 4$host = "localhost"; 5$user = "root"; 6$password = "○○";//伏せてます。 7$dbname = "○○";//伏せてます。 8 9try { 10 $pdo = new PDO("mysql:host={$host}; dbname={$dbname}; charset=utf8;",$user,$password); 11 echo 'success'; 12} catch (PDOException $e) { 13 echo "error:" . $e->getMessage() . "<br>"; 14 die(); 15}

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

投稿2014/11/16 04:02

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Nginx なら php-fpm だと思うので php-fpm を再起動する必要がありますが試されましたか?

service php-fpm restart

** 追記 2014/11/16 13:00 **

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_int64_to_str in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlite.so' - /usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: php_pdo_register_driver in Unknown on line 0

かなりめずらしいエラーメッセージですが pdo_mysql.so や pdo_sqlite.so をロードしようとしたときに未解決の外部参照が解決できないためです。

シンボル名が php_pdo_int64_to_strphp_pdo_register_driver なので、pdo.so で定義されているものだと思います。

言っている意味がわからないかもしれませんが、要するに pdo.so がロードされていないためです。

extention=pdo.so をすべてコメントアウトしたからではないでしょうか?

投稿2014/11/15 14:22

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_T_T_K

2014/11/15 23:47

はい。 試しました。 php5.3だったので5.4にしたところエラーは消えたのですが error:could not find driver というエラーが出るようになってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問