Magento 완전히 끊어졌습니다 : Boolean에서 멤버 함수 getCode ()를 호출하고 404 개의 CMS 페이지가 구성되었거나 발견되지 않았습니다.

magento.stackexchange https://magento.stackexchange.com//questions/87164

문제

갑자기 (변경이나 업데이트가 없으면) Magento 설치가 완전히 깨졌습니다.

매일 우리는 이제이 오류 중 일부를 얻습니다.

  1. 액세스 / 인덱스에 액세스 할 때 구성되거나 발견 된 404 CMS 페이지가 없었습니다.
  2. Magento Installer는 액세스 / index
  3. 에 갑자기 나타납니다.
  4. 템플릿이 표시되지 않습니다 (그림과 같이 그림 참조)
  5. 여기에 이미지 설명을 입력하십시오 >>

    1. 이상한 리디렉션. 모든 것이 효과가있는 것 (404 년 CMS 오류 없음, 템플릿 문제 없음)과 제품을 방문하려고 노력하는 경우 가끔 홈 페이지로 리디렉션됩니다.
    2. 잘, 지금까지 한 일은 다음과 같습니다 :

      1. 플러시 캐시 폴더, 플러시 된 세션 폴더
      2. 잘린 테이블 Core_URL_REWRITE
      3. 그것은 일하는 것처럼 보였습니다. 재명의 reindexing (core_url_rewrite) 이후 다시는 다시 부서지는 것처럼 보였으므로 다시 잘립니다. 빈 core_url_rewrite와 함께 괜찮아 보였습니다. 그러나 그 다음날 그것은 다시 깨졌습니다.

        웰과 오늘은 다시 동일하지만 오늘날 플러시 캐시, 세션 및 core_url_rewrite가 더 이상 작동하지 않는 것은 처음입니다.

        OH이며 NGINX 오류 로그에 표시됩니다.

        [오류] 11773 # 11773 # 11779 # 11779 # 11779 # 11779 # 117799 : stderr : "PHP 메시지 : PHP 치명적인 오류 : 부울의 멤버 함수 getCode ()에 호출 / htdocs / seg_posorder / stage / 앱 / 코드 / 코어 / 마법사 /customer/model/session.php on 71 "업스트림에서 응답 헤더를 읽는 동안"클라이언트 : 217.24.xx, 서버 : www.example.com, 요청 : "/ index.php/customer/account/login/ http / 1.1 ", 업스트림 :"FASTCGI : // UNIX : /var/run/php5-fpm.sock : ", 호스트 :"www.example.com ", 추천자 :"example.com "

        그러나 우리의 상점들도 괜찮아 보입니다 :

        여기에 이미지 설명을 입력하십시오 >>

도움이 되었습니까?

해결책

@moose와 채팅하기로 결정했습니다. 이것은 나 자신에게 대답으로.

"No 404 CMS 페이지가 구성된"오류가 발생하거나 - "100 라우터 일치 반복"오류가 발생합니다. 오류는 캐시를 플러시 할 때 오류가 없지만 일반적으로 언젠가는 다시 나타납니다.

https://github.com/curvenient/magento-ce- ee-config-confiron-bug

