質問

私は自分のウェブサイト(-s)を新しいサーバーに移動しようとしています。私の古いサーバーでは、Magentoとデータベースが同じボックスにありました。このMagentoのインストールは2つの店舗にサービスを提供しています。 DB用に2つの新しいサーバーを購入し、1つはMagentoのみを購入しました。私の移行経路は次のとおりです。

  • 古いデータベースをコピーして、新しいデータベースサーバーに移動します。
  • App/etc/local.xmlのDB設定を変更します。
  • var/キャッシュとvar/ sessionsをクリーンアップしました。

ここまでは順調ですね。ここまですべてが通常どおりに機能し、エラーはありません。そこで、Magentoをインストールするために新しいサーバーに移動しました。

  • Magentoをダウンロードし、ルートWebフォルダーで抽出しました。
  • 古いWebServerからすべての(!)ファイルをコピーして、新しいファイルを新しいものにしました。
  • 許可を変更しました:

    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ログレベルを "logLevel debug "に変更した場合キャッシュフォルダーを削除または名前を削除した場合。何も役に立ちませんし、次に何ができるか本当にわかりません。何度も何度も再インストールしてみました。良い :(

通知:

  • 新鮮なインストールを試してみると、すべてが正常に機能します
  • 古いlocal.xmlファイルを削除した後の新しいインストールは、777の一部のフォルダーを必要としますが、500エラーで次のステップ(データベースの初期化の後)で破損します。
  • 両方のサーバーにはMagento要件があり、両方のLocal.xml 'は同一です。
  • 古いMagentoサーバー:
    • Centos 5.9
    • h-sphere 3.6.1
    • Magento Community 1.7.0.2
    • mod_php
  • 新しいMagentoサーバー:

    • Centos 6.4
    • ISPCONFIG 3.0.5.2
    • Magento Community 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に設定されています。すなわち。これらの設定を変更するまで777を使用することは許可されていません。

しかし、SUPHPの全体的なポイントは、PHPプロセスが最初から適切なユーザーとして実行されるため、権限がタイトになる可能性があるためです(例:744および644)。

コマンドラインを介して実際にDBサーバーに接続できることを確認してください - 誤った設定されたセットアップのように見えます。

他のヒント

ストアをアップグレードしようとしているときに同じエラーが発生しました。

この問題を回避する方法、すべてのサードパーティの拡張モジュールXMLファイル(アプリ/などから)ファイルをバックアップしてから、これらのファイルをApp/etc/モジュールから削除します。

これにより、上記のエラーがなくなります。 Magentoをインストールしてから、Extensionsファイルを追加します。すべてのものが期待どおりに機能しました。

これがあなたを助けることを願っています。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top