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. Проблема была исправлена, и после этого мой сайт отлично выглядит.