59
PHP Fatal error:  Class 'PDO' not found in /home/bd/public_html/app/webroot/Cake/Model/Datasource/Database/Mysql.php on line 177

PHP 情報:

PDO

PDO support => enabled
PDO drivers => sqlite, sqlite2, mysql

pdo_mysql

PDO Driver for MySQL => enabled
Client API version => 5.5.24

Directive => Local Value => Master Value
pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock

pdo_sqlite

PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.7.7.1

PHP INI:

extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

コード:

/**
 * Check whether the MySQL extension is installed/loaded
 *
 * @return boolean
 */
        public function enabled() {
                return in_array('mysql', PDO::getAvailableDrivers());
        }

このエラーが発生する理由についてのアイデアはありますか?

PHP 5.3.15 CloudLinux/CentOS 6 CPanel

4

15 に答える 15

71

試す

 yum install php-pdo
 yum install php-pdo_mysql

 service httpd restart
于 2013-05-10T04:04:29.287 に答える
22

php.iniこれは、Web アプリの現在の作業ディレクトリにファイルがある場合にも発生する可能性があります。特定の設定を変更するためにそこに配置されている場合、グローバル設定を上書きします。

この問題を回避するには、php.iniファイルを使用して設定を変更しないでください。代わりに、次のことができます。

  • vhost 宣言で設定を指定する
  • .htaccessでファイルを使用しますphp_flag(ここを参照)
  • .user.iniファイルを使用する(ここを参照)
于 2013-03-07T06:39:31.087 に答える
15

それらが php.ini ファイルで呼び出されていることを確認します

現在インストールされている php モジュールのリストに PDO が表示されている場合は、関連するフォルダー内の php.ini ファイルをチェックして、それらが呼び出されていることを確認する必要があります。php.ini ファイルのどこかに次のように表示されます。

extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=sqlite.so

存在しない場合は、上記の行を php.ini ファイルの最後に追加して保存します。

于 2015-01-02T19:16:04.617 に答える
10

ファイルの完全なソースは何ですかMysql.php。php 情報リストの出力に基づいて、名前空間内からグローバル クラスを参照しようとしている可能性があるようです。

ファイルMysql.phpに "namespace " ステートメントが含まれている場合は\PDO、代わりにPDO- を使用します。これにより、ローカルの名前空間ではなく、グローバル クラスを探すように PHP に指示します。

于 2012-08-06T05:35:24.007 に答える
3

GoDaddyでも同じ問題がありました。を追加しましたextension=pdo.sophp.ini、まだ機能しませんでした。そして、私の頭に浮かんだことは 1 つだけです

ファイルをアップロードする前に、すべての PHP プロセスを強制終了します (cPanel->PHP プロセス)。

問題は、ファイルのパーミッションが に設定されていて0644、実行できないことでした。少なくともファイル許可を設定する必要があります0755

権限

于 2016-06-25T11:37:30.417 に答える
1

このエラーはPDO、PHPで使用できないことが原因で発生します。

コマンドラインでエラーが発生した場合、またはWebサイトがPHPに使用しているのと同じインターフェイスを介してエラーが発生した場合は、異なるバージョンのPHPを呼び出しているかphp.ini、チェック時に別の構成ファイルを使用している可能性がありますphpinfo()

PDOがロードされていること、およびデータベースのPDOドライバーもロードされていることを確認します。

于 2012-08-06T05:29:07.133 に答える
-1

長い間、私はついにそれを解決しました。Cpanel のフォルダーをチェックして、php.ini ファイルがあるかどうかを確認します。はいの場合、Cpanel は独自の php.ini を使用するため、削除します

于 2021-09-09T03:41:30.420 に答える
-1

cPanel でこのエラーが発生した場合は、cPanel で PHP のバージョン タイプを確認してください。に変更alt-phpea-phpます。この設定は私にとってはうまくいきました。

于 2021-09-07T06:20:09.270 に答える