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 메모리
- 루트 권한
우리가 할 일
- 우분투 18.04에 Nginx 설치
- PHP-FPM 7.1 설치 및 구성
- MySQL 서버 설치 및 구성
- Magento 2 설치 및 구성 1. PHP Composer 설치 2. Magento 2 다운로드 3. Magento 구성 요소 설치 4. SSL Letsencrypt 생성 5. Magento용 Nginx 가상 호스트 구성 6. Magento 설치 후 작업
- 테스트
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 nginxNginx 웹 서버가 설치되었습니다. netstat 명령을 사용하여 확인하고 HTTP 포트 80이 ‘LISTEN’ 상태인지 확인합니다. 또 다른 방법은 아래와 같이 curl 명령을 사용하는 것입니다.
netstat -plntu
curl -I localhost
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-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-fpmPHP-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를 요구합니다. 이 튜토리얼에서는 우분투 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’ 비밀번호를 입력합니다.

익명 사용자 제거? (예: y|Y는 예, 다른 키는 아니오) : Y
원격으로 루트 로그인 금지? (예: y|Y는 예, 다른 키는 아니오) : Y
테스트 데이터베이스 및 접근 제거? (예: y|Y는 예, 다른 키는 아니오) : Y
권한 테이블을 지금 다시 로드하시겠습니까? (예: y|Y는 예, 다른 키는 아니오) : YMySQL 루트 비밀번호가 설정되었습니다.
다음으로, 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 서버 설치 및 구성이 완료되었습니다.

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

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

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 ‘Readlines Check’를 위한 모든 시스템 및 서버 구성을 확인하고, 아래와 같이 모든 시스템 및 구성 검사를 ‘통과’하는지 확인합니다.

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

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

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

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

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

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

이제 ‘/var/www/magento2/app/etc’ 디렉토리에 대한 쓰기 권한을 비활성화해야 합니다. 아래 명령을 실행합니다.
sudo chmod -w /var/www/magento2/app/etcMagento가 우분투 18.04 Bionic Beaver 서버에 설치되었습니다.
5단계 - 테스트
Magento URL 홈 주소를 입력하고 Magento 기본 홈 페이지가 표시되는지 확인합니다. 제 URL은: https://magento.hakase-labs.pw/

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

사용자 이름과 비밀번호를 입력한 후 ‘로그인’ 버튼을 클릭합니다.
그리고 아래와 같은 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
참조
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.