Magento 설치 · 7 min read · Sep 10, 2025

우분투 24.04에 Magento 전자상거래 플랫폼 설치하는 방법

Magento는 PHP로 작성된 오픈 소스이자 잘 알려진 전자상거래 플랫폼입니다. Magento는 전 세계 240,000명 이상의 상인이 사용하는 강력하고 견고한 전자상거래 솔루션입니다. Magento는 전자상거래 상점을 구축하기 위한 다재다능하고 확장 가능한 플랫폼입니다. 소규모, 중간 및 대형 온라인 상점을 구축하는 데 적합합니다. Magento를 사용하면 서버에서 온라인 상점을 생성하고 호스팅할 수 있습니다.

이 가이드에서는 Ubuntu 22.04 서버에 Magento 전자상거래를 설치하는 방법을 안내합니다.

필수 조건

이 가이드를 시작하기 전에 다음을 준비했는지 확인하세요:

  • 메모리가 최소 4GB인 Ubuntu 24.04.
  • sudo 권한이 있는 비루트 사용자.
  • 서버 IP 주소를 가리키는 도메인 이름.

의존성 설치

설치에 들어가기 전에 Magento 의존성이 설치되어 있는지 확인해야 합니다. 이 섹션에서는 OpenSearch, Nginx, MySQL 서버, PHP-FPM, Redis, Composer 및 Git을 포함한 Magento 소프트웨어 패키지를 설치합니다.

먼저, 다음 명령어로 ‘ apt-transport-https ‘ 및 ‘ gnupg ‘ 패키지를 설치합니다:

sudo apt install apt-transport-https gnupg -y

Debian/Ubuntu 기반 배포판을 위한 OpenSearch GPG 키 및 리포지토리를 추가하려면 다음 명령어를 실행합니다.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \  
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | \  
sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

리포지토리 추가

이제 다음 apt 명령어로 Ubuntu 패키지 인덱스를 업데이트하고 의존성을 설치합니다. 이를 통해 OpenSearch, Nginx, MySQL, PHP-FPM, Redis, Composer 및 Git 패키지를 설치합니다.

sudo apt update && sudo apt install opensearch nginx mysql-server composer git redis-server php-fpm php-bcmath php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-redis php-ldap php-zip php-curl php-imagick

설치를 확인하려면 Y를 입력하세요.

설치 후 모든 서비스가 실행 중인지 확인합니다.

다음 명령어로 Nginx 서비스를 확인하세요. Nginx 서비스가 실행 중이고 활성화되어 있는 것을 볼 수 있습니다.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

nginx 확인

이제 아래 명령어로 MySQL 서버를 확인하세요. 출력에서 MySQL 서버가 실행 중인 것을 볼 수 있습니다.

sudo systemctl is-enabled mysql  
sudo systemctl status mysql

mysql 확인

다음 명령어로 PHP-FPM 서비스를 확인하세요. PHP-FPM은 자동으로 실행되고 활성화되어야 합니다.

sudo systemctl is-enabled php8.3-fpm  
sudo systemctl status php8.3-fpm

php-fpm 확인

아래 명령어로 Redis 서버를 확인하세요. Redis가 실행 중이고 활성화되어 있는 것을 볼 수 있어야 합니다.

sudo systemctl is-enabled redis-server  
sudo systemctl status redis-server

redis 확인

마지막으로 아래 명령어로 Composer 버전을 확인하세요. 시스템에 Composer v2.7이 설치되어 있어야 합니다.

sudo -u www-data composer -v

composer 확인

OpenSearch 설정

의존성을 설치한 후 OpenSearch를 구성해야 합니다. Magento는 고급 검색 제품 및 인덱싱을 위해 OpenSearch를 사용합니다. 이 섹션에서는 기본 최대 힙 메모리를 늘리고 OpenSearch의 보안 플러그인을 비활성화합니다(개발 환경 전용).

다음 nano 편집기를 사용하여 ‘ /etc/opensearch/jvm.options ‘ 파일을 엽니다.

sudo nano /etc/opensearch/jvm.options

OpenSearch의 기본 메모리 할당을 필요에 맞게 변경합니다. 이 경우 OpenSearch에 2GB를 사용할 것입니다.

-Xms2g  
-Xmx2g

파일을 저장하고 종료합니다.