(편집 : 구성 손상을 방지하기 위해 추가 변경 사항을 추가 할 수 있습니다. https://github.com/curvenient/magento-ee-config-corruption-bug#update-2-further-improvements )

복제

위의 저장소를 확인하십시오.

파일 100-Router-script.php 웹 사이트의 루트에서 실행하여 오류를 복제하는 데 도움이됩니다.

패치

마젠토는 내 쓰기를 기반으로 패치 (Sopee-4755)를 출시했습니다.

이 패치는 일부 유효성을 부여하는 내 수정과 동일합니다.

이 패치는 Magento가하지 않는 곳에 공개적으로 나열되지 않습니다. 어떤 이유로 보안 패치를 제외한 모든 것. 나는 그를 알고있다 패치 파일은 EE_1.13.1.0을 말하지만 커뮤니티 버전 1.9에서 테스트했습니다. 그리고 그것은 벌금을 쌓았습니다.

여기에서 패치 사본을 잡을 수 있습니다. https : / / github.com/ccrvenient/magento-ee--config-corruption-bug/blob/master/patch_supee-4755_ee_1.13.1.0_v1.sh

및 역사적인 이유로 또는 GitHub 계정이 삭제 된 경우

/**
* Initialization of core configuration
*
* @return Mage_Core_Model_Config
*/
public function init($options=array())
{
    $this->setCacheChecksum(null);
    $this->_cacheLoadedSections = array();
    $this->setOptions($options);
    $this->loadBase();

    $cacheLoad = $this->loadModulesCache();
    if ($cacheLoad) {
        return $this;
    }
    //100 Router Fix Start
    $this->_useCache = false;
    //100 Router Fix End
    $this->loadModules();
    $this->loadDb();
    $this->saveCache();
    return $this;
}
.

이것이 마그네토 인스턴스를 고치지 않는 경우

이 패치 파일은 모든 합리적인 바닐라 마젠토 인스턴스 (정의 된 init 또는 reinit 메소드를 사용하여 구성 캐시를 다시 초를 다시 초기화하는 것)을 해결합니다.

n98-magerun - 나쁜 시간을 보내고 코드를 리팩토링하여 reinit에서 init 또는 Mage_Core_Model_Config를 호출하는 것을 고려해야합니다.

여전히 문제가 있으면, 나는 당신이 쓰는 것을 읽고

를 읽는 것이 좋습니다.

  1. 디버깅에 언급 된 논리 구현 문제 섹션.
  2. 일부 로그 데이터가 나타나기를 기다리십시오.
  3. 저에게 연락하십시오!
  4. Supee 6788이 오류가 더 나쁜 이유를

    이라는 이유로

    방금 대화방에 이것을 게시하고 후손을 위해 여기에 튀어 나올 것으로 생각했습니다.

    기억해야 할 것은 Magento가 항상이 버그를 가지고 있었다는 것입니다. 그것의 배경에. 그리고 Sopee 6788은 방금 그것을 만들었습니다 그럴 가능성이 더 높습니다

    나는 단지 ee1.14에 대한 Sopee 6788 패치를 살펴 보았습니다. 이것은 나의 일 이론이다.

    mage_core_controller_varien_router_admin이 패치를 처리했습니다 addModule 기능

    이제는 마법사 요청 초기화 중에 발생하는 순서를 호출 할 수는 없지만이 수정은 이제 Mage :: getConfig () -> getNode ()에 대한 두 개의 호출을 각각에 추가합니다. 흐름. 이 두 호출 중 하나에서 UseCache가있는 오브젝트 캐시 패러 오류가 발생한 경우 잠재적으로 캐시에 기록되는 불완전한 구성을 트리거 할 수 있습니다 (GetNode는 캐시에서 값을로드하려고 시도하므로 재료를 트리거 할 수 있으며 실패한로드, 전체 구성 캐시를 재생하고 reinit () 함수를 통해 다시 저장합니다)

    이 두 가지 추가 GetNodes를 매우 초기 부분에 추가하기 만하면됩니다. 요청의 전체 구성이로드되지 않을 수 있습니다. 이 오류가 일어나는 일이 일어날 일을 일으켰습니다. 문제에 대한 이해. 많은 일이 아닌 많은 일이 될 것입니다. GAIN, MAGE_CORE_MODEL_CONFIG :: LOADDB (초점을 맞추고 useCache 플래그가 그 어떤 영향을 미칠 수 있음) 남자를 운전할 수 있습니다. 미친.

다른 팁

당신이 묘사 한 문제의

PHP의 libxml 라이브러리의 버그가 있습니다. 나는 그것이 이 하나의 -이는 Magento가 자체 구성 파일 중 일부를로드하지 못하는 경우가 있습니다.오픈에서 문제를 가져온 저준 수준의 업데이트 (PHP 또는 라이브러리 중 하나)가 발견되었을 수 있습니다.

index.php 에이 행을 추가 해보십시오. 시작 근처 (PHP 버전 확인 직후에 넣어)

libxml_disable_entity_loader(false);
.

Nexcess (마젠토 플래티넘 호스팅 파트너)는 Github의 솔루션으로 가리키 셨습니다 ( 루크로드 , 패치 작성자

Magento Bug - 손상된 구성 캐시

이 패치는 일부 유효성을 부여하는 내 수정과 동일합니다.

이 패치는 Magento가하지 않는 곳에 공개적으로 나열되지 않습니다. 어떤 이유로 보안 패치를 제외한 모든 것. 나는 그를 알고있다 패치 파일은 EE_1.13.1.0을 말하지만 커뮤니티 버전 1.9에서 테스트했습니다. 그리고 그것은 벌금을 쌓았습니다.

이 페이지는 당신에게 전체 설명 100-Router-script.php 루트 디렉토리에서 root 디렉토리 (나를 위해 문제가 해결됩니다)

수정 사항 :

/**
* Initialization of core configuration
*
* @return Mage_Core_Model_Config
*/
public function init($options=array())
{
    $this->setCacheChecksum(null);
    $this->_cacheLoadedSections = array();
    $this->setOptions($options);
    $this->loadBase();

    $cacheLoad = $this->loadModulesCache();
    if ($cacheLoad) {
        return $this;
    }
    //100 Router Fix Start
    $this->_useCache = false;
    //100 Router Fix End
    $this->loadModules();
    $this->loadDb();
    $this->saveCache();
    return $this;
}
.

켜짐 :

이것은 이것이 완전히 해결 될 것이라고 믿기 위해 나에게 순진 할 것입니다. Magento 설정에 대한 문제. 그것이 당신을 위해 일하지 않으면 I. 당신에게 추천

  • 이슈 디버깅에 언급 된 논리를 구현합니다.
  • 일부 로그 데이터가 나타나기를 기다리십시오.
  • 저에게 연락하십시오!

오랫동안 답변을 얻지 못한 이래로 (그리고 우리 가게는 고객을위한 생산에 있음) 내 솔루션을 제시해야했습니다.나는 그것을 공유 할 것입니다, 어쩌면 문제를 찾는 데 도움이 될 수 있습니다 :

내 index.php에서 변경했습니다.

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';

/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

Mage::run($mageRunCode, $mageRunType);
.

to :

$mageRunCode = 'default';
$mageRunType = 'store';

Mage::app()->setCurrentStore(1);
Mage::run($mageRunCode, $mageRunType, array('is_installed' => true));
.

이것은 하드 코딩되어 있으며 하나의 상점이 있기 때문에 단지 작동합니다.그러나 아직도, 지금 일하는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top