로컬 MAMP 환경으로 마이그레이션한 후 Magento 프런트엔드 또는 관리자에 액세스할 수 없습니다.

magento.stackexchange https://magento.stackexchange.com//questions/62593

문제

프로덕션 버전에 이러한 변경 사항을 적용하기 전에 웹 스토어를 로컬 환경에 복사하여 작업을 수행해야 합니다.magento 스토어를 로컬 호스트로 이동하는 방법에 대한 여러 튜토리얼을 보았고 다음은 제가 수행한 작업 목록입니다.

  1. 서버에서 MAMP/Projects/MyPolder의 MyFolder라는 폴더로 파일을 복사하고 데이터베이스를 내보냈습니다.

  2. 내 지역 환경에 대해 앱/etc/local.xml을 편집했습니다. 편집 한 줄입니다.

    <host><![CDATA[localhost]]></host>
    <username><![CDATA[root]]></username>
    <password><![CDATA[root]]></password>
    <dbname><![CDATA[my_db_name]]></dbname>
    
  3. 내 데이터베이스 내부의 phpmyadmin에서 나는 m_core_config_data 테이블로 가서 편집 된 웹/미용자/base_url 및 웹/sitecture/base_url을 편집했습니다. http://localhost/projects/myfolder/

  4. 폴더에 대한 권한을 편집했습니다.var;앱 폴더 내의 미디어 등
  5. var/cache 폴더도 지웠습니다.

그러나 Magento는 오류를 반환합니다.프런트엔드와 백엔드 모두에 액세스할 수 없습니다.웹 사이트를 로컬에서 실행하려면 어떻게 해야 합니까?

로그 파일에는 다음과 같이 명시되어 있습니다.