이제 nano 편집기로 기본 OpenSearch 구성 ‘ /etc/opensearch/opensearch.yml ‘을 엽니다.

sudo nano /etc/opensearch/opensearch.yml

OpenSearch에서 보안 플러그인을 비활성화하기 위해 다음 구성을 추가합니다. 데모를 위해 이를 비활성화할 수 있지만, 프로덕션에서는 보안 플러그인을 활성화하고 OpenSearch 설치를 위한 TLS 인증서를 설정해야 합니다.

plugins.security.disabled: true

작업이 완료되면 파일을 저장하고 종료합니다.

다음 명령어를 실행하여 systemd 관리자를 다시 로드합니다. OpenSearch를 설치한 후 systemd 관리자를 다시 로드해야 합니다.

sudo systemctl daemon-reload

이제 다음 명령어로 OpenSearch 서비스를 시작하고 활성화하며 확인합니다:

sudo systemctl enable --now opensearch  
sudo systemctl status opensearch

다음 출력에서 OpenSearch가 실행 중이고 활성화되어 있는 것을 볼 수 있습니다.

opensearch 서비스 확인

마지막으로 다음 ‘ curl ‘ 명령어를 사용하여 OpenSearch 설치를 확인합니다. 이 명령어는 OpenSearch 설치에 대한 기본 정보를 보여줍니다.

curl -X GET http://localhost:9200

아래에서 OpenSearch 2.14가 우분투 서버에서 실행 중인 것을 볼 수 있습니다.

opensearch 테스트

PHP-FPM 설정

이 섹션에서는 기본 PHP-FPM 구성을 수정하고 ‘php.ini’ 파일을 통해 Opcache 확장을 활성화합니다. 기본 memory_limit를 늘리고 date.timezone 옵션을 조정합니다.

다음 nano 편집기를 사용하여 PHP-FPM 구성 ‘ /etc/php/8.3/fpm/php.ini ‘을 엽니다.

sudo nano /etc/php/8.3/fpm/php.ini

다음으로 기본 구성을 변경합니다. 또한 현재 서버 환경에 맞게 date.timezonememory_limit를 조정합니다.

date.timezone = Europe/Amsterdam

작업이 완료되면 파일을 저장하고 종료합니다.

이제 아래 명령어를 실행하여 PHP-FPM 서비스를 재시작하고 변경 사항을 적용합니다.

sudo systemctl restart php8.3-fpm

MySQL 서버 설정

이제 PHP-FPM을 구성했으므로 다음 섹션에서는 MySQL 서버 설치를 설정하고 Magento를 위한 새 데이터베이스와 사용자를 생성합니다.

아래 명령어를 실행하여 MySQL 서버 설치를 안전하게 보호합니다.

sudo mysql_secure_installation

아래에서 MySQL 서버 구성에 대해 질문을 받게 됩니다:

  • VALIDATE PASSWORD 구성 요소를 활성화하려면 y를 입력합니다.
  • 비밀번호 강도 수준을 MEDIUM으로 설정하려면 1을 입력합니다.
  • MySQL 루트 비밀번호를 변경하라는 질문에 y를 입력합니다.
  • 기본 익명 사용자를 제거하려면 y를 입력합니다.
  • MySQL 루트 사용자에 대한 원격 로그인을 금지하려면 y를 입력합니다.
  • MySQL에서 기본 데이터베이스 테스트를 제거하려면 y를 입력합니다.
  • 마지막으로, MySQL 테이블 권한을 다시 로드하여 변경 사항을 적용하려면 y를 입력합니다.

MySQL 구성이 완료되면 Magento를 위한 새 데이터베이스와 사용자를 생성해야 합니다.

아래 명령어로 MySQL 서버에 로그인합니다. 프롬프트가 표시되면 MySQL 루트 비밀번호를 입력합니다.

sudo mysql -u root -p

이제 다음 쿼리를 실행하여 Magento를 위한 새 데이터베이스와 사용자를 생성합니다. 이 예제에서는 비밀번호 ‘ M4gentoPassw0rd__ ‘로 새 사용자와 데이터베이스 ‘ magento ‘를 생성합니다.

다음 세부 정보를 귀하의 정보로 변경해야 합니다. 또한 Magento의 MySQL 비밀번호는 특수 문자, 숫자 및 대문자를 포함해야 합니다.

