我正在尝试将我的网站(-s)移至新服务器。在我的旧服务器上,Magento和数据库在同一框上。此Magento安装提供两家商店。我为DB购买了两台新服务器,另一台仅用于Magento。我的迁移路径是:

  • 复制旧数据库,然后将其移至新的数据库服务器。
  • 更改app/etc/local.xml中的数据库设置。
  • 清理var/缓存和var/ sessions。

到目前为止,一切都很好。直到这里工作的一切都像往常一样,没有错误。因此,我搬到了新服务器安装Magento:

  • 下载了Magento,将其提取在Root Web文件夹中。
  • 从旧网络服务器中复制了所有(!)文件,并将其放入新的文件中。
  • 将权限更改为:

    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 /
    
  • 添加到Apache:

    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 log级别更改为 “ loglevel debug ” :(相同如果我删除或重命名缓存文件夹。没有任何帮助,我真的不知道下一步该怎么做。我尝试了很多次来重新安装,并且我几乎从一周开始就解决了问题。任何帮助都会是好的 :(

注意:

  • 如果我尝试新的安装,一切正常
  • 删除旧的local.xml文件后,一个新的安装希望在777中的某些文件夹,但在下一步(数据库初始化之后)中断了500个错误。
  • 两台服务器都有Magento的要求,这两个服务器都local.xml s都是相同的。
  • 旧的Magento服务器:
    • CentOS 5.9
    • H-Sphere 3.6.1
    • Magento社区1.7.0.2
    • mod_php
  • 新的Magento服务器:

    • CentOS 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. 您为什么使用单个Web服务器使用外部DB服务器。在大多数情况下,这将比它们都慢于同一系统。

查看您发布的配置, allow_file_others_writableallow_directory_others_writable 设置为false。 IE。在更改这些设置之前,您不允许使用777。

但是,suphp的全部要点是使权限可能紧密(例如744和644),因为PHP进程是作为合适的用户开始的。

确保您实际上可以通过命令行连接到DB服务器 - 看起来像是设置错误的配置。

其他提示

当我尝试升级商店时,我会出现同样的错误。

我如何避免此问题,备份所有第三方扩展模块XML文件(来自应用程序/etc/模块),然后从应用程序/etc/模块中删除这些文件。

这样,上述错误就消失了。我安装了Magento,然后添加扩展文件。所有事情都按预期工作。

希望这会帮助你。

许可以下: CC-BY-SA归因
scroll top