웹 사이트를 새 서버로 옮겼습니다 (도메인 이름이 동일 함). 프론트 엔드가 제대로 작동하지만 관리자 로그인 페이지에 404 Not Found
오류가 발생합니다.
이 문제에 대한 대부분의 게시물은이 게시물에 언급 된 솔루션을 제안합니다. Magento 웹 사이트 전송, 관리자 패널 URL은 404
나는 그들 모두를 시도했지만 아무것도 효과가 없었다. 이 문제를 해결하기 위해 다른 방법이 있습니까?
웹 사이트를 새 서버로 옮겼습니다 (도메인 이름이 동일 함). 프론트 엔드가 제대로 작동하지만 관리자 로그인 페이지에 404 Not Found
오류가 발생합니다.
이 문제에 대한 대부분의 게시물은이 게시물에 언급 된 솔루션을 제안합니다. Magento 웹 사이트 전송, 관리자 패널 URL은 404
나는 그들 모두를 시도했지만 아무것도 효과가 없었다. 이 문제를 해결하기 위해 다른 방법이 있습니까?
답변:
이 오류의 원인은 admin의 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 관리자 오류를 참조 할 수 있습니다 희망이 당신에게 도움이 되기를 바랍니다
서버로 직접 이동하여 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;
한 서버에서 다른 서버로 데이터베이스를 옮길 때 캐시에서 이상한 일이 발생하므로 삭제해야 할 것 같습니다.
데이터베이스를 백업하십시오. 데이터베이스를 백업하십시오. 아래 행을 .sql 파일 맨 위에 추가하십시오. 이렇게하면 0이 필요할 때 SQL이 1의 ID를 자동으로 할당하지 못하게됩니다.
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */
성공하지 못하면 관리자 페이지 에서 위에서 언급 한 Magento 404를 시도한 후에도이 링크를 확인하십시오
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
.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>
우리는 서버를 몇 차례 이동했으며 매번 동일하거나 유사한 문제가 발생했습니다. 우리는 각각의 새 서버에서 실행되는 모든 스크립트를 포착했으며 마지막 두 마이그레이션에 대한 모든 문제를 해결하기 위해 노력했습니다. 문제는 일반적으로 이전 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 ..
다음과 같이 URL에 index.php를 추가 할 수도 있습니다.
https://website.test/index.php/admin