Ubuntu 20.04 LTS에 Magento 2를 설치하는 방법

Ubuntu 20.04 서버에서 Magento2 저장소를 설정하고 배포하는 방법에 대한 포괄적인 안내서입니다.

Magento는 PHP로 작성된 인기 있는 전자 상거래 플랫폼으로, 많은 소규모 기업에서 제품을 판매하고 온라인 입지를 구축하는 데 사용합니다. 재고 관리, 제품 카탈로그, 배송, 송장 발행 등과 같은 기능을 갖춘 본격적인 온라인 상점을 만들 수 있습니다.

비즈니스를 위한 세련된 엔터프라이즈급 쇼핑 플랫폼을 구축하려는 경우 Magento가 훌륭한 출발점이 될 것입니다. 따라서 이 가이드에서는 Ubuntu 20.04 서버에서 LAMP 스택을 사용하여 Magento 커뮤니티 에디션 버전 2.3을 설정하는 방법을 살펴보겠습니다.

전제 조건

Ubuntu 20.04 LTS 서버가 필요하고 다음으로 로그인해야 합니다. 수도 활성화된 사용자. Ubuntu 20.04 서버 IP를 가리키는 도메인 이름도 필요합니다. 우리는 사용할 것입니다 example.com 도메인 이름이 필요한 경우 해당 도메인으로 대체하십시오. 시작하기 전에 패키지 목록을 업데이트한 다음 Ubuntu 20.04 서버에서 패키지를 업그레이드하십시오.

sudo apt 업데이트 && sudo apt 업그레이드

아파치 웹 서버 설치

Magento가 작동하려면 웹 서버가 필요합니다. 이 가이드에서는 LAMP(Linux, Apache, MySQL, PHP) 스택을 통해 Magento 애플리케이션을 실행하기로 선택했습니다. 그래서 우리는 LAMP 스택으로 구성된 모든 패키지를 설치할 것입니다.

Apache 웹 서버는 전체 웹 서버 시장 점유율의 거의 37.2%를 차지하는 인터넷에서 가장 인기 있는 웹 서버 중 하나입니다. Apache 대신 Nginx 웹 서버를 사용하는 LEMP 스택 위에 Magento를 설치하도록 선택할 수도 있습니다. 그러나 이 가이드에서는 Apache의 도움으로 Megento 서버를 배포할 것입니다.

Apache 웹 서버를 설치하려면 아래 명령을 실행하십시오.

sudo apt install apache2

사용자 비밀번호를 입력하고 누르세요. 와이 메시지가 표시되면. 설치가 완료되면 포트의 트래픽을 허용하도록 Ubuntu의 복잡하지 않은 방화벽(UFW)을 구성해야 합니다. 80 & 443.

UFW는 애플리케이션이 Ubuntu 20.04 서버의 포트에 액세스할 수 있도록 토글할 수 있는 사전 구성된 프로필과 함께 제공됩니다. 따라서 Apache 웹 서버를 설치할 때 'Apache', 'Apache Full' 및 'Apache Secure'라는 UFW 프로필이 UFW 앱 목록에 추가되었습니다. Apache 웹 서버가 포트에서 서비스하도록 허용 80 & 443 실행하여:

sudo ufw allow '아파치 전체'

이제 우리가해야 할 일은 UFW를 활성화하는 것입니다. 그러나 그렇게하기 전에 포트를 허용했는지 확인하십시오. 22 (SSH). SSH UFW 규칙을 변경하지 않으면 Ubuntu 20.04 서버에서 잠길 수 있습니다.

sudo ufw 'OpenSSH' 허용

마지막으로 다음을 실행하여 UFW 방화벽을 활성화합니다.

sudo ufw 활성화

누르다 와이 SSH를 통해 허용하는 규칙을 이미 추가했기 때문에 명령이 SSH 연결을 중단할 수 있다는 메시지가 표시되는 경우. 이제 브라우저를 통해 Apache 웹 서버에 액세스하고 URL 표시줄에 Ubuntu 20.04 서버의 IP 주소를 입력하고 Enter 키를 누를 수 있습니다.

apache2 우분투 기본 페이지

MySQL 서버 설치

또한 모든 Magento 상점 콘텐츠가 저장되는 Magento를 실행하기 위한 데이터베이스 서버가 필요합니다. MySQL 서버를 설치하고 사용자를 생성할 것입니다. 마젠타우저 그리고 라는 데이터베이스 마젠토 마젠토를 위해.

MySQL 패키지는 다음과 같이 호출됩니다. mysql-서버 Ubuntu 리포지토리에서 다음을 실행하여 설치합니다.

