0

Xampp 1.8.1 に Joomla 2.5.11 を新規インストールすると、次のエラーが発生します。

致命的なエラー: 309 行目の C:\xampp\htdocs\mysite.com\libraries\joomla\factory.php の非オブジェクトに対するメンバー関数 setDebug() の呼び出し

そのファイルのコードは次のようになります。

300     public static function getDbo()
301 {
302     if (!self::$database)
303     {
304         //get the debug configuration setting
305         $conf = self::getConfig();
306         $debug = $conf->get('debug');
307
308         self::$database = self::createDbo();
309         self::$database->setDebug($debug);
310     }
311
312     return self::$database;
313 }

インストール前にデータベースを作成しました。調べてみると、インストールプロセス後にすべての joomla テーブルが作成されていることがわかります。データベース接続の問題とは関係がないようです。それで、それは何でしょうか?

注: Joomla の公式サイトからのダウンロードを 2 回確認しましたが、パッケージが正しくダウンロードされていることは確かです。

更新: Joomla 2.5.9 を試してみたところ、同じエラーが発生しました。私の環境に何か問題があるようです (ただし、Joomla のみ、Drupal は正常に動作しています!)

更新 2: * @nibra の提案に従って、*

var_export(self::$database);
exit;

308行目以降。

**出力は次のようになります。

JDatabaseMySQLi::__set_state(array( 'name' => 'mysqli',
'nameQuote' => '`',
'nullDate' => '0000-00-00 00:00:00',
'dbMinimum' => '5.0.4',
'database' => 'psychology',
'connection' => mysqli::_set_state(array( 'affected_rows' => NULL,
'client_info' => NULL,
'client_version' => NULL,
'connect_errno' => NULL,
'connect_error' => NULL,
'errno' => NULL,
'error' => NULL,
'error_list' => NULL,
'field_count' => NULL,
'host_info' => NULL,
'info' => NULL,
'insert_id' => NULL,
'server_info' => NULL,
'server_version' => NULL,
'stat' => NULL,
'sqlstate' => NULL,
'protocol_version' => NULL,
'thread_id' => NULL,
'warning_count' => NULL,
)),
'count' => 0,
'cursor' => NULL,
'debug' => false,
'limit' => 0,
'log' => array ( ),
'offset' => 0,
'sql' => NULL,
'tablePrefix' => 'fqd1p_',
'utf' => true,
'errorNum' => 0,
'errorMsg' => NULL,
'hasQuoted' => false,
'quoted' => array ( ),
))

更新 3: コメント終了後の出力:

JDatabaseMySQLi::__set_state(array( 'name' => 'mysqli',
'nameQuote' => '`',
'nullDate' => '0000-00-00 00:00:00',
'dbMinimum' => '5.0.4',
'_database' => 'psychology',
'connection' => mysqli::__set_state(array( 'affected_rows' => NULL,
'client_info' => NULL,
'client_version' => NULL,
'connect_errno' => NULL,
'connect_error' => NULL,
'errno' => NULL,
'error' => NULL,
'error_list' => NULL,
'field_count' => NULL,
'host_info' => NULL,
'info' => NULL,
'insert_id' => NULL,
'server_info' => NULL,
'server_version' => NULL,
'stat' => NULL,
'sqlstate' => NULL,
'protocol_version' => NULL,
'thread_id' => NULL,
'warning_count' => NULL,
)),
'count' => 0,
'cursor' => NULL,
'debug' => false,
'limit' => 0,
'log' => array ( ),
'offset' => 0,
'sql' => NULL,
'tablePrefix' => 'fqd1p_',
'utf' => true,
'errorNum' => 0,
'errorMsg' => NULL,
'hasQuoted' => false,
'quoted' => array ( ),
)) 

少し違いがあります。

'_database' => 'psychology',
'connection' => mysqli::__set_state(array( 'affected_rows' => NULL,

それ以外の

'database' => 'psychology',
'connection' => mysqli::_set_state(array( 'affected_rows' => NULL,

それは何を意味するハックですか?

4

3 に答える 3

0

問題が解決しました!

PHPのパフォーマンスを改善するために、php.iniの設定を少し前に変更したことを思い出しました。このエラーの原因と思われる設定は、zend eaccelerator のようです。

zend_extension = "C:\xampp\php\ext\php_eaccelerator_ts.dll"

その行をコメントアウトしたので、すべて問題ありません。

助けてくれたすべての人に感謝し、この問題を解決するモチベーションを維持してくれました:)

于 2013-06-04T19:57:11.330 に答える
0

$conf->get('debug')空の値を返しています。も$debug空です。setDebug()モデルにメソッド getDebug() が存在することを確認し、存在する場合は、モデルが現在のモジュールで使用されているかどうか、または正しいモデルが使用されているかどうかを確認します。

新規インストールの場合、関連するコードの一部がプロセス中に欠落している可能性があります。

于 2013-06-03T14:13:02.763 に答える