CREATE DATABASE magento;  
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'M4gentoPassw0rd__';  
GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';  
FLUSH PRIVILEGES;

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

다음으로, 사용자 ‘ magento ‘에 대한 권한을 확인하는 다음 쿼리를 실행합니다. 사용자가 데이터베이스 ‘ magento ‘에 접근할 수 있는지 확인합니다.

SHOW GRANTS FOR magento@localhost;

마지막으로, MySQL 서버에서 종료하려면 quit를 입력합니다.

mysql 사용자 권한 확인

명령줄을 통한 Magento 설치

이 섹션에서는 Magento 소스 코드를 다운로드하고 Composer를 사용하여 PHP 의존성을 설치합니다. 그런 다음 명령줄을 사용하여 Magento를 설치합니다. 마지막으로 Magento를 위한 crontab을 생성합니다.

/var/www ‘ 디렉토리로 이동하여 다음 wget 명령어를 사용하여 Magento 소스 코드를 다운로드합니다. Magento GitHub 페이지를 확인하고 Magento 최신 버전 URL을 가져옵니다.

cd /var/www  
wget https://github.com/magento/magento2/archive/refs/tags/2.4.7.tar.gz

다운로드가 완료되면 Magento 소스 코드를 추출하고 추출된 디렉토리의 이름을 ‘magento2’로 변경합니다. 이렇게 하면 Magento 설치가 ‘/var/www/magento2’에 위치해야 합니다.

tar -xf 2.4.7.tar.gz  
mv magento2-* magento2

이제 아래 명령어를 실행하여 Composer를 위한 추가 디렉토리를 생성하고 ‘ /var/www ‘ 디렉토리의 소유권을 사용자 ‘ www-data ‘로 변경합니다.

sudo mkdir -p /var/www/{.config,.cache}  
sudo chown -R www-data:www-data /var/www

그런 다음 아래 명령어를 실행하여 ‘ www-data ‘ 사용자에게 ‘ /var/www/magento2 ‘ 디렉토리 내에서 읽기, 쓰기 및 실행 권한을 부여합니다.

sudo chmod u+rwx /var/www/magento2

다음으로 ‘ /var/www/magento2 ‘ 디렉토리로 이동하여 아래 Composer 명령어로 Magento의 PHP 의존성을 설치합니다. 이렇게 하면 Magento에 대한 의존성이 설치됩니다.

cd /var/www/magento2  
sudo -u www-data composer install

의존성을 설치한 후 아래 명령어를 실행하여 ‘ www-data ‘ 사용자에게 Magento 웹 루트 내의 ‘ generated ‘ 및 ‘ var ‘ 디렉토리에 대한 ‘ rwx ‘ 권한을 부여합니다.

sudo chown -R www-data:www-data /var/www/magento2/var /var/www/magento2/generated  
sudo chmod u+rwx /var/www/magento2/var /var/www/magento2/generated  
sudo chmod g+rw /var/www/magento2/var /var/www/magento2/generated

이제 아래 명령어를 실행하여 Magento 설치를 시작합니다. Magento 설치를 위해 URL 세부정보, MySQL 데이터베이스, 관리자 사용자 및 비밀번호를 변경해야 합니다.

sudo -u www-data bin/magento setup:install \  
--base-url=http://howtoforge.local \  
--db-host=localhost \  
--db-name=magento2 \  
--db-user=magento \  
--db-password=M4gentoPassw0rd__ \  
--admin-firstname=bob \  
--admin-lastname=admin \  
--admin-email=[email protected] \  
--admin-user=bob \  
--admin-password=BobAdm1nP4ssword \  
--currency=USD \  
--timezone=Europe/Amsterdam \  
--use-rewrites=1 \  
--session-save=redis \  
--search-engine=opensearch \  
--opensearch-host=127.0.0.1 \  
--opensearch-port=9200 \  
--opensearch-enable-auth=0 \  
--opensearch-index-prefix=magento22 \  
--opensearch-timeout=30

아래에서 Magento 설치가 시작되는 것을 볼 수 있습니다:

magento 설치

완료되면 ‘ Magento 설치 완료.’라는 출력과 Magento 설치를 위한 관리자 URL 경로가 표시됩니다. 생성된 URL을 Magento 관리자 페이지에 저장하세요.

설치 완료