sudo apt 설치 mysql-server

다음으로 MySQL 보안 설정을 적절하게 구성해야 합니다. 다행히 MySQL 패키지에는 MySQL 서버를 더 쉽게 구성할 수 있는 보안 스크립트가 함께 제공됩니다. 따라서 다음 명령을 실행하여 이 스크립트를 실행합니다.

sudo mysql_secure_installation

여러 질문이 표시되며 다음은 MySQL 서버에 대한 최적의 설정입니다.

  • VALIDATE PASSWORD 구성요소를 설정하시겠습니까?[y/n]: Enter 와이
  • 암호 유효성 검사 정책에는 세 가지 수준이 있습니다.
    • 0 = LOW, 1 = MEDIUM, 2 = STRONG을 입력하십시오: Enter 2
  • 여기에서 root의 암호를 설정하십시오.
    • 새 비밀번호: MySQL 루트 사용자의 비밀번호를 입력합니다.
    • 새 비밀번호 재입력: 선택한 비밀번호를 반복합니다.
  • 익명의 사용자를 제거하시겠습니까? [y/n]: 입력 와이
  • 원격으로 루트 로그인을 허용하지 않습니까? [y/n] : 입력 와이
  • 테스트 데이터베이스 및 액세스를 제거하시겠습니까? [y/n] : 입력 와이
  • 지금 권한 테이블을 다시 로드하시겠습니까? [y/n] : 입력 와이

그런 다음 MySQL 서버가 설치되어 제대로 작동하는지 확인하고 확인하려면 다음을 통해 루트 사용자로 MySQL 서버에 로그인합니다.

sudo mysql

귀하의 수도 프롬프트가 표시되면 사용자 암호를 입력하고 Enter 키를 누릅니다. MySQL 루트 사용자는 다음을 사용합니다. 유닉스 소켓 로그인을 인증합니다. 이것이 본질적으로 의미하는 바는 당신이 수도 사용자가 루트 사용자로 MySQL 서버에 로그인합니다.

Magento용 새 데이터베이스 및 사용자 생성

이제 Magento용 MySQL 사용자를 생성할 수 있으며 이 가이드의 각 단계를 따랐다면 MySQL 콘솔이 열려 있어야 합니다. 라는 데이터베이스를 생성합니다. 마젠토 MySQL 콘솔에 다음 쿼리를 입력하여:

데이터베이스 생성 마젠토;

라는 새 MySQL 사용자를 만들려면 마젠타우저, 콘솔에서 다음 쿼리를 실행합니다.

CREATE USER 'magentouser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

메모: 교체 비밀번호 선택한 강력한 암호로 쿼리에서.

그런 다음 새로운 권한을 부여 마젠타우저 에 대한 전체 액세스 마젠토 데이터 베이스:

GRANT ALL ON magento.* TO 'magentouser'@'%' with GRANT OPTION;

우리는 설정해야합니다 log_bin_trust_function_creators 최신 버전의 MySQL에서는 비활성화되어 있고 활성화하지 않으면 Magento에서 설치하는 동안 몇 가지 오류가 발생하므로 매개변수를 1로 지정합니다. 이렇게 하려면 다음 쿼리를 실행합니다.

SET GLOBAL log_bin_trust_function_creators=1;

마지막으로 변경한 데이터베이스 권한 및 설정을 다시 로드하고 다음 쿼리를 사용하여 콘솔을 종료합니다.

플러시 특권; 출구;

PHP 및 필수 확장 설치

Magento가 작동하려면 PHP와 몇 가지 PHP 확장이 필요합니다. 이 글을 쓰는 시점에서 Magento 커뮤니티 에디션 버전은 2.3 최신 PHP 버전에서는 작동하지 않습니다 7.4 따라서 PHP 버전을 설치해야 합니다. 7.3.

PHP 버전을 설치할 수 있도록 타사 PHP PPA를 추가해야 합니다. 7.3 Ubuntu 리포지토리에는 최신 버전만 있으므로 7.4 패키지. 다음 명령을 실행하여 PPA를 추가하고 패키지 목록을 업데이트합니다.

sudo add-apt-repository ppa:ondrej/php && sudo apt 업데이트

그런 다음 다음 명령을 실행하여 PHP 7.3과 Magento에 필요한 모든 PHP 모듈을 설치합니다.

sudo apt 설치 php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

PHP 7.3이 설치된 후 Magento가 올바르게 작동하도록 권장하는 몇 가지 기본 설정을 구성해야 합니다. 이 명령을 실행하여 nano를 사용하여 FPM 확장의 구성 파일을 엽니다.

