web-dev-qa-db-ja.com

Opencart致命的なエラー:非オブジェクトでメンバー関数get()を呼び出す

ローカルホストから新しいサーバーに移動しようとしています。新規インストールは問題なく機能しました。ファイルをアップロードすると、mydomain.com/adminに白い画面が表示され、mydomain.comで次のエラーが発生します。

致命的なエラー:103行目の/home4/pawpostc/public_html/index.phpにある非オブジェクトのメンバー関数get()を呼び出します。

そこで、index.phpの103行目を見てみました。

if ($config->get('config_error_display')) {
        echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on     line <b>' . $errline . '</b>';
    }

設定ファイルに問題があるようです。それで私は行ってそれらを見ました。私はそれらを数回調べましたが、間違いを見つけることができず、おそらく何かが欠けているので、ここに設定ファイルがあります。

config.php(私のルートwww。フォルダー内):

<?php
// HTTP
define('HTTP_SERVER', 'http://www.pawpost.com.au/');
define('HTTP_IMAGE', 'http://www.pawpost.com.au/image/');
define('HTTP_ADMIN', 'http://www.pawpost.com.au/admin/');

// HTTPS
define('HTTPS_SERVER', 'http://www.pawpost.com.au/');
define('HTTPS_IMAGE', 'http://www.pawpost.com.au/image/');

// DIR
define('DIR_APPLICATION', '/home4/pawpostc/public_html/catalog/');
define('DIR_SYSTEM', '/home4/pawpostc/public_html/system/');
define('DIR_DATABASE', '/home4/pawpostc/public_html/system/database/');
define('DIR_LANGUAGE', '/home4/pawpostc/public_html/catalog/language/');   
define('DIR_TEMPLATE', '/home4/pawpostc/public_html/catalog/view/theme/');
define('DIR_CONFIG', '/home4/pawpostc/public_html/system/config/');
define('DIR_IMAGE', '/home4/pawpostc/public_html/image/');
define('DIR_CACHE', '/home4/pawpostc/public_html/system/cache/');
define('DIR_DOWNLOAD', '/home4/pawpostc/public_html/download/');
define('DIR_LOGS', '/home4/pawpostc/public_html/system/logs/');

// DB
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'my user name');
define('DB_PASSWORD', 'my password');
define('DB_DATABASE', 'my database');
define('DB_PREFIX', 'oc_');
?>

admin/config.php:

<?php
// HTTP
define('HTTP_SERVER', 'http://www.pawpost.com.au/admin/'); 
define('HTTP_CATALOG', 'http://www.pawpost.com.au/');
define('HTTP_IMAGE', 'http://www.pawpost.com.au/image/');

// HTTPS
define('HTTPS_SERVER', 'http://www.pawpost.com.au/admin/');
define('HTTPS_CATALOG', 'http://www.pawpost.com.au/');
define('HTTPS_IMAGE', 'http://www.pawpost.com.au/image/');

// DIR
define('DIR_APPLICATION', '/home4/pawpostc/public_html/admin/');
define('DIR_SYSTEM', '/home4/pawpostc/public_html/system/');
define('DIR_DATABASE', '/home4/pawpostc/public_html/system/database/');
define('DIR_LANGUAGE', '/home4/pawpostc/public_html/admin/language/');
define('DIR_TEMPLATE', '/home4/pawpostc/public_html/admin/view/template/');
define('DIR_CONFIG', '/home4/pawpostc/public_html/system/config/');
define('DIR_IMAGE', '/home4/pawpostc/public_html/image/');
define('DIR_CACHE', '/home4/pawpostc/public_html/system/cache/');
define('DIR_DOWNLOAD', '/home4/pawpostc/public_html/download/');
define('DIR_LOGS', '/home4/pawpostc/public_html/system/logs/');
define('DIR_CATALOG', '/home4/pawpostc/public_html/catalog/');

// DB
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'my user name');
define('DB_PASSWORD', 'my password');
define('DB_DATABASE', 'my database');
define('DB_PREFIX', 'oc_');
?>

これに関する助けをいただければ幸いです。

10
Travis

私はopencartを使用していて、vqmodをインストールしました。突然、同じエラーの1つが発生しました。

これで私の問題は解決しました:system/library/session.phpで、startsessionを次のように置き換えます。

session_save_path(realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../tmp'));
3
carley

このエラーは、キャッシュフォルダに設定されている権限が原因です。それを755に設定し、ファイルを555に設定すると、家に帰って乾かします。

0
Lightwaxx

受け取ったエラーから、$config変数が設定されていないようです。 $config変数は、system/library/config.phpにあるConfigクラスを使用して35行目に設定されています。

クラスがインスタンス化されない理由を理解すれば、問題を修正できると思います。これはいくつかの可能性があります:

  • system/library/config.phpファイルが新しいサーバーにアップロードされていない可能性があります
  • 以前の回答で述べたように、権限の問題がある可能性があります。 system/library/config.phpの権限を確認し、正しいユーザーが所有権を持っていることを確認してください。
  • または、まったく関係のない問題である可能性があります。
0
troskater

サーバーにファイルをアップロードします(ディレクトリ:vqmod/.... php)。

Vqmodファイルのパーミッションを変更するだけです。私は777を設定し、それで解決しました。

0
Fatihd

このエラーに遭遇して解決されたすべてのアクセス許可を設定したことをクロスチェックしてください。これはファイルのアクセス許可の問題が原因でした。

0
Akhilraj N S

サイトを新しいVPS環境に移行した後、同じ問題に苦しんでいました。私はそれが変更されたドキュメントルートパスまたは私のショップの許可と関係があると考え、問題の核心に到達しようとして多くの髪を引っ張った。

PHP session-data store!私の場合、/ var/lib/php/session /のフォルダーは(当然のことながら)Apacheが所有していたのですが、 Apacheを別のユーザーとして実行するように変更したため、セッションストアに書き込めなくなりました。

この場合のエラーメッセージは(控えめに言っても)不可解であり、問​​題が書き込み権限の欠如である可能性があるという手がかりを与えませんでした!

まあ、UNIXの問題の90%がパーマにかかっていることを今では知っているはずです!

0
Clive Austin

最も可能性の高い問題は、1つ以上のライブラリファイルがアップロードによって破損していることです。ローカルフォルダからsystem/library/フォルダを再アップロードします。設定ファイルは問題ないようで、エラーは設定の問題を参照していません。 index.phpファイルの103行目は何ですか?

0
Jay Gilford