現在,FreeBSD上にCakePHPを構築している作業を行っているのですが,
以下のようなエラーが出て困っています.
Fatal Error
Error: Class 'PDO' not found
File: APP_DIR/Vendor/cakephp/cakephp/lib/Cake/Model/Datasource/Database/Mysql.php
Line: 210
Notice: If you want to customize this error message, create sample/View/Errors/fatal_error.ctp
実際には,下記の通り,PHP PDOモジュールをインストール済みで,何故うまくいかないのか全くわかりません.
php -v
PHP 5.6.27 (cli) (built: Oct 25 2016 14:58:01) (DEBUG)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
php -m
[PHP Modules]
mysql
mysqli
mysqlnd
openssl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
sqlite3
Zend OPcache
[Zend Modules]
Zend OPcache
test.php として下記のファイルを用意してブラウザからアクセスしたのですが,
どうやらインストールできていないようですが,ターミナル上では問題ないようです.
1 <?php
2 if (class_exists('PDO')) {
3 print "PDO is installed";
4 } else {
5 print "PDO NOT installed";
6 }
7
8 phpinfo();
9 ?>
PDO NOT installed
php test.php
PDO is installed
お手数をおかけいたしますが,どうぞよろしくお願いいたします.
以下,追記です.
reboot
して,システムを再起動しました.
test.php をブラウザから見た結果のBuild Date に着目したところ,
Oct 22 2016 01:28:27
なのに対し,
php test.php
では,Build Dateは以下の通りとなりました.
Build Date => Oct 25 2016 14:57:52
バージョンが同じ異なる二つのPHPが混在しているのでしょうか.
ターミナル上
PHP Version => 5.6.27
ブラウザ上
PHP Version 5.6.27
再び,追記です.
そもそも,CakePHPの2.8.9とPHP5.6の相性が悪いといった事実はありますでしょうか.
当方が調べた限り,あまり関係がなさそうに見えました.
phpinfo() の実行結果を,ターミナル上,ブラウザ上に分けてご報告いたします.
まず,Additional .ini files parsed について
この項目は両者とも一致いたしました.
ターミナル上
php test.php | grep -i PDO
PDO is installedphpinfo()
/usr/local/etc/php/ext-20-pdo.ini,
/usr/local/etc/php/ext-30-pdo_dblib.ini,
/usr/local/etc/php/ext-30-pdo_firebird.ini,
/usr/local/etc/php/ext-30-pdo_mysql.ini,
/usr/local/etc/php/ext-30-pdo_odbc.ini,
/usr/local/etc/php/ext-30-pdo_pgsql.ini,
/usr/local/etc/php/ext-30-pdo_sqlite.ini,
API Extensions => mysql,mysqli,pdo_mysql
PDO
PDO support => enabled
PDO drivers => dblib, firebird, mysql, odbc, pgsql, sqlite
pdo_dblib
PDO Driver for FreeTDS/Sybase DB-lib => enabled
PDO_Firebird
PDO Driver for Firebird => enabled
pdo_mysql
PDO Driver for MySQL => enabled
pdo_mysql.debug => no value => no value
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
PDO_ODBC
PDO Driver for ODBC (unixODBC) => enabled
pdo_pgsql
PDO Driver for PostgreSQL => enabled
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
ブラウザ上
PDO NOT installed
PDO関連,存在せず
以上,よろしくお願い申し上げます.
回答2件
あなたの回答
tips
プレビュー