sudo 나노 /etc/php/7.3/fpm/php.ini

다음은 대부분의 Magento 웹사이트에 권장되는 몇 가지 설정입니다.

file_uploads = on allow_url_fopen = on short_open_tag = on memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

를 눌러 변경 사항을 저장하십시오. Ctrl+O 다음을 눌러 나노 편집기를 종료하십시오. Ctrl+X. 이제 PHP와 필요한 모든 확장이 있으므로 Magento를 가져올 수 있습니다.

작곡가 설치

Composer는 PHP 프레임워크 및 라이브러리를 더 쉽게 설치할 수 있도록 하는 PHP 종속성 관리자입니다. Ubuntu 20.04 서버에 Magento를 다운로드하고 설치하려면 Composer가 필요합니다.

Composer에는 다음과 같은 패키지가 필요합니다. 압축을 풀다 다운로드한 라이브러리와 프레임워크를 추출하려면 다음을 실행하여 설치합니다.

sudo apt 설치 압축 풀기

그런 다음 다음 명령을 실행하여 시스템 전체 수준에서 작곡가를 설치합니다.

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

위의 명령은 Ubuntu 20.04 서버에 Composer 종속성 관리자를 설치해야 합니다. 다음을 실행하여 Composer가 제대로 설치되었는지 확인합니다.

작곡가
 산출:  ______ / ____/___ ___ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / / / / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ 작곡가 버전 1.10.8 2020-06- 24 21:23:30 사용법: 명령 [옵션] [인수] 

Magento 다운로드 및 설치

이제 Magento에 필요한 모든 패키지를 설치 및 구성했으므로 Magento 다운로드 및 설치로 넘어갈 수 있습니다.

Magento 계정 만들기

Ubuntu 20.04 서버에서 Magento를 다운로드하려면 Magento 2 액세스 키가 필요합니다. 이 액세스 키를 얻으려면 Magento 계정이 필요합니다. 등록되지 않았고 Magento 계정이 없는 경우 이 페이지로 이동하여 '등록'을 클릭하십시오.

Magento 계정 생성을 완료한 후에는 새 액세스 키를 생성하여 작곡가를 사용하여 컴퓨터에 Magento 2를 다운로드할 수 있습니다. 이 페이지에서 모든 Magento 액세스 키를 볼 수 있습니다. Magento 2 탭 아래에 액세스 키가 없으면 '새 액세스 키 만들기' 버튼을 클릭하고 이름을 지정한 다음 '확인'을 누릅니다.

이 키는 Composer를 통해 Magento 저장소에서 Magento 2를 다운로드하는 데 사용되는 자격 증명입니다. Magento를 다운로드할 때 이 키를 사용하지만 그 전에 디렉터리 소유권과 권한을 설정합니다.

사전 설치 소유권 및 권한 구성

파일 권한은 모든 웹사이트의 보안을 만들거나 깨뜨릴 수 있으므로 Apache 서버의 문서 루트에 대한 소유권과 권한을 적절하게 설정해야 합니다.

기본 소유자 /var/www/ 디렉토리는 루트 사용자이지만 이 디렉토리에 있는 파일에 액세스하고 수정해야 합니다. 또한 웹 서버는 Magento 사이트의 내용을 다시 쓰고 수정하기 위해 문서 루트에 액세스해야 합니다.

따라서 이 문제를 해결하기 위해 현재 사용자를 www-데이터 그룹을 실행하려면 다음을 실행합니다.

sudo usermod -a -G www-data $USER

그만큼 -ㅏ-G 옵션은 추가할 때 중요합니다. www-데이터 사용자의 기본 그룹을 유지하는 사용자 계정에 대한 보조 그룹으로 웹서버 그룹에 사용자를 추가한 후 소유자를 변경합니다. /var/www/ 다음 명령을 사용하는 하위 디렉토리:

sudo chown -R $USER:www-data /var/www/

Magento에 대한 사전 설치 권한을 설정했으므로 이제 웹 서버 문서 루트에서 다운로드할 수 있습니다.

마젠토 다운로드

이제 이 시점에서 액세스 키와 사전 설치 권한이 올바르게 설정된 Magento 계정이 있어야 합니다. 따라서 Composer를 사용하여 Magento를 Apache 문서 루트에 다운로드한 다음 설치합니다.

현재 디렉토리를 다음으로 변경 /var/www/ 따라서 터미널은 다음을 실행하여 이를 가리킵니다.

cd /var/www/

아래 명령을 실행하여 Composer로 알려진 새 프로젝트를 생성합니다. 마젠토.

