웹사이트 검색

Ubuntu 14.04에서 Magento를 설치하고 구성하는 방법


소개

Magento는 전자상거래 웹사이트에서 가장 널리 사용되는 콘텐츠 관리 시스템입니다. 소기업과 대기업 모두에서 사용되며 수천 가지 확장 및 테마로 향상될 수 있습니다. Magento는 MySQL 데이터베이스 시스템, PHP 프로그래밍 언어 및 Zend Framework의 일부를 사용합니다.

이 튜토리얼에서는 일반적인 성능 및 보안 구성을 포함하여 Ubuntu 14.04의 Apache 웹 서버와 함께 Magento를 설치하는 방법을 살펴보겠습니다.

전제 조건

이 가이드를 시작하기 전에 먼저 완료해야 하는 몇 가지 단계가 있습니다.

Magento 작업 처리 요구 사항으로 인해 최소 2GB RAM이 있는 VPS에 Magento를 설치하는 것이 좋습니다. 이렇게 하면 상점 관리와 관련된 모든 소프트웨어가 작동하기에 충분한 메모리를 갖게 됩니다.

sudo 권한이 있는 루트가 아닌 사용자에 대한 액세스 권한이 필요합니다. 아직 이 작업을 수행하지 않은 경우 Ubuntu 14.04 초기 서버 설정 가이드를 실행하여 이 계정을 만들 수 있습니다.

또한 VPS 인스턴스에 LAMP(Linux, Apache, MySQL 및 PHP) 스택이 설치되어 있어야 합니다. 이러한 구성 요소를 아직 설치 및 구성하지 않은 경우 이 가이드를 사용하여 Ubuntu 14.04에 LAMP를 설치하는 방법을 알아볼 수 있습니다.

이 단계를 마치면 루트가 아닌 사용자로 Ubuntu 서버에 연결하고 Magento 설치를 계속할 수 있습니다.

1단계 - Apache 및 PHP 구성

Magento를 다운로드하여 설치하기 전에 Magento의 트래픽 및 컴퓨팅 작업을 올바르게 처리하도록 Apache 및 PHP를 구성해야 하며 일부 추가 모듈을 설치 및 활성화해야 합니다.

아파치 가상 호스트

먼저 Apache가 Magento 사이트를 올바르게 관리하는 방법을 알 수 있도록 가상 호스트 파일을 구성해야 합니다. 텍스트 편집기를 사용하여 /etc/apache2/sites-available/에 새 가상 호스트 파일을 만들 수 있습니다. 이 예에서 가상 호스트는 magento라고 하지만 원하는 경우 다른 이름을 지정할 수 있습니다.

sudo nano /etc/apache2/sites-available/magento.conf

Magento의 가상 호스트 요구 사항은 매우 간단합니다. 표준 HTTP 포트인 포트 80의 모든 트래픽을 수신 대기하는 태그로 시작합니다. 그런 다음 DocumentRoot 지시문을 사용하여 Apache에 사이트 파일을 찾을 위치를 알려주는 줄을 추가합니다.

<VirtualHost *:80>
    DocumentRoot /var/www/html
</VirtualHost>

Magento가 제대로 작동하려면 몇 가지 추가 매개변수를 추가해야 합니다. 문서 루트를 가리키는 태그 안에 Apache의 디렉토리 인덱싱, symlink 지원 및 다국어 지원 옵션을 입력합니다. 또한 .htaccess 파일이 Apache 설정을 재정의하도록 허용하는 행을 추가하여 개별 폴더를 보다 세밀하게 제어할 수 있습니다.

. . .
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
. . .

이러한 모든 구성 요소가 제자리에 있으면 가상 호스트 파일은 다음과 같습니다.

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
</VirtualHost>

서버 블록 작성이 끝나면 파일을 저장하고 닫습니다. Apache로 새 사이트를 활성화하려면 a2ensite 명령을 사용하십시오.

sudo a2ensite magento.conf

또한 새 가상 호스트와 충돌하므로 Apache와 함께 제공되는 기본 가상 호스트를 비활성화하려고 합니다. Apache로 사이트를 비활성화하려면 a2dissite 명령을 사용하십시오.

sudo a2dissite 000-default.conf

PHP 설정

다음으로 Apache가 PHP 프로세스에 부여하는 메모리 양을 변경해야 합니다. Magento는 거의 모든 작업에 PHP를 사용하며 제품 및 카테고리 인덱싱과 같은 복잡한 작업을 위해 상당한 양의 메모리가 필요합니다. 기본적으로 PHP는 Apache에서 실행되는 각 스크립트에 최대 128MB의 메모리를 할당합니다. Magento의 스크립트 중 메모리가 부족하여 스크립트가 충돌하는 일이 없도록 하려면 이 제한을 합리적인 수준으로 높여야 합니다.

텍스트 편집기와 루트 권한으로 Apache의 PHP 구성 파일을 엽니다.

sudo nano /etc/php5/apache2/php.ini

PHP 스크립트당 메모리 제한을 선언하는 다음 줄을 찾습니다.

memory_limit = 128M