Magento 설치를 마치려면 아래 명령어를 실행하여 Magento의 crontab을 생성하고 Magento의 인덱싱을 실행합니다.

sudo -u www-data bin/magento cron:install  
sudo -u www-data bin/magento cron:run --group index

아래 명령어로 사용자 ‘www-data’의 crontab 목록을 확인할 수 있습니다:

crontab -u www-data -l

아래에서 Magento의 crontab이 생성된 것을 볼 수 있습니다.

마지막으로 아래 명령어를 실행하여 Magento 설치의 캐시를 지웁니다. 이렇게 하면 Magento 설치가 완료됩니다. 다음으로 Nginx 웹 서버를 설정해야 합니다.

sudo -u www-data bin/magento cache:clean

Nginx 서버 블록 설정

이 시점에서 Magento 설치가 완료되었습니다. 이제 Magento 설치를 실행할 새로운 Nginx 서버를 생성합니다. 서버 IP 주소를 가리키는 도메인 이름이 있는지 확인하세요.

다음 nano 편집기를 사용하여 새로운 Nginx 서버 블록 구성 ‘ /etc/nginx/sites-available/magento.conf ‘을 생성합니다.

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

다음 구성을 삽입하고 server_name 옵션을 Magento 도메인 이름으로 변경해야 합니다.

upstream fastcgi_backend {  
 server unix:/run/php/php8.3-fpm.sock;  
}  
  
server {  
 listen 80;  
 listen [::]:80;  
 server_name howtoforge.local;  
 set $MAGE_ROOT /var/www/magento2/;  
 include /var/www/magento2/nginx.conf.sample;  
 client_max_body_size 2M;  
  
 access_log /var/log/nginx/magento.access;  
 error_log /var/log/nginx/magento.error;  
}

작업이 완료되면 파일을 저장하고 종료합니다.

이제 아래 명령어를 실행하여 서버 블록 ‘ magento.conf ‘를 활성화하고 Nginx 구문을 확인합니다. ‘ syntax is ok - test is successful ‘라는 출력을 받아야 합니다.

sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/  
sudo nginx -t

마지막으로 아래 명령어로 Nginx 서비스를 재시작하여 새로운 서버 블록 구성을 적용합니다. 명령어가 실행된 후 Magento 설치가 가능합니다.

sudo systemctl restart nginx

HTTPS로 Magento 보안 설정

공용 도메인에서 Magento를 실행하는 경우 HTTPS로 보안 설정해야 합니다. 이 섹션에서는 Certbot과 Letsencrypt를 통해 Magento 설치를 HTTPS로 보안 설정합니다.

다음 명령어를 사용하여 Certbot 및 Certbot Nginx 플러그인을 설치합니다. 설치를 확인하려면 Y를 입력합니다.

sudo apt install certbot python3-certbot-nginx

설치가 완료되면 아래 명령어를 실행하여 Letsencrypt에서 SSL/TLS 인증서를 생성합니다. 아래의 이메일 주소와 도메인 이름을 귀하의 정보로 변경해야 합니다.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.local

프로세스가 완료되면 Magento 설치가 자동으로 HTTPS로 보안 설정됩니다. SSL/TLS 인증서는 ‘ /etc/letsencrypt/live/domain.com ‘ 디렉토리에 있습니다.

Magento 접근

웹 브라우저를 열고 https://howtoforge.local과 같은 Magento 도메인 이름을 방문하세요. 설치가 성공적이라면 다음과 같은 기본 Magento 인덱스 페이지를 볼 수 있습니다.

magento 홈

이제 Magento 관리 URL인 https://howtoforge.local/admin_ze87mmj를 방문하세요. 설치 과정을 확인하세요.

Magento의 관리자 사용자 및 비밀번호를 입력하고 로그인 버튼을 누르세요.

magento 로그인

성공적으로 로그인하면 다음과 같은 Magento 관리 대시보드를 볼 수 있습니다:

magento 대시보드

결론

축하합니다! 우분투 24.04 서버에 Magento 전자상거래 설치를 완료했습니다. LEMP 스택(Linux, Nginx, MySQL 및 PHP-FPM), OpenSearch 및 Redis와 함께 Magento가 설치되었습니다. 또한 Certbot과 Letsencrypt를 통해 Magento를 HTTPS로 보안 설정했습니다.

Share: X/Twitter LinkedIn

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

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