작곡가 create-project --repository=//repo.magento.com/magento/project-community-edition magento

위의 명령을 사용한 후 사용자 이름과 암호를 묻는 메시지가 표시됩니다. 우리가 만든 액세스 키는 여기에서 사용됩니다. 공개 키를 복사하여 사용자 이름으로 붙여넣은 다음 마찬가지로 개인 키를 복사하여 터미널에 암호로 붙여넣습니다. 그런 다음 와이 나중에 사용할 수 있도록 자격 증명을 저장합니다.

 산출:  "./magento"에서 "magento/project-community-edition" 프로젝트 생성 repo.magento.com의 경고: Magento 인증 키를 제공하지 않았습니다. 지침을 보려면 //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html을 방문하십시오. 인증 필요(repo.magento.com): 사용자 이름: e8b6120dce14c3d982a85525264897c4 비밀번호: 자격 증명을 저장하시겠습니까? /home/ath/.config/composer/auth.json의 repo.magento.com용? [인] 와이

Magento와 모든 종속성이 Composer를 통해 다운로드된 후 새 magento 프로젝트 디렉토리와 해당 파일에 대한 소유권과 권한도 설정해야 합니다. 다음을 통해 디렉터리를 Magento 프로젝트 루트로 변경합니다.

cd /var/www/magento/

그런 다음 다음을 실행하여 Magento 프로젝트 디렉터리 및 하위 디렉터리의 그룹 소유자를 변경합니다.

var 생성된 공급업체 찾기 pub/static pub/media app/etc -type f -exec chmod g+w {} + && var 생성된 공급업체 찾기 pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

이 명령은 웹 서버 그룹(www-데이터) 공급업체, pub/static, pub/media 및 app/etc 디렉토리 및 그 안의 파일에 쓸 수 있는 권한. 또한, 빈/마젠토 파일을 실행하여 시스템에 Magento를 설치할 수 있습니다.

Magento용 Apache 구성

이 경우 CLI 설치보다 직관적이기 때문에 GUI를 통해 Magento를 설치하겠습니다. 따라서 Magento 설치를 진행하기 전에 Apache 웹 서버용 가상 호스트를 생성해야 합니다.

다음 명령을 사용하여 nano로 Apache의 기본 가상 호스트 파일을 엽니다.

sudo nano /etc/apache2/sites-available/000-default.conf

문서 루트를 다음으로 변경 /var/www/magento 그리고 그 아래에 다음 코드 스니펫을 추가합니다.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

교체 example.com 귀하의 도메인 이름으로 ServerName 및 ServerAlias에서. 당신의 변화 000-default.conf 파일은 아래에 표시된 강조 표시된 텍스트와 같아야 합니다. 를 눌러 변경 사항을 저장하십시오. Ctrl+O 다음을 사용하여 편집기를 종료하십시오. Ctrl+X 키.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log 결합 

다음으로 다음과 같이 Apache 모드를 활성화해야 합니다. mod_rewrite Magento에서 필요합니다. URL을 조작하는 유연하고 강력한 방법을 제공하므로 다음을 실행하여 모드를 활성화하십시오.

sudo a2enmod 다시 쓰기

변경 사항이 서버에 적용되도록 Apache 서버를 다시 시작합니다.

sudo systemctl apache2 재시작

마젠토 설치

Magento가 작동하는 데 필요한 모든 것이 있으므로 마침내 Magento 설치를 진행할 수 있습니다. 선호하는 브라우저의 URL 표시줄에 Ubuntu 20.04 서버의 IP 주소를 입력합니다.

Magento 설치를 계속하려면 '동의 및 Magento 설정'을 클릭합니다. Magento 웹 설치 프로그램의 첫 번째 단계는 준비 상태 확인이며 모든 Magento 요구 사항이 충족되었는지 확인합니다. '준비 상태 확인 시작'을 클릭하고 프로세스가 완료되면 '다음'을 누릅니다.

다음 단계는 세부 정보를 설정하고 Magento용 데이터베이스를 추가하는 것입니다. 우리는 이미 Magento용 MySQL 사용자를 생성했습니다. 마젠타우저 그리고 라는 데이터베이스 마젠토 위 섹션에서. 이 섹션에서 데이터베이스 서버 사용자 이름, 암호 및 데이터베이스 이름과 같은 적절한 세부 정보를 입력하고 '다음'을 눌러 계속하십시오.

Magento 설정의 세 번째 단계는 웹 구성입니다. 'Store Address' 입력의 IP 주소를 도메인 이름이 있는 경우 이를 대체하십시오. 슬래시(/) 그렇지 않으면 관리자 주소 URL에 액세스할 수 없게 됩니다.