제한이 512MB로 증가하도록 해당 행을 변경하십시오. 매장의 메모리 요구 사항은 카탈로그의 제품 수와 매일 받는 방문자 수에 따라 더 높을 수 있습니다. 일부 대형 매장은 메모리 제한을 2GB 이상으로 설정해야 하지만 현재로서는 512MB면 충분합니다.

memory_limit = 512M

참고: 메모리 번호 끝에 "M\을 사용해야 합니다.

이 변경을 마치면 파일을 저장하고 닫습니다. 다음에 Apache를 다시 시작하면 메모리 제한 변경 사항이 적용됩니다.

Magento는 PHP와 함께 제공되는 모듈 외에도 두 개의 PHP 모듈이 필요합니다. 로컬 패키지 인덱스를 업데이트한 후 Ubuntu의 기본 리포지토리에서 직접 가져올 수 있습니다.

sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt

이러한 확장을 통해 Magento는 HTTP 요청, 이미지 썸네일 및 데이터 암호화를 적절하게 처리할 수 있습니다. 이제 필요한 모든 패키지가 있으므로 Apache에 대한 URL 재작성 지원과 PHP에 대한 암호화 지원을 활성화할 수 있습니다.

sudo a2enmod rewrite
sudo php5enmod mcrypt

이러한 구성 및 확장 변경이 모두 완료되면 변경 사항이 적용되도록 Apache 서버 인스턴스를 다시 시작해야 합니다.

sudo service apache2 restart

2단계 - MySQL 데이터베이스 및 사용자 생성

Magento는 MySQL 데이터베이스를 사용하여 제품 및 주문 정보와 같은 사이트 데이터를 관리합니다. MySQL을 설치하고 구성했지만 Magento가 작업할 데이터베이스와 사용자를 만들어야 합니다.

MySQL 루트 계정에 로그인하여 시작합니다.

mysql -u root -p

MySQL을 설치할 때 설정한 MySQL의 루트 계정 암호를 입력하라는 메시지가 표시됩니다. 올바른 암호를 제출하면 MySQL 명령 프롬프트가 표시됩니다.

먼저 Magento가 데이터를 쓸 수 있는 데이터베이스를 만듭니다. 이 예에서 데이터베이스 이름은 magento이지만 원하는 대로 이름을 지정할 수 있습니다.

CREATE DATABASE magento;

참고: 모든 MySQL 문은 세미콜론(;)으로 끝나야 하므로 문제가 발생하는 경우 포함했는지 확인하십시오.

다음으로 새 데이터베이스에서 작업하는 데 독점적으로 사용될 새 MySQL 사용자 계정을 만들 것입니다. 단일 기능 데이터베이스 및 계정을 만드는 것은 권한 및 기타 보안 요구 사항을 더 잘 제어할 수 있으므로 좋은 생각입니다.

새 계정 magento_user를 호출하고 암호 password를 할당하겠습니다. 이러한 예는 그다지 안전하지 않으므로 반드시 다른 사용자 이름과 암호를 사용해야 합니다.

CREATE USER magento_user@localhost IDENTIFIED BY 'password';

이 시점에서 각각 Magento용으로 특별히 만들어진 데이터베이스와 사용자 계정이 있습니다. 그러나 사용자는 데이터베이스에 대한 액세스 권한이 없습니다. 데이터베이스에 대한 사용자 액세스 권한을 부여하여 두 구성 요소를 함께 연결해야 합니다.

GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';

이제 사용자가 데이터베이스에 액세스할 수 있으므로 MySQL이 최근 변경한 권한을 알 수 있도록 권한을 플러시해야 합니다. 완료되면 MySQL 명령 프롬프트를 종료할 수 있습니다.

FLUSH PRIVILEGES;
exit

이제 일반 SSH 명령 프롬프트로 돌아갑니다.

3단계 - Magento 파일 다운로드 및 설정

이제 Magento를 다운로드하고 설치할 준비가 되었습니다. Magento Community Edition의 최신 안정 버전이 무엇인지 확인하려면 커뮤니티 다운로드 페이지로 이동하십시오. 이 예에서 현재 릴리스 번호는 1.9.0.1이지만 해당 번호를 사용 가능한 최신 릴리스로 대체해야 합니다. 새 릴리스에는 새롭고 향상된 기능 외에도 중요한 보안 업데이트가 포함되는 경우가 많으므로 항상 최신 버전의 Magento를 사용하는 것이 좋습니다.

wget을 사용하여 Magento 파일 아카이브를 홈 디렉터리에 다운로드합니다.

cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz

보관된 파일을 추출하여 tar를 사용하여 Magento 디렉토리를 다시 빌드할 수 있습니다.

tar xzvf magento-1.9.0.1.tar.gz

이제 홈 디렉토리에 magento라는 디렉토리가 생겼습니다. 압축을 푼 파일을 Apache의 문서 루트로 옮겨 웹사이트 방문자에게 제공해야 합니다. rsync에는 .htaccess와 같은 중요한 숨겨진 파일이 포함되므로 rsync를 사용하여 Magento 파일을 전송합니다. 전송이 완료되면 magento 폴더를 삭제하고 거기에 아카이브하여 홈 디렉토리를 정리할 수 있습니다.

sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*

rsync는 압축을 푼 디렉토리의 모든 내용을 /var/www/html/의 문서 루트로 안전하게 복사합니다. 이제 파일 및 폴더의 소유권을 Apache의 사용자 및 그룹에 할당해야 합니다.

sudo chown -R www-data:www-data /var/www/html/

이 변경으로 Apache는 Magento 파일을 만들고 수정할 수 있습니다. 이제 Magento의 브라우저 기반 구성 인터페이스를 통해 설치 프로세스를 완료할 준비가 되었습니다.

4단계 - 웹 인터페이스를 통해 설치 완료

브라우저로 웹 인터페이스에 액세스하려면 서버의 도메인 이름 또는 공용 IP 주소로 이동하십시오.

http://server_domain_name_or_IP/

이전 단계를 올바르게 수행한 경우 Magento의 설치 마법사가 표시됩니다. 첫 번째 페이지에는 계속을 누르기 전에 동의해야 하는 사용권 계약이 표시됩니다.

다음 페이지에서는 언어, 시간대 및 통화와 같은 로케일 설정을 변경할 수 있습니다. 제품이 판매되는 위치에 가장 적합한 설정으로 변경한 다음 계속을 누르십시오.

구성 페이지는 세 부분으로 나뉩니다. 첫 번째 섹션은 Magento가 MySQL 데이터베이스에 연결하는 방법을 설정할 수 있는 곳입니다. 데이터베이스 유형이 "MySQL\로 설정되어 있고 호스트가 "localhost\로 설정되어 있는지 확인하십시오. 그런 다음 이전에 MySQL 데이터베이스 및 사용자 계정을 만들 때 결정한 설정으로 데이터베이스 이름, 사용자 이름 및 사용자 암호를 입력해야 합니다.

구성 페이지의 다음 섹션에서는 몇 가지 다른 Apache 제어 기능과 함께 상점의 URL을 구성할 수 있습니다. 기본 URL이 서버의 도메인 이름과 일치하는지 확인하십시오. 아직 도메인 이름을 설정하지 않은 경우 지금은 서버의 공용 IP 주소를 사용할 수 있습니다. 관리자 경로를 "admin\보다 명확하지 않은 것으로 변경하여 다른 사람이 관리자 패널을 찾기 어렵게 만드는 것이 좋습니다. 웹 서버(Apache) 재작성 사용을 선택하여 사이트의 URL을 더 친근하게 만드는 것도 고려해야 합니다. 사용자 및 검색 엔진에 이 기능을 지원하는 데 필요한 Apache 모듈인 mod_rewrite는 이미 활성화되어 사용할 준비가 되었습니다.

구성 페이지의 마지막 부분은 세션 데이터 저장 방법을 선택하기 위한 것입니다. Magento는 사용자 세션 데이터를 저장하는 두 가지 방법을 제공합니다. 파일 시스템 방법은 세션을 서버의 파일에 저장하며 시작하기에 가장 간단한 방법입니다. 데이터베이스 방법은 세션을 MySQL 데이터베이스에 항목으로 저장하며 여러 서버에 걸쳐 있는 Magento 설치에 이상적입니다. 지금은 일반적으로 기본적으로 더 나은 성능을 발휘하므로 파일 시스템 방법을 고수할 수 있습니다.

구성 옵션을 선택하고 계속을 누르면 관리자 계정 생성 페이지로 이동합니다. 여기에서 Magento 스토어 유지 관리를 담당하는 관리 계정을 생성합니다. 사용자 이름과 암호는 안전하고 추측하기 어려운지 확인하십시오. 기존 Magento 설치에서 데이터를 마이그레이션하지 않는 한 암호화 키 필드는 비워 두어야 합니다. 필드를 비워 두면 계속을 클릭할 때 Magento가 새 암호화 키를 생성하고 다음 페이지에 표시합니다. 나중에 마이그레이션 목적으로 필요할 경우를 대비하여 암호화 키를 안전한 곳에 저장하십시오.

웹 기반 구성을 완료하면 Magento 설치를 사용할 수 있습니다. 웹 브라우저에서 서버의 도메인 이름 또는 공용 IP 주소를 방문하여 새 상점을 확인하십시오.

http://server_domain_name_or_IP/

모든 것이 올바르게 구성되었다면 다음과 같은 스토어프론트가 표시되어야 합니다.

이전에 설정한 관리 디렉터리로 이동하여 새 관리 사이트를 방문할 수도 있습니다.

http://server_domain_name_or_IP/admin/

새 대시보드를 보려면 관리자 사용자 이름과 암호로 로그인하십시오.

결론

이제 Magento 스토어를 운영하고 있으므로 프로젝트 카탈로그 구축을 시작하고 판매를 시작할 준비가 되었습니다!

SSL 인증서로 사이트 트래픽을 암호화하기 위한 중요한 다음 단계입니다. 다음은 시작하는 데 도움이 되는 가이드입니다. 상업용 인증 기관에서 SSL 인증서를 설치하는 방법.