Помилка 404 - Неможливо отримати доступ до сервера після переходу на новий сервер


9

Я перемістив свій веб-сайт на новий сервер (доменне ім’я - те саме). Frontend працює належним чином, але сторінка входу адміністратора дає 404 Not Foundпомилку.

Більшість публікацій з цього питання пропонують рішення, згадані в цій публікації Перенесення веб-сайту Magento, URL-адреса панелі адміністратора дає 404

Я спробував їх усіх, але нічого не вийшло. Чи можу я щось зробити, щоб виправити це?

Відповіді:


16

Причиною цієї помилки є те, що store_id та website_id для адміністратора повинні бути встановлені на 0 (нуль). Але, коли ви імпортуєте базу даних на новий сервер, якимось чином ці значення не встановлюються на 0.

Відкрийте PhpMyAdmin та запустіть у вашій базі наступний запит: -

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;

Створіть резервну копію бази даних перед тим, як внести будь-які зміни, також перегляньте файл журналу, щоб знайти точну проблему. Також ви можете посилатися на помилку адміністратора 404 magento Сподіваюся, що це вам корисно


1
Привіт, я вже це робив, але не працював.
zekia

Вибачте за це ...
Бхаргав Мехта

Посилання пропонує те саме рішення, яке ви згадали, і я також очистив кеш. Все ще не зафіксовано, хоча
zekia

4

Я сам наткнувся на пару речей, які могли б це спричинити

  • переконайтеся, що .htaccess стоїть у кореневому каталозі
  • переконайтеся, що mod_rewriteна новому сервері включено
  • перевірте базові URL-адреси в core_config_dataтаблиці
  • переконайтесь, що кешування вимкнено чи оновлено
  • перевірити власника файлу та дозволу на файли

2

Вам потрібно зайти безпосередньо на ваш сервер і зробити це через SSH / FTP

Ви повинні видалити наступний файл

 app/etc/use_cache.ser

Якщо після цього ви отримаєте помилку

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

Потім перейдіть до свого управління базами даних.

Відкрити PhpMyAdmin Перейти до бази даних Клацніть SQL Виконати такий запит 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;

Щось дивне відбувається з кешем при переміщенні баз даних з одного сервера на інший, тому здається, що вам потрібно очистити його.


привіт перевірити це рішення?
Nikunj Vadariya

2

Спробуй це ... імпортуйте ур дб резервну копію вашої бази даних, додайте рядок нижче до верхньої частини .sql-файлу. Це запобіжить автоматичному призначенню SQL ідентифікатора 1, коли нам потрібно 0.

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

якщо немає успіху, перевірте це посилання також після того, як спробував вищезгаданий Magento 404 на сторінці адміністратора


2

Відкрийте PhpMyAdminта запустіть наступний запит у вашій базі даних

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;

потім видаліть дві папки з file manager->var -> cache & session


1
На відміну від інших пропозицій, це був правильний процес, який мені потрібно було запустити. Запит працює, щоб отримати доступ, але мені довелося очистити інші 2 папки.
aknatn

1

просто додайте їх у .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>

1

Ми переміщували сервери кілька разів, і кожен раз у нас виникали однакові чи подібні проблеми. Ми створили весь сценарій, який ми запускаємо на кожному новому сервері, і він працював над тим, щоб виправити всі наші проблеми за останні два міграції, ви можете це зробити! Проблема, як правило, полягає в тому, що стара URL-адреса десь застрягла або схована, або дозвіл не збит.

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 ..

0

Ви також можете спробувати додати index.php до URL так:

https://website.test/index.php/admin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.