그런 다음 Magento 사이트에 보안 연결을 사용하려면 고급 옵션을 클릭하고 두 HTTPS 옵션을 모두 선택하십시오. 나머지 설정은 그대로 두고 다음을 누릅니다.

메모: HTTPS 옵션을 선택하면 SSL 인증서를 받아야 합니다. 이 자습서의 다음 섹션에서 SSL 인증서를 얻는 방법을 살펴보겠습니다.

'스토어 사용자 지정' 설정에서 필요에 따라 시간대, 상점에서 사용되는 기본 통화 및 상점의 기본 언어를 변경하기만 하면 됩니다. 이 설정을 둘러보고 필요한 경우 구성하십시오. 그렇지 않으면 다음을 클릭하여 계속하십시오.

다섯 번째 단계에서는 Magento Admin 대시보드에 대한 Admin 계정을 생성해야 합니다. 관리자의 새 사용자 이름을 입력하고 도메인 이름 공급자가 제공한 이메일 주소를 입력합니다. 관리자 계정에 대한 강력한 암호를 만들고 완료되면 다음을 누르십시오.

마지막이자 마지막 단계는 '설치' 버튼을 클릭하여 설정을 확인하고 설치 프로세스를 시작하는 것입니다. 설치가 완료되면 Magento 설정에 Magento 사이트에 대한 요약과 몇 가지 중요한 세부 정보가 표시됩니다.

오프라인 종이 기록이나 보안 데이터베이스와 같은 안전한 곳에 이러한 세부 정보를 기록해 두십시오. Magento 관리자 주소와 암호화 키는 공개적으로 공유되어서는 안 됩니다. 암호화 키는 데이터 유출이 있더라도 사용자 데이터가 안전하도록 Magento 데이터베이스를 암호화하는 데 사용됩니다.

Magento 사이트에 대한 SSL 인증서 생성

Magento 사이트가 구축되어 있으며, 설치 완료 후 바로 접속이 가능합니다. 그러나 HTTPS를 통해 웹 트래픽을 제공하려면 도메인에 대한 SSL 인증서를 설정해야 합니다.

Letsencrypt는 TLS 인증서를 무료로 제공하는 비영리 인증 기관입니다. 우리는 이라는 패키지를 사용할 것입니다. 인증서봇 인증서를 받고 Apache 가상 호스트를 자동으로 구성하는 데 도움이 됩니다. 터미널에서 다음 명령을 실행하여 certbot을 설치합니다.

sudo apt 설치 certbot python3-certbot-apache

Letsencrypt에서 인증서를 가져오고 Apache 가상 호스트를 구성하려면 다음 명령을 실행합니다.

sudo certbot --아파치

Certbot은 Letsencrypt에서 인증서를 가져오는 프로세스를 시작하고 메시지가 표시되면 이메일 주소를 제공한 다음 Enter 키를 누릅니다. 다음으로 입력 Letsencrypt 서비스 약관에 동의합니다. EFF와 이메일 주소를 공유할 것인지 묻는 메시지가 표시되면 다음을 입력합니다. 와이 또는 N 당신의 선택에 따라.

다음으로 HTTPS를 활성화하려는 도메인 이름 목록이 제공됩니다. 도메인 이름에 해당하는 적절한 번호를 입력하고 Enter 키를 누릅니다.

도메인 이름을 선택한 후 HTTP 트래픽을 HTTPS로 리디렉션할지 묻는 메시지가 표시됩니다. 2 그리고 엔터를 치세요. Certbot은 이제 도메인에 대한 Apache 가상 호스트를 자동으로 구성합니다. example.com.

Certbot 패키지는 만료되기 전에 서버 인증서를 자동으로 갱신하는 cronjob과 함께 제공됩니다.다음을 실행하여 자동 갱신이 작동하는지 테스트합니다.

sudo certbot 갱신 --dry-run

위의 출력은 자동 갱신 cronjob이 제대로 작동하고 있음을 의미합니다. Certbot이 작동했는지 확인하려면 브라우저를 열고 도메인을 방문하세요. //예시.com.

마찬가지로 다음을 사용하여 관리자 로그인 페이지에 액세스할 수 있습니다. //example.com/admin_SecretString, 이 URL은 Magento 설치 끝에 있었습니다.

이제 Ubuntu 20.04 LTS 서버에 Magento를 성공적으로 설치했으며 이제 필요에 따라 상점을 사용자 정의할 수 있습니다. Magento에 대해 자세히 알아보고 매장 개발에 대해 알아보려면 Magento 문서 페이지로 이동하십시오.