a:4:{i:0;s:106:"SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'localhost/projects/myfolder' (2)";i:1;s:2832:"#0 /Users/Anton/Documents/mamp/projects/myfolder/lib/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /Users/Anton/Documents/mamp/myfolder/myfolder/lib/Varien/Db/Adapter/Pdo/Mysql.php(313): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 /Users/Anton/Documents/mamp/projects/myfolder/lib/Zend/Db/Adapter/Abstract.php(459): Varien_Db_Adapter_Pdo_Mysql->_connect()
#3 /Users/Anton/Documents/mamp/projects/myfolder/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES utf8', Array)
#4 /Users/Anton/Documents/mamp/projects/myfolder/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES utf8', Array)
#5 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource.php(169): Varien_Db_Adapter_Pdo_Mysql->query('SET NAMES utf8')
#6 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource.php(110): Mage_Core_Model_Resource->_newConnection('pdo_mysql', Object(Mage_Core_Model_Config_Element))
#7 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): Mage_Core_Model_Resource->getConnection('core_write')
#8 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(350): Mage_Core_Model_Resource_Db_Abstract->_getConnection('write')
#9 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(335): Mage_Core_Model_Resource_Db_Abstract->_getWriteAdapter()
#10 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Resource/Cache.php(53): Mage_Core_Model_Resource_Db_Abstract->_getReadAdapter()
#11 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Cache.php(455): Mage_Core_Model_Resource_Cache->getAllOptions()
#12 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Cache.php(497): Mage_Core_Model_Cache->_initOptions()
#13 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/App.php(1183): Mage_Core_Model_Cache->canUse('config')
#14 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Config.php(414): Mage_Core_Model_App->useCache('config')
#15 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/Config.php(294): Mage_Core_Model_Config->_canUseCacheForInit()
#16 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/App.php(413): Mage_Core_Model_Config->loadModulesCache()
#17 /Users/Anton/Documents/mamp/projects/myfolder/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#18 /Users/Anton/Documents/mamp/projects/myfolder/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#19 /Users/Anton/Documents/mamp/projects/myfolder/index.php(87): Mage::run('', 'store')
#20 {main}";s:3:"url";s:20:"/projects/myfolder/cp";s:11:"script_name";s:27:"/projects/myfolder/index.php";}

오류 로그 레코드 번호:565449617885 및 Magento Ver 1.7.0.2

MAMP를 여러 번 다시 시작하고 var 폴더를 지우면 더 이상 해당 오류가 표시되지 않습니다.그러나 새로운 문제에 직면했습니다. 웹 사이트에 로컬로 액세스하려고 할 때 localhost/projects/myfolder/를 입력하면 주소 표시줄에 www.webstore.com이 있는 라이브 버전으로 리디렉션됩니다.잠시 검색한 후에 나는 그것이 .htaccess 파일의 재작성 기반임에 틀림없다고 생각했습니다.결국 새로운 마젠토 버전으로 교체했지만 여전히 라이브 버전으로 리디렉션됩니다.온라인에서 해결책을 찾을 수 없는 것 같습니다.

도움이 되었습니까?

해결책

Antk, localhost를 통해 소켓과 TCP 연결이 모두 가능한 Unix 운영 체제에서 MySQL과 PHP 사이에 잘 ​​문서화되어 있고 다소 이상한 상호 작용이 있습니다(여기서 자세한 논의) 및 소켓 구현을 통해 시작되는 MySQL 클라이언트 연결 방법과 관련된 PHP PDO 라이브러리의 매우 구체적인 기발한 동작(여기서 자세한 논의)....

하지만

tl;dr :로컬 OS 버전, 이전 버전의 Magento, MAMP 스택에 있는 MySQL 클라이언트/서버의 특정 릴리스 간의 특이성을 해결하는 방법을 찾는 데 시간을 낭비하지 마십시오.MAMP를 버리고 VM을 가져와 이를 사용하여 로컬로 개발하는 것이 더 쉽고, 배포할 때 코드를 실행할 프로덕션 환경과 더 유사합니다.

옵션 1 > VM 개발 환경을 위한 MAMP 제거

MAMP를 버리고 사용 중인 Magento 버전에 대한 VM 개발을 진행하는 가장 빠른 방법은 다음과 같습니다.

  1. 빠르고 간단함:잡기 BitNami는 Ubuntu VM에서 부팅 시 실행할 준비가 된 Magento 1.7.0.2 스택을 사전 구축했습니다. (필요할 것이예요 가상박스 (무료) 또는 다음과 같은 다른 가상화 시스템 평행선 또는 VMWare 퓨전).이것이 빠른 경로이기는 하지만 BitNami가 파일 시스템을 배치하고 프로덕션 환경과 다를 수 있는 Apache 및 PHP를 구성하는 방법에는 몇 가지 단점이 있지만 완전히 독립적이기 때문에 시작할 때 작동합니다.

  2. 느리지만 제어됨:설치 중 방랑자 그리고 가상박스 다음 중 하나를 통해 로컬 개발을 위해 VM을 사용합니다. vagrant를 프로비저닝하고 VM에서 Magento를 설정하는 많은 스크립트.이렇게 하면 필요한 방식으로 구성할 수 있는 유연성이 극대화되지만 vagrant를 통해 기본 프로비저닝이 완료된 후 구성을 수행해야 하며 완료하는 데 더 많은 시간이 걸릴 수 있습니다.

또한 phpMyAdmin이 해당 방랑 파일에 포함되어 있는지 확실하지 않지만 MySQL Workbench 또는 다른 SQL 편집기를 통해 서버에 연결하는 것보다 사용을 선호하는 경우 BitNami 이미지에 IS가 포함되어 있습니다.

모험을 하고 싶거나 자해를 하고 싶은 경우, 다음 두 가지 옵션을 통해 특정 오류를 해결하고 MAMP 설치 시 발생하는 문제를 자세히 알아볼 수 있는 최선의 경로를 안내합니다.

-

옵션 2 > php.ini 파일 수정

첫 번째 링크 상태와 같이 소켓 이름이 무엇인지 알고 있으면 PDO 라이브러리가 소켓을 사용하도록 강제할 수 있습니다.

(php.ini 파일을 보거나 다음을 사용하여)phpmyadmin 또는 콘솔(또는 mysql 또는 mysqli에서 구성)...다음 쿼리를 실행합니다(PDO 제외).

show variables like 'socket'; //as mentioned by symcbean

그런 다음 PDO 연결 문자열에서 호스트 이름 대신 소켓을 사용하도록 변경합니다.

> $dbc = new
> PDO("mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=$DBName",
> $User, $Password, array(PDO::ATTR_PERSISTENT => true));   // using
> persistent connections

옵션 3 > app/etc/local.xml 파일을 업데이트합니다.

변화 localhost 에게 127.0.0.1 또는 Mac의 IP 주소로 연결하고 PDO 라이브러리는 MySQL 클라이언트 => 서버에서 연결을 시작할 수 있어야 합니다.

아래 구성이 업데이트되었습니다.

<host><![CDATA[127.0.0.1]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[root]]></password>
<dbname><![CDATA[my_db_name]]></dbname>

또는

<host><![CDATA[192.168.0.1]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[root]]></password>
<dbname><![CDATA[my_db_name]]></dbname>

이것들 ~할 것 같다 작동하지만 핵심 파일에서 PDO 드라이버를 직접 수정해야 합니다. 이는 Magento 개발의 권장 모범 사례에 어긋나거나 로컬 개발 인스턴스에서만 사용되는 재정의된 드라이버를 구현합니다(개발자를 확보하려면 많은 작업이 필요한 것 같습니다). 작업 환경이 궁금하다면...)

다른 팁

After taking time off I got back to this issue. I extracted the database once more and dropped off the log table content which noticeably reduced the size of the sql file. Dropped the content of my local database and inserted the tables using the new sql file. After reediting the base urls I could access the development version of the site on my machine.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top