ข้อผิดพลาด 404 - ไม่สามารถเข้าถึงแบ็กเอนด์หลังจากย้ายไปยังเซิร์ฟเวอร์ใหม่


9

ฉันย้ายเว็บไซต์ของฉันไปที่เซิร์ฟเวอร์ใหม่ (ชื่อโดเมนเหมือนกัน) ส่วนหน้าทำงานได้อย่างถูกต้อง แต่หน้าล็อกอินของผู้ดูแลระบบแสดง404 Not Foundข้อผิดพลาด

โพสต์ส่วนใหญ่เกี่ยวกับปัญหานี้แนะนำวิธีแก้ปัญหาที่กล่าวถึงในโพสต์นี้การถ่ายโอนเว็บไซต์วีโอไอพี 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 admin error หวังว่านี่จะเป็นประโยชน์กับคุณ


1
สวัสดีฉันทำไปแล้วแต่ไม่ได้ผล
zekia

ขออภัยด้วย ...
Bhargav Mehta

ลิงค์แนะนำวิธีการแก้ปัญหาเดียวกับที่คุณพูดถึงและฉันก็ล้างแคช ยังไม่ได้รับการแก้ไขแม้ว่า
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 Query ต่อไปนี้: _

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 จากการกำหนด id ของ 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 ..

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.