Вопрос

Я пытаюсь переместить свой веб-сайт(ы) на новый сервер.На моем старом сервере 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
      
Это было полезно?

Решение

Во-первых,

  1. SUPHP медленная, если это не многочисленная среда арендатора, просто используйте mod_php - гораздо проще в управлении и конфискации
  2. Почему вы используете внешний сервер DB с одним веб -сервером. В большинстве случаев это будет медленнее, чем они оба находятся в одной и той же системе.

Посмотрите на опубликованную вами конфигурацию, allow_file_others_writable а также allow_directory_others_writable установлен на ложь. Т.е. Вам не разрешено использовать 777, пока вы не измените эти настройки.

Но весь смысл SUPHP заключается в том, что разрешения могут быть жесткими (например, 744 и 644), потому что процесс PHP работает как правого пользователя с самого начала.

Убедитесь, что вы можете подключиться к своему DB -серверу через командную строку - он выглядит как неправильная настройка.

Другие советы

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

Как я избегаю этой проблемы, резервную копию всех сторонних модулей расширения XML -модуля (из приложения/и т.д./модулей), а затем удалить эти файлы из App/ETC/модулей.

При этом вышеуказанная ошибка исчезла.Я установил Magento, а затем снова добавил файлы расширений.Все работало так, как ожидалось.

Надеюсь, что это поможет вам.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top