1

私は非常に奇妙な状況に陥りました。

共有ホスティングでホストされている私の Web サイトが突然動作しなくなり、致命的なエラーが報告されました: クラス 'PDO' が見つかりません

そこで、 test.phpという検証ファイルを作成し、public_html フォルダーに配置しました。

test.php:

<?php
if (class_exists('PDO')) {
  print "PDO is installed"; 
}
else {
  print "PDO NOT installed";
}

phpinfo();
?>

したがって、上記のスクリプトは、PDO クラスが存在するかどうかを確認し、その直後に、何がインストールされ、有効化されているかに関する php 情報を出力します。

最初に、SSH ターミナルでいくつかのテストを行いました。

  • test.php を実行する前に、インストールされているモジュールをチェックしまし
  • 次に、$ cd public_html $ php -f test.phpを実行しました。PDO クラスがインストールされ、PDO と PDO_mysql の両方が phpinfo() 呼び出しからリストされたことが返されました。

次に、web ブラウザーで test.php を実行しました。PDO がインストールされていないことを返し、PDO と PDO_mysql のいずれかが phpinfo() 印刷呼び出しにリストされていました。

何がそのような行動を引き起こす可能性がありますか?

アップデート:

以下の拡張行を php.ini に追加しようとしましたが、問題は解決しません。また、 get_cfg_var('cfg_file_path')を呼び出して、これらの行を正しい php.ini ファイルに追加したことを確認しました。

拡張子=pdo.so

拡張子=pdo_mysql.so

4

3 に答える 3

1

わかりました、他の誰かが同じ問題に直面した場合に備えて、この問題をどのように修正したかを次に示します。

php.ini ファイルのコピーを作成し、元のファイルを削除し、web ブラウザーを使用してtest.phpファイルを更新し、php.ini ファイルを元の場所にコピーしました。

そして、それはそれを修正しました。

于 2013-04-27T07:39:18.077 に答える
1

Ubuntu 13.04 では、他の OS で同じかどうかはわかりませんが、

からのpdoファイルの移動

/var/lib/php5/modules/apache2/enabled_by_admin

/var/lib/php5/modules/apache2/enabled_by_maint

このクリスマスの日に php をハッピーにして、それを phpinfo() で正しく宣言してください。

于 2013-12-25T08:22:58.633 に答える