웹사이트 검색

Ubuntu 18.04에서 Nginx 및 Letsencrypt와 함께 Magento 2를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 우분투 11.04(Natty Narwhal)

이 페이지에서

  1. 전제 조건
  2. 우리가 할 일\n
  3. 1단계 - Ubuntu 18.04 LTS에 Nginx 설치
  4. 2단계 - PHP-FPM 7.1 설치 및 구성
  5. 3단계 - MySQL 서버 설치 및 구성
  6. 4단계 - Magento 2 설치 및 구성
    1. - PHP Composer 설치
    2. - Magento 2 다운로드
    3. - Magento 구성 요소 설치
    4. - SSL Letsencrypt 생성
    5. - Nginx 가상 호스트 구성\n
    6. - Magento 사후 설치\n

    1. 추가:

    Magento는 널리 사용되는 오픈 소스 전자 상거래 소프트웨어이자 PHP Zend Framework를 기반으로 하는 전자 상거래 웹사이트용 콘텐츠 관리 시스템입니다. MySQL 또는 MariaDB를 데이터베이스 백엔드로 사용합니다. Magento 개발은 2008년 Varien에 의해 시작되었습니다.

    이 튜토리얼에서는 Nginx, PHP 7.1 FPM 및 MySQL을 데이터베이스로 사용하여 Magento 2를 설치하는 방법을 보여줍니다. 서버 운영 체제로 ubuntu 18.04(Bionic Beaver)를 사용하겠습니다. 아직 최소 서버 설정이 없는 경우 이 자습서를 참조하여 적절한 기본 설정을 얻으십시오.

    전제 조건

    • 우분투 18.04
    • 2GB 이상의 RAM 메모리
    • 루트 권한\n

    우리가 할 일

    1. Ubuntu 18.04에 Nginx 설치
    2. PHP-FPM 7.1 설치 및 구성
    3. MySQL 서버 설치 및 구성
    4. Magento 2 설치 및 구성
      1. PHP 작성기 설치
      2. Magento 2 다운로드
      3. Magento 구성요소 설치
      4. SSL Letsencrypt 생성
      5. Magento용 Nginx 가상 호스트 구성\n
      6. Magento 사후 설치\n

      1단계 - Ubuntu 18.04 LTS에 Nginx 설치

      이 튜토리얼에서는 Magento 설치를 위해 Nginx 웹 서버를 사용합니다.

      서버에 로그인하고 리포지토리를 업데이트하고 모든 패키지를 업그레이드합니다.

      sudo apt update
      sudo apt upgrade

      이제 아래의 apt 명령을 사용하여 Nginx 웹 서버를 설치합니다.

      sudo apt install nginx -y

      설치가 완료되면 Nginx 서비스를 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다.

      systemctl start nginx
      systemctl enable nginx

      Nginx 웹 서버가 설치되었습니다. netstat 명령을 사용하여 확인하고 HTTP 포트 80이 LISTEN 상태인지 확인하십시오. 또 다른 방법은 아래와 같이 curl 명령을 사용하는 것입니다.

      netstat -plntu
      curl -I localhost

      2단계 - PHP-FPM 7.1 설치 및 구성

      Magento는 아직 PHP 7.2를 지원하지 않으므로 Nginx 웹 서버 설치 후 서버에 PHP 7.1을 설치합니다. Magento 2에 필요한 모든 확장과 함께 PHP-FPM을 설치합니다.

      Magento 2 설치에 필요한 PHP 확장 목록:

      • bc-수학\n
      • ctype
      • gd, ImageMagick 6.3.7(이상) 또는 둘 다
      • 국제
      • mbstring
      • mcrypt
      • 해시\n
      • openssl
      • PDO/MySQL
      • 심플XML\n
      • 비누
      • spl
      • libxml
      • xsl
      • zip
      • json
      • iconv

      이 가이드에서는 PPA 저장소에서 PHP-FPM 패키지를 설치합니다. 우리는 ondrej/php 저장소를 사용할 것입니다.

      software-properties-common 패키지를 설치하고 아래 명령을 사용하여 ondrej/php 저장소를 추가합니다.

      sudo apt install software-properties-common -y
      sudo add-apt-repository ppa:ondrej/php -y

      이제 필요한 모든 확장과 함께 PHP-FPM 7.1을 설치하십시오.

      sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y

      설치가 완료되면 PHP 명령을 사용하여 PHP 버전과 설치된 확장 기능을 확인하십시오.

      php -v
      php -me

      다음으로 PHP-FPM 및 PHP-CLI용 php.ini 파일을 구성합니다.

      vim을 사용하여 php.ini 파일을 편집합니다.

      vim /etc/php/7.1/fpm/php.ini
      vim /etc/php/7.1/cli/php.ini

      해당 줄의 값을 아래와 같이 변경하십시오.

      memory_limit = 512M
      max_execution_time = 180
      zlib.output_compression = On

      저장 및 종료.

      이제 PHP-fpm 서비스를 다시 시작하고 시스템 부팅 시마다 실행되도록 활성화하십시오.

      systemctl restart php7.1-fpm
      systemctl enable php7.1-fpm

      PHP-FPM 7.1 설치 및 구성이 완료되었습니다. netstat 명령을 사용하여 서비스를 확인하십시오.

      netstat -pl | grep php

      그러면 아래와 같이 PHP-fpm 양말 파일이 생성됩니다.

      3단계 - MySQL 서버 설치 및 구성

      Magento 소프트웨어에는 MySQL 5.6.x가 필요하고 Magento 2.1.2 이상에는 MySQL 5.7.x가 필요합니다. 이 튜토리얼에서는 Ubuntu 18.04 시스템에 최신 MySQL 서버 5.8을 설치합니다.

      아래의 apt 명령을 사용하여 MySQL 5.8을 설치합니다.

      sudo apt install mysql-server mysql-client -y

      설치가 완료되면 MySQL 서비스를 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다.

      systemctl start mysql
      systemctl enable mysql

      이제 mysql_secure_installation 명령을 사용하여 MySQL 루트 암호를 구성합니다.

      mysql_secure_installation

      MySQL 5.8 버전에는 MySQL 암호 정책에 대한 보안이 개선되었습니다. 암호 정책을 선택해야 합니다. LOW 정책은 0, MEDIUM 정책은 1, STRONG 암호 정책은 2입니다.

      이 가이드에서는 MEDIUM 암호 정책을 사용하며 프로덕션 서버에서 STRONG 암호 정책을 사용하는 것이 좋습니다.

      숫자 1을 선택하고 Enter 키를 누른 다음 새 MySQL 루트 암호를 입력합니다.

       Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
      Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
      Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
      Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

      MySQL 루트 암호가 설정되었습니다.

      다음으로 Magento 설치를 위한 새 데이터베이스를 생성합니다. 사용자가 magentouser이고 비밀번호가 [email #인 magentodb라는 새 데이터베이스를 생성합니다.

      루트 사용자를 사용하여 MySQL 셸에 로그인합니다.

      mysql -u root -p

      이제 아래의 MySQL 쿼리를 실행하여 데이터베이스와 사용자를 생성합니다.

      create database magentodb;
      create user #';
      flush privileges;

      Magento 설치를 위한 MySQL 서버 설치 및 구성이 완료되었습니다.

      4단계 - Magento 2 설치 및 구성

      이 단계에서는 Github 저장소에서 Magento 2.2.4 최신 버전을 설치합니다. Magento 구성 요소를 설치하기 위한 PHP 작성기를 설치하고, Github 저장소에서 Magento를 다운로드하고, Magento용 Nginx 가상 호스트를 구성하고, 웹 기반 사후 설치를 사용하여 Magento를 설치합니다.

      - PHP 작곡가 설치

      아래의 apt 명령을 사용하여 우분투 18.04에 PHP Composer를 설치합니다.

      sudo apt install composer -y

      설치가 완료되면 시스템에 설치된 컴포저 버전을 확인합니다.

      composer -V

      최신 버전의 PHP Composer가 설치되었습니다.

      - 마젠토 2 다운로드

      /var/www 디렉토리로 이동하고 wget 명령을 사용하여 Github에서 Magento 아카이브 소스 코드를 다운로드합니다.

      cd /var/www/
      wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

      이제 Magento 아카이브 파일을 추출하고 디렉토리 이름을 magento2로 바꿉니다.

      tar -xf 2.2.4.tar.gz
      mv magento2-2.2.4/ magento2/

      Magento 소스 코드가 다운로드되었으며 /var/www/magento2 디렉토리가 Magento 사이트의 웹 루트가 됩니다.

      - Magento 구성 요소 설치

      PHP 작성기를 사용하여 Magento 구성 요소를 설치합니다. magento2 디렉토리로 이동하고 작곡가 명령을 사용하여 Magento에 필요한 모든 PHP 구성 요소를 설치합니다.

      cd /var/www/magento2
      composer install -v

      설치가 완료되면 아래와 같은 결과를 얻을 수 있습니다.

      - SSL Letsencrypt 생성

      Letsencrypt의 SSL을 사용하여 Magento 설치를 보호합니다. 아래의 apt 명령을 사용하여 Letsencrypt를 설치합니다.

      sudo apt install letsencrypt -y

      설치가 완료되면 nginx 서비스를 중지합니다.

      systemctl stop nginx

      이제 아래와 같이 certbot 명령을 사용하여 도메인 이름에 대한 SSL 인증서를 생성합니다.

      certbot certonly --standalone -d magento.hakase-labs.pw

      이메일 주소를 입력하고 Letsencrypt TOS에 동의한 다음 이메일 공유를 위해 N을 입력하십시오.

      완료되면 아래와 같은 결과를 얻을 수 있습니다.

      Letsencrypt SSL 인증서 파일이 /etc/letsencrypt/live 디렉토리에 생성되었습니다.

      - Nginx 가상 호스트 구성

      /etc/nginx/sites-available 디렉토리로 이동하고 vim을 사용하여 새 가상 호스트 파일인 magento를 만듭니다.

      cd /etc/nginx/sites-available/
      vim magento

      다음 구성을 거기에 붙여넣으십시오.

      upstream fastcgi_backend {
              server  unix:/run/php/php7.1-fpm.sock;
      }
      
      server {
          listen 80;
          listen [::]:80;
          server_name magento.hakase-labs.pw;
          return 301 https://$server_name$request_uri;
      }
      
      server {
      
              listen 443 ssl;
              server_name magento.hakase-labs.pw;
      
              ssl on;
              ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;
      
              set $MAGE_ROOT /var/www/magento2;
              set $MAGE_MODE developer;
              include /var/www/magento2/nginx.conf.sample;
      }

      구성을 저장하고 종료합니다.

      이제 사이트 활성화 디렉토리에 대한 Magento 가상 호스트 파일의 심볼릭 링크를 생성하여 가상 호스트를 활성화합니다.

      ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/

      nginx 구성 파일을 테스트하고 오류가 없는지 확인하십시오.

      nginx -t

      이제 PHP-FPM 및 Nginx 서비스를 다시 시작하십시오.

      systemctl restart php7.1-fpm
      systemctl restart nginx

      그리고 Magento 웹 루트 디렉토리의 소유자를 www-data 사용자 및 그룹으로 변경합니다.

      chown -R www-data:www-data /var/www/magento2/

      Magento용 nginx 가상 호스트가 추가되었습니다.

      - Magento 사후 설치

      웹 브라우저를 열고 Magento URL을 입력합니다. 내 것은:

      이용 약관의 경우 Agree and Setup Magento 버튼을 클릭합니다.

      이제 Magento Readlines Check에 대한 모든 시스템 및 서버 구성을 확인하고 아래와 같이 모든 시스템 및 구성 검사를 통과하는지 확인하십시오.

      이제 다음 버튼을 클릭합니다.

      Magento용 데이터베이스 구성 - 모든 데이터베이스 정보를 입력하고 다음을 클릭합니다.

      웹 구성의 경우 상점 주소를 HTTPS로 변경하고 관리자 경로 URL을 사용하여 Magento 관리 주소를 변경하고 Nginx 웹 서버를 사용했기 때문에 Apache Rewrites를 선택 취소하십시오.

      다음 버튼을 다시 클릭합니다.

      스토어 사용자 지정을 기본값으로 두고 다음을 클릭합니다.

      관리자 사용자와 암호를 입력하고 다음을 클릭합니다.

      그리고 지금 설치 버튼을 클릭하여 Magento를 설치합니다.

      그리고 설치가 완료되면 아래와 같은 성공 결과를 얻을 수 있습니다.

      이제 /var/www/magento2/app/etc 디렉토리에 대한 쓰기 액세스를 비활성화해야 합니다. 아래 명령을 실행합니다.

      sudo chmod -w /var/www/magento2/app/etc

      Magento는 Ubuntu 18.04 Bionic Beaver 서버에 설치되었습니다.

      5단계 - 테스트

      Magento URL 홈 주소를 입력하고 Magento 기본 홈 페이지가 표시되는지 확인하십시오. 내 것은: https://magento.hakase-labs.pw/

      이제 admin_hakase 설치 중에 정의된 URL을 방문하여 Magento 관리자 대시보드에 로그인합니다. 내 것은:

      사용자 이름과 암호를 입력한 다음 로그인 버튼을 클릭합니다.

      그러면 아래와 같이 Magento 관리 대시보드가 표시됩니다.

      Magento 2는 Nginx 웹 서버, MySQL 데이터베이스 및 PHP-FPM 7.1과 함께 Ubuntu 18.04에 설치되었습니다.

      추가의:

      누락된 Magento 인덱서 cronjob에 대한 오류가 발생하면 아래 명령을 사용하여 crontab 스크립트를 생성하여 해결할 수 있습니다.

      cd /var/www/magento2
      sudo -u www-data php bin/magento cron:install --force

      이제 www-data 사용자에 대한 list crontab 스크립트를 확인하십시오.

      crontab -u www-data -l

      참조

      • https://devdocs.magento.com/