Puncte:0

Eroare la clona locală (MAMP)

drapel ua

Am clonat o versiune a unui site Drupal 8.9.20 la o instalare locală (MAMP PRO). Părea să fie cuvânt, dar când apelez site-ul primesc o eroare:

Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.

Cu modul de eroare verbose ajung mai departe:

Eroare: Apelați la o funcție membru id() pe bool în Drupal\Core\Entity\EntityStorageBase->setStaticCache() (linia 188 din core/lib/Drupal/Core/Entity/EntityStorageBase.php).
Drupal\Core\Entity\EntityStorageBase->setStaticCache(Array) (Linie: 311)
Drupal\Core\Entity\EntityStorageBase->loadMultiple(Array) (Linie: 188)
Drupal\Core\Entity\EntityRepository->getCanonicalMultiple('nod', Array, Array) (Linie: 180)
Drupal\Core\Entity\EntityRepository->getCanonical('nod', '236', Array) (linia: 149)
Drupal\Core\ParamConverter\EntityConverter->convert('236', Array, 'node', Array) (Linie: 100)
Drupal\Core\ParamConverter\ParamConverterManager->convertire(Matrice) (linia: 89)
Drupal\Core\Access\AccessManager->checkNamedRoute('entity.node.canonical', Array, Object, 1) (Linie: 212)
Drupal\Core\Menu\DefaultMenuLinkTreeManipulators->menuLinkCheckAccess(Obiect) (linia: 92)
Drupal\Core\Menu\DefaultMenuLinkTreeManipulators->checkAccess(Array) (linia: 96)
Drupal\Core\Menu\DefaultMenuLinkTreeManipulators->checkAccess(Array) (linia: 96)
Drupal\Core\Menu\DefaultMenuLinkTreeManipulators->checkAccess(Array)
call_user_func(Matrice, Matrice) (Linie: 148)
Drupal\Core\Menu\MenuLinkTree->transform(Array, Array) (Linia: 56)
Drupal\pg_helper\BreadcrumbBuilder->build(Object) (Linia: 47)
Drupal\pg_fe_users\Theme\ThemeswitcherNegotiator::is_internal() (linia: 23)
Drupal\pg_fe_users\Theme\ThemeswitcherNegotiator->applies(Object) (Linia: 67)
Drupal\Core\Theme\ThemeNegotiator->determineActiveTheme(Object) (Linia: 405)
Drupal\Core\Theme\ThemeManager->initTheme(Obiect) (linia: 96)
Drupal\Core\Theme\ThemeManager->getActiveTheme() (linia: 43)
Drupal\Core\Cache\Context\ThemeCacheContext->getContext(NULL) (linia: 118)
Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys(Array) (linia: 307)
Drupal\Core\Render\RenderCache->createCacheID(Array) (linia: 66)
Drupal\Core\Render\RenderCache->get(Array) (linia: 109)
Drupal\Core\Render\PlaceholderingRenderCache->get(Array) (linia: 77)
Drupal\Core\Render\RenderCache->get(Array) (linia: 109)
Drupal\Core\Render\PlaceholderingRenderCache->get(Array) (linia: 137)
Drupal\dynamic_page_cache\EventSubscriber\DynamicPageCacheSubscriber->onRequest(Object, 'kernel.request', Object)
call_user_func(Array, Object, 'kernel.request', Object) (Linie: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', Object) (Linia: 127)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Linie: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Obiect, 1, 1) (Linie: 57)
Drupal\Core\StackMiddleware\Session->handle(Obiect, 1, 1) (Linie: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Obiect, 1, 1) (Linie: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Linie: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Linia: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Linie: 70)
Drupal\pg_fe_users\StackMiddleware\PgPageCache->handle(Object, 1, 1) (Linia: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Obiect, 1, 1) (Linie: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Obiect, 1, 1) (Linia: 23)
Stack\StackedHttpKernel->handle(Obiect, 1, 1) (Linie: 708)
Drupal\Core\DrupalKernel->handle(Obiect) (Linia: 19)

Care ar putea fi motivul? Vreo indicii cum să rezolvi asta?

Pentru sfatul dumneavoastra multumesc anticipat!

Soluţie:

Sfatul de la @4k4 a rezolvat problema:

Reconstruirea memoriei cache prin http://www.example.com/core/rebuild.php a eliminat mesajul de eroare.

drapel cn
Cum ați clonat fișierele/db?
drapel ua
Fișierele prin ssh și zip. Dd-ul prin mysqldump și apoi importat în phpMyAdmin.
4uk4 avatar
drapel cn
Ceea ce poate spune dump-ul de eroare este că eroarea apare într-o lovitură în cache în care memoria cache dinamică a paginii încearcă să înlocuiască substituenții, ceea ce implică un negociator de teme personalizate, ceea ce, destul de neobișnuit, provoacă această eroare în timp ce încearcă să afle dacă se aplică. Indiferent cum ați găsit această eroare, aceasta ar putea fi interesantă pentru autorii codului personalizat.
drapel ua
@4k4, mulțumesc pentru acest indiciu. Există o soluție ușoară pentru a elimina acest comportament de stocare în cache?
4uk4 avatar
drapel cn
Puteți încerca pur și simplu să ștergeți memoria cache și să sperați că eroarea nu va reveni. Sau utilizați site-ul așa cum este acum pentru a depana modul în care un bool ajunge în variabile în loc de o entitate.
drapel ua
@4k4 Din păcate site-ul nu apare. Doar această eroare. Și, din păcate, sunt un începător cu Drupal. În mod normal, dezvolt teme WordPress. Există vreo modalitate de a șterge cache-ul manual?
4uk4 avatar
drapel cn
Utilizați drush cache:rebuild sau scriptul de reconstrucție. Consultați https://www.drupal.org/docs/user_guide/en/prevent-cache-clear.html#s-using-the-rebuild-script
drapel cn
De asemenea, în general, MAMP și Drupal nu joacă atât de frumos împreună. Dacă veți folosi Drupal mult, este mult mai bine să utilizați unul dintre instrumentele bazate pe docker precum ddev sau lando (atât open source, cât și gratuit).
drapel ua
@4k4 Mulțumesc foarte mult! http://www.example.com/core/rebuild.php a făcut trucul!
Puncte:2
drapel cn

Reconstruirea memoriei cache prin http://www.example.com/core/rebuild.php a eliminat mesajul de eroare.

Vedea https://www.drupal.org/docs/user_guide/en/prevent-cache-clear.html#s-using-the-rebuild-script

Aceasta este o remediere rapidă pentru a elimina pagina stocată în cache, care împiedică încărcarea site-ului. Pentru a găsi ceea ce cauzează eroarea, puteți utiliza site-ul în starea în care se află înainte de ștergerea cache-ului și depanați variabilele pentru a găsi booleanul care este greșit pus în locul unei entități.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.