エラー500&dbmodel読み取りリソースはzend_db_adapter_abstractを実装しません
-
16-10-2019 - |
質問
私は自分のウェブサイト(-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
解決
まず、
- SUPHPはマルチテナント環境でない限り、Mod_Phpを使用するだけです。管理と紛争がはるかに簡単です
- 単一のWebサーバーを備えた外部DBサーバーを使用しているのはなぜですか。ほとんどの場合、これは両方とも同じシステムにあるよりも遅くなります。
投稿した構成を見てください。 allow_file_others_writable
と allow_directory_others_writable
falseに設定されています。すなわち。これらの設定を変更するまで777を使用することは許可されていません。
しかし、SUPHPの全体的なポイントは、PHPプロセスが最初から適切なユーザーとして実行されるため、権限がタイトになる可能性があるためです(例:744および644)。
コマンドラインを介して実際にDBサーバーに接続できることを確認してください - 誤った設定されたセットアップのように見えます。
他のヒント
ストアをアップグレードしようとしているときに同じエラーが発生しました。
この問題を回避する方法、すべてのサードパーティの拡張モジュールXMLファイル(アプリ/などから)ファイルをバックアップしてから、これらのファイルをApp/etc/モジュールから削除します。
これにより、上記のエラーがなくなります。 Magentoをインストールしてから、Extensionsファイルを追加します。すべてのものが期待どおりに機能しました。
これがあなたを助けることを願っています。