Opencart致命错误:在非对象上调用成员函数get()

时间:2012-10-05 00:25:21

标签: configuration-files opencart fatal-error

尝试从本地主机迁移到新服务器。全新安装工作正常,没有问题。当我上传我的文件时,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_');
?>

管理员/ 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_');
?>

对此有任何帮助将不胜感激。

9 个答案:

答案 0 :(得分:3)

我正在使用opencart并安装了vqmod。 突然间,我有一个相同的错误。

这解决了我的问题: 在system / library / session.php中 将开始会话替换为:

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

答案 1 :(得分:0)

最可能的问题是您的一个或多个库文件在上传时已损坏。重新上传您当地的system/library/文件夹。您的配置文件看起来很好,错误不会引用配置问题。您的index.php文件中的第103行是什么内容?

答案 2 :(得分:0)

请交叉检查您是否已设置所有权限   我遇到了这个错误并得到了解决,   这是由于文件权限问题

答案 3 :(得分:0)

将网站迁移到新的VPS环境后,我遇到了同样的问题。我认为它与改变的文档根路径或我店铺的权限有关,并且已经掏出了很多头发试图解决问题的核心。

我终于意识到我对PHP会话数据存储的权限不正确!在我的例子中,/ var / lib / php / session /的文件夹由apache拥有(当然),但是我已经将apache更改为以不同的用户身份运行,因此它无法再写入会话存储。

在这种情况下的错误消息是神秘的(至少可以说!)并没有提供问题可能只是缺少写入权限的线索!

哦,我们现在应该知道,90%的unix问题都归结为烫发!

答案 4 :(得分:0)

我在我的服务器上上传文件(目录:vqmod / .... php)。

只需更改vqmod文件权限即可。我设置了777,解决了它。

答案 5 :(得分:0)

从您收到的错误中,看起来$config变量未设置。 使用$config

中的Config类在第35行设置system/library/config.php变量

我认为如果你弄清楚为什么没有实例化这个类,你就能解决这个问题。 这可能是几件事:

  • system/library/config.php文件可能尚未上传到新服务器
  • 如前面的答案中所述,可能存在权限问题。检查system/library/config.php的权限,并确保正确的用户拥有所有权。
  • 或者它可能是一个完全不相关的问题。

答案 6 :(得分:0)

错误是由缓存文件夹上设置的权限引起的。将其设置为755,将文件设置为555并将其设置为原位并干燥。

答案 7 :(得分:-1)

我有同样的问题。我将vqmod权限更改为777.我不确定这是否解决了问题,但我检查了我的网站而没有添加www。在域之前它工作。如果我检查http://daytodaystore.com,则会删除警告。如果我检查http://www.daytodaystore.com,则会出现警告。

答案 8 :(得分:-3)

当我在Godaddy上将服务器从2G迁移到4GH时,我遇到了这个问题。 来到这个论坛,发现问题在于session.php 然后,我猜测'tmp'文件夹丢失了。所以,我在html文件夹上创建了一个步骤。并给了它777访问权限。问题得到解决,之后我的网站看起来很棒。