Błąd 404 - Nie można uzyskać dostępu do zaplecza po przeniesieniu na nowy serwer

9

Przeniosłem swoją stronę na nowy serwer (nazwa domeny jest taka sama). Frontend działa poprawnie, ale strona logowania administratora wyświetla 404 Not Foundbłąd.

Większość postów na ten temat sugeruje rozwiązania wymienione w tym poście Przesyłanie strony Magento, adres URL panelu administracyjnego daje 404

Próbowałem wszystkich, ale nic nie działało. Czy jest coś innego, co mogę zrobić, aby to naprawić?

zekia
źródło

Odpowiedzi:

16

Przyczyną tego błędu jest to, że store_id i website_id dla admin powinny być ustawione na 0 (zero). Ale kiedy importujesz bazę danych na nowy serwer, w jakiś sposób te wartości nie są ustawione na 0.

Otwórz PhpMyAdmin i uruchom następującą kwerendę w bazie danych: -

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Wykonaj kopię zapasową bazy danych przed wprowadzeniem jakichkolwiek zmian, zobacz plik dziennika, aby znaleźć dokładny problem. Możesz również odnieść się do linku 404 błąd administratora magento Mam nadzieję, że jest to pomocne

Bhargav Mehta
źródło
1
Cześć, już to zrobiłem, ale nie zadziałało.
zekia
Przepraszam za to ...
Bhargav Mehta
Link sugeruje to samo rozwiązanie, o którym wspomniałeś, a ja również wyczyściłem pamięć podręczną. Nadal nie został naprawiony
zekia
4

Sam spotkałem kilka rzeczy, które mogą to powodować

  • upewnij się, że .htaccess jest na swoim miejscu w katalogu głównym
  • upewnij się, że mod_rewritejest włączony na nowym serwerze
  • sprawdź podstawowe adresy URL w core_config_datatabeli
  • upewnij się, że buforowanie jest wyłączone lub odświeżone
  • sprawdź właściciela pliku i uprawnienia do plików
Sander Mangel
źródło
2

Musisz przejść bezpośrednio do serwera i zrobić to przez SSH / FTP

Musisz usunąć następujący plik

 app/etc/use_cache.ser

Jeśli pojawi się błąd po tym, jak

 Notice: Undefined index: 0 in /srv/www/vhosts/javra.com/htdocs/munchad2/app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92

Następnie przejdź do zarządzania bazą danych.

Otwórz PhpMyAdmin Przejdź do bazy danych Kliknij SQL Uruchom następujące zapytanie SQL: _

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE     customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Coś dziwnego dzieje się z pamięcią podręczną, gdy przenosisz bazy danych z jednego serwera na drugi, więc wydaje się, że musisz ją wyczyścić.

Nikunj Vadariya
źródło
cześć sprawdź To rozwiązanie?
Nikunj Vadariya
2

WYPRÓBUJ ... importuj swoją kopię zapasową bazy danych db dodaj bazę poniżej wiersza na górze pliku .sql. Zapobiegnie to automatycznemu przypisywaniu przez SQL id 1, gdy potrzebujemy 0.

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */

jeśli nie powiedzie się, sprawdź ten link również po wypróbowaniu wyżej wspomnianego Magento 404 na stronie administratora

Dhanasekar
źródło
2

Otwórz PhpMyAdmini uruchom następujące zapytanie w bazie danych

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

następnie usuń dwa foldery z file manager->var -> cache & session

Anto Sujesh
źródło
1
W przeciwieństwie do innych sugestii był to prawidłowy proces, który musiałem uruchomić. Zapytanie działa, aby uzyskać dostęp, ale nadal musiałem wyczyścić pozostałe 2 foldery.
aknatn
1

po prostu dodaj je w .htaccess

<IfModule mod_rewrite.c>

############################################
## Enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## You can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## Workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## Never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## Rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>
Zeshan Rahman
źródło
1

Przenosiliśmy serwery kilka razy i za każdym razem mieliśmy takie same lub podobne problemy. Stworzyliśmy skrypt „catch all”, który uruchamiamy na każdym nowym serwerze. Pracowaliśmy nad rozwiązaniem wszystkich naszych problemów z dwiema ostatnimi migracjami. Możesz spróbować! Problem zwykle polegał na tym, że stary adres URL gdzieś utknął lub był w pamięci podręcznej albo pozwolenie nie jest zepsute.

rm -rf var/cache
rm -rf var/full_page_cache/
rm -rf media/catalog/product/cache
rm -rf var/session/*
php shell/indexer.php --reindexall
chown -R apache .
systemctl restart mysqld
systemctl restart httpd 

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
find feeds -type f -exec chmod 644 {} \;
chmod 777 var -R
chmod 777 media -R
chcon -R -t httpd_sys_rw_content_t .
chcon -Rv --type=httpd_sys_content_t ..
Nick P.
źródło
0

Możesz także spróbować dodać index.php do adresu URL w następujący sposób:

https://website.test/index.php/admin
TheKitMurkit
źródło