Ошибка 500 и ресурс чтения dbModel не реализует Zend_Db_Adapter_Abstract
-
16-10-2019 - |
Вопрос
Я пытаюсь переместить свой веб-сайт(ы) на новый сервер.На моем старом сервере Magento и база данных находились в одном компьютере.Эта установка Magento обслуживает два магазина.Я купил два новых сервера: один для БД, другой только для Magento.Мой путь миграции был:
- Скопируйте старую базу данных и переместите ее на новый сервер базы данных.
- Измените настройки БД в app/etc/local.xml.
- Очищенный var/ cache и var/ sessions.
Все идет нормально.До сих пор все работает как обычно, никаких ошибок.Поэтому я перешел на новый сервер для установки Magento:
- Скачал Magento, распаковал его в корневую веб-папку.
- Скопировал все(!) файлы со старого веб-сервера и поместил на новый.
Изменены разрешения для:
chown web37:client1 * -R chown web37:client1 .htaccess find . -type d -exec chmod 755 {} \\; find . -type f -exec chmod 644 {} \\; chmod -R o+w media var chmod o+w app/etc chmod 777 includes includes/config.php rm -rf var/cache/* rm -rf var/session/*
Изменено в .htaccess с
Options +FollowSymLinks
к
Options FollowSymLinks
и
#RewriteBase /magento/
к
RewriteBase /
Добавлено в Апач:
AcceptPathInfo on
эта конфигурация возвращает
dbModel read resource does not implement Zend_Db_Adapter_Abstract
ошибка со трассировкой:
#0 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php(134): Varien_Data_Collection_Db->setConnection(false)
#1 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/Config.php(1348): Mage_Core_Model_Resource_Db_Collection_Abstract->__construct(Object(Mage_Core_Model_Resource_Website))
#2 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/Config.php(1380): Mage_Core_Model_Config->getModelInstance(\'core_resource/w...\', Object(Mage_Core_Model_Resource_Website))
#3 /var/www/clients/client1/web3/web/app/Mage.php(490): Mage_Core_Model_Config->getResourceModel(\'core/website_co...\', Object(Mage_Core_Model_Resource_Website))
#4 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/Abstract.php(208): Mage::getResourceModel(\'core/website_co...\', Object(Mage_Core_Model_Resource_Website))
#5 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/Abstract.php(213): Mage_Core_Model_Abstract->getResourceCollection()
#6 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/App.php(608): Mage_Core_Model_Abstract->getCollection()
#7 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/App.php(466): Mage_Core_Model_App->_initStores()
#8 /var/www/clients/client1/web3/web/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Model_App->_initCurrentStore(\'\', \'store\')
#9 /var/www/clients/client1/web3/web/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#10 /var/www/clients/client1/web3/web/index.php(87): Mage::run(\'\', \'store\')
#11 {main}
Если изменить права доступа к папке var на 777, сервер сообщит мне, что у него была ошибка 500, но я абсолютно ничего не вижу об этой ошибке в журналах ошибок, хотя если я изменю уровень журнала Apache на «LogLevel debug» :( То же самое если я удалю или переименую папку кеша.Ничего не помогает, и я даже не знаю, что мне делать дальше.Я много раз пытался переустановить и работаю над решением проблемы почти неделю.Любая помощь будет полезна :(
Уведомления:
- Если я попробую новую установку, все работает нормально
- Новая установка после удаления старого файла local.xml требует, чтобы некоторые папки были в 777, но прерывается на следующем этапе (после инициализации базы данных) из-за ошибки 500.
- Оба сервера соответствуют требованиям Magento, оба файла local.xml идентичны.
- Старый сервер Magento:
- ЦентОС 5.9
- H-Сфера 3.6.1
- Сообщество Magento 1.7.0.2
- mod_php
Новый сервер Magento:
- ЦентОС 6.4
- ISPConfig 3.0.5.2
- Сообщество Magento 1.7.0.2
- mod_php
suphp.conf:
[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/var/www ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT docroot=/var/www ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0022 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler for CGI-scripts x-suphp-cgi="execute:!self" umask=0022 umask=0022
Решение
Во-первых,
- SUPHP медленная, если это не многочисленная среда арендатора, просто используйте mod_php - гораздо проще в управлении и конфискации
- Почему вы используете внешний сервер DB с одним веб -сервером. В большинстве случаев это будет медленнее, чем они оба находятся в одной и той же системе.
Посмотрите на опубликованную вами конфигурацию, allow_file_others_writable
а также allow_directory_others_writable
установлен на ложь. Т.е. Вам не разрешено использовать 777, пока вы не измените эти настройки.
Но весь смысл SUPHP заключается в том, что разрешения могут быть жесткими (например, 744 и 644), потому что процесс PHP работает как правого пользователя с самого начала.
Убедитесь, что вы можете подключиться к своему DB -серверу через командную строку - он выглядит как неправильная настройка.
Другие советы
Я получил ту же ошибку, когда пытаюсь обновить магазин.
Как я избегаю этой проблемы, резервную копию всех сторонних модулей расширения XML -модуля (из приложения/и т.д./модулей), а затем удалить эти файлы из App/ETC/модулей.
При этом вышеуказанная ошибка исчезла.Я установил Magento, а затем снова добавил файлы расширений.Все работало так, как ожидалось.
Надеюсь, что это поможет вам.