Magento 설치 · 7 min read · Oct 14, 2025

우분투 18.04에 Nginx와 Letsencrypt로 Magento 2 설치하는 방법

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

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

전제 조건

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

우리가 할 일

  1. 우분투 18.04에 Nginx 설치
  2. PHP-FPM 7.1 설치 및 구성
  3. MySQL 서버 설치 및 구성
  4. Magento 2 설치 및 구성 1. PHP Composer 설치 2. Magento 2 다운로드 3. Magento 구성 요소 설치 4. SSL Letsencrypt 생성 5. Magento용 Nginx 가상 호스트 구성 6. Magento 설치 후 작업
  5. 테스트

1단계 - 우분투 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

Nginx 웹 서버 설치

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

Nginx 웹 서버 설치 후, Magento가 아직 PHP 7.2를 지원하지 않기 때문에 서버에 PHP 7.1을 설치합니다. Magento 2에 필요한 모든 확장과 함께 PHP-FPM을 설치할 것입니다.

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

  • bc-math
  • ctype
  • curl
  • dom
  • gd, ImageMagick 6.3.7 (또는 이후 버전) 또는 둘 다
  • intl
  • mbstring
  • mcrypt
  • hash
  • openssl
  • PDO/MySQL
  • SimpleXML
  • soap
  • 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 7.1 설치

이제 필요한 모든 확장과 함께 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 설치 확인

다음으로 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 소켓 파일을 확인할 수 있습니다.

PHP-FPM 소켓 확인

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

Magento 소프트웨어는 MySQL 5.6.x를 요구하며, Magento 2.1.2 이상은 MySQL 5.7.x를 요구합니다. 이 튜토리얼에서는 우분투 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 비밀번호 정책에 대한 보안 개선이 있습니다. 비밀번호 정책을 선택해야 합니다 - 0은 LOW 정책, 1은 MEDIUM 정책, 2는 STRONG 비밀번호 정책입니다.

이 가이드에서는 ‘MEDIUM’ 비밀번호 정책을 사용할 것이며, 프로덕션 서버에서는 ‘STRONG’ 비밀번호 정책을 사용하는 것이 권장됩니다.

번호 ‘1’을 선택하고 Enter를 누른 후, 새 MySQL ‘root’ 비밀번호를 입력합니다.

MySQL 설치 보안

 익명 사용자 제거? (예: y|Y는 예, 다른 키는 아니오) : Y  
 원격으로 루트 로그인 금지? (예: y|Y는 예, 다른 키는 아니오) : Y  
 테스트 데이터베이스 및 접근 제거? (예: y|Y는 예, 다른 키는 아니오) : Y  
 권한 테이블을 지금 다시 로드하시겠습니까? (예: y|Y는 예, 다른 키는 아니오) : Y

MySQL 루트 비밀번호가 설정되었습니다.

다음으로, Magento 설치를 위한 새로운 데이터베이스를 생성할 것입니다. ‘magentodb’라는 이름의 새로운 데이터베이스를 생성하고 사용자 ‘magentouser’와 비밀번호 ‘Magento0463@#’를 설정합니다.

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

mysql -u root -p

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

create database magentodb;  
create user magentouser@localhost identified by 'Magento0463@#';  
grant all privileges on magentodb.* to magentouser@localhost identified by 'Magento0463@#';  
flush privileges;

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

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

4단계 - Magento 2 설치 및 구성

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

- PHP Composer 설치

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

sudo apt install composer -y

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

composer -V

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

- Magento 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 composer를 사용하여 Magento 구성 요소를 설치합니다. ‘magento2’ 디렉토리로 이동하여 Magento에 필요한 모든 PHP 구성 요소를 ‘composer’ 명령을 사용하여 설치합니다.

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’을 입력합니다.

Let's encrypt SSL 인증서 활성화

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

SSL 인증서가 성공적으로 발급되었습니다

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 가상 호스트 파일에 대한 심볼릭 링크를 ‘sites-enabled’ 디렉토리에 생성하여 가상 호스트를 활성화합니다.

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을 입력합니다. 제 URL은:

https://magento.hakase-labs.pw/

‘약관 및 동의’에서 ‘동의하고 Magento 설정’ 버튼을 클릭합니다.

Magento 웹 설치 프로그램

이제 Magento ‘Readlines Check’를 위한 모든 시스템 및 서버 구성을 확인하고, 아래와 같이 모든 시스템 및 구성 검사를 ‘통과’하는지 확인합니다.

전제 조건 확인

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

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

데이터베이스 구성

웹 구성의 경우, ‘스토어 주소’를 HTTPS로 변경하고, ‘Magento 관리자 주소’를 관리자 경로 URL로 변경하고, Nginx 웹 서버를 사용하고 있으므로 ‘Apache Rewrites’의 선택을 해제합니다.

웹 구성

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

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

Magento 스토어 사용자 정의

관리 사용자 및 비밀번호를 입력한 후 ‘다음’을 클릭합니다.

관리 계정 설정

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

Magento 설치 시작

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

Magento 설치 성공

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

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

Magento가 우분투 18.04 Bionic Beaver 서버에 설치되었습니다.

5단계 - 테스트

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

Magento 홈페이지

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

https://magento.hakase-labs.pw/admin_hakase/

Magento 백엔드 로그인

사용자 이름과 비밀번호를 입력한 후 ‘로그인’ 버튼을 클릭합니다.

그리고 아래와 같은 Magento 관리자 대시보드를 얻을 수 있습니다.

Magento 대시보드

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

추가:

Magento 인덱서 크론 작업이 누락되었다는 오류가 발생하면 아래 명령을 사용하여 크론탭 스크립트를 생성하여 해결할 수 있습니다.

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

이제 ‘www-data’ 사용자의 크론탭 스크립트 목록을 확인합니다.

crontab -u www-data -l

Magento 인덱서 크론 작업 설정

참조

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.