Opencart Fatal error: вызов функции-члена get() для не-объекта

Попытка перемещения с локального хоста на новый сервер. Свежая установка работала нормально, никаких проблем. Когда я загружал свои файлы, mydomain.com/admin появляется с белым экраном, а mydomain.com создает эту ошибку:

Неустранимая ошибка: вызовите функцию-член get() для не-объекта в /home 4/pawpostc/public_html/index.php в строке 103.

Итак, я взглянул на строку 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_');
?>

Любая помощь по этому поводу будет оценена.

Ответ 1

Я использовал opencart и установил vqmod. Внезапно у меня одна из тех же ошибок.

Это решило мою проблему: в системе /library/session.php замените стартовый сеанс на:

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

Ответ 2

Наиболее вероятной проблемой является то, что один или несколько файлов вашей библиотеки повреждены при загрузке. Загрузите свою папку system/library/ из своей локальной. Ваши файлы конфигурации кажутся точными, и ошибка не ссылается на проблему с конфигурацией. Что такое строка 103 в вашем файле index.php?

Ответ 3

Пожалуйста, перекрестите проверку, вы установили все разрешения я столкнулся с этой ошибкой и был решен, это связано с проблемой разрешения файлов

Ответ 4

Я пытался справиться с такой же проблемой после переноса моего сайта в новую среду VPS. Я полагал, что это должно быть связано с измененным корневым корнем или разрешениями моего магазина и вытащил много волос, пытаясь понять суть проблемы.

Я наконец понял, что у меня были неправильные разрешения для моего хранилища данных сеанса PHP! В моем случае папка в/var/lib/php/session/принадлежала Apache (естественно), но я изменил apache для запуска как другой пользователь, чтобы он больше не мог писать в хранилище сеансов.

Сообщения об ошибках в этом случае являются загадочными (если не сказать больше!) и не дали понять, что проблема может быть просто отсутствием разрешения на запись!

Хорошо, теперь мы должны знать, что 90% проблем unix доходят до perms!

Ответ 5

Я загружаю файл на свой сервер (каталог: vqmod/.... php).

Просто измените разрешение файла vqmod. Я установил 777 и решил это.

Ответ 6

Из полученной вами ошибки выглядит, что переменная $config не устанавливается. Переменная $config устанавливается в строке 35 с использованием класса Config, который находится в system/library/config.php

Я думаю, если вы поймете, почему класс не получает экземпляр, вы сможете исправить проблему. Это может быть несколько вещей:

  • Возможно, файл system/library/config.php не был загружен на новый сервер
  • Как упоминалось в предыдущих ответах, проблема может быть решена. Проверьте разрешения system/library/config.php и убедитесь, что правильный пользователь имеет право собственности.
  • Или это может быть совершенно не связанная проблема.

Ответ 7

Ошибка связана с полномочиями, установленными в папке кеша. Установка этого параметра на 755 и файлов на 555, чтобы вы были дома и сухими.

Ответ 8

У меня была такая же проблема. Я изменил разрешение vqmod на 777. Я не уверен, что это решило проблему, но я проверил свой сайт без добавления www. перед доменом, и он работал. Предупреждение было удалено, если я проверил http://daytodaystore.com. Если я проверю http://www.daytodaystore.com, там будет предупреждение.

Ответ 9

У меня была эта проблема, когда я перенес мой сервер с 2G на 4GH на Godaddy. Вышел на этот форум и обнаружил, что проблема связана с session.php Затем я догадался, что папка "tmp" отсутствует. Итак, я создал только один шаг выше html-папки. и дал ему доступ 777. Проблема была исправлена, и после этого мой сайт отлично выглядит.