본문 바로가기
마젠토 2

마젠토 설치 - 서버 구축

by OK소프트 2024. 11. 17.

Chapter 1 마젠토 설치

이번 장에서는 로컬 환경에 Magento를 설치하는 방법을 설명하겠습니다. Magento 2.4 이상 버전을 설치하기 위해서는 여러 프로그램을 설치해야 합니다. 필요한 프로그램은 다음과 같습니다

Linux , NGINX, MYSQL, PHP, Composer, Elasticsearch...

이 글에서는 우분트 데스크탑(Ubuntu 20.04.1 LTS)을 설치하여 사용하였습니다. OS 설치 부분은 다루지 않고 그후의 설치과정을 다룹니다. 만약 우분트 데스크톱을 설치하여 개발하실려면 아래 사이트에서 다운받으실 수 있습니다.

( 윈도우 환경의 설치를 가이드 하지않는 이유는 마젠토는 리눅스계열에 최적화 되어 있습니다. Docker, 맥, 또는 우분트 데스크탑으로 로컬환경을 구축 개발하시는게 이후 정말 편합니다.)

Chapter 1.1: Hosts 파일 설정

로컬 개발 환경에서 dev.magento.com 도메인을 사용할 예정입니다. 이를 위해 /etc/hosts 파일을 수정해야 합니다

 
…… 127.0.0.1 dev.magento.com ……
 

/etc/hosts 파일에 dev.magento.com 도메인을 추가한 후, 해당 도메인이 올바르게 설정되었는지 확인하기 위해 ping 명령어를 사용합니다.

 
$> ping dev.magento.com
 

 

Chapter 1.2: NGINX 설치

개발 환경에서 방화벽이 활성화되어 있으면, 외부 접근에 제약이 생길 수 있습니다. 따라서 개발 편의성을 위해 방화벽을 해제하겠습니다.

 
$> sudo ufw disable
 

이제 NGINX를 설치하겠습니다.

 
$> sudo apt update && sudo apt install nginx
 

이제 Nginx 의 설정 파일인 /etc/nginx/nginx.conf를 열어 user 항목을 수정합니다. 이 설정을 통해 웹서버가 특정 개발 계정으로 운영되도록 설정할 수 있습니다. 만약 개발 계정을 모른다면, whoami 명령어를 통해 현재 사용 중인 계정을 확인할 수 있습니다.

 
…… user {개발계정명}; ……
 

변경 사항을 적용하기 위해 NGINX를 재시작하고, 서비스 상태를 확인합니다.

 
$> sudo systemctl restart nginx && sudo systemctl status nginx
 

Chapter 1.3: MySQL 8 설치

이번 단계에서는 MySQL 8을 설치하고, 설치 후 서비스 상태를 확인합니다..

 
$> sudo apt install mysql-server && sudo systemctl status mysql
 

MySQL에 접속하여 새 계정과 데이터베이스를 생성하는 방법을 설명하겠습니다.

 
$> sudo mysql
 

Magento에서 사용할 MySQL 사용자 계정을 생성하고, 해당 사용자에게 필요한 권한을 부여하겠습니다.

 
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'admin123';
mysql> ALTER USER 'magento'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin123';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'magento'@'localhost' WITH GRANT OPTION;
 

이제 데이터베이스를 생성하고 MYSQL 접속을 종료합니다.

 
mysql> CREATE DATABASE magento; mysql> FLUSH PRIVILEGES; mysql> exit
 

Chapter 1.4: PHP 7.4 설치

이번 단계에서는 서버 측 스크립트 언어로 PHP 7.4를 설치하고, Magento에서 사용되는 PHP 확장 모듈을 추가로 설치합니다

 
$> sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp \
php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml \
php7.4-cli php7.4-zip php7.4-soap php7.4-bcmath php7.4-xdebug
 

NGINX가 index.php 파일을 인덱스 파일로 인식하도록 기본 설정 파일을 수정 하겠습니다.

File: /etc/nginx/sites-available/default

 

 
……
index index.php index.html index.htm index.nginx-debian.html;
……
 

NGINX에 변경된 설정을 적용해 보겠습니다.

 
$> sudo systemctl reload nginx
 

 

이제 PHP 설정 파일인 php.ini를 수정하여 필요한 설정을 적용합니다. 파일 경로는 /etc/php/7.4/fpm/php.ini입니다. 설정 파일의 주석을 해제하고 필요한 값을 수정하는 방법을 설명하겠습니다.

File: /etc/php/7.4/fpm/php.ini

 
……
short_open_tag = On
memory_limit = 2G
cgi.fix_pathinfo = 0
upload_max_filesize = 1G
max_execution_time = 1800
zlib.output_compression = On
……
 

설정 항목중 memory_limit과 upload_max_filesize은 Magento 샘플데이터를 설치하기 위한 최소 설정입니다.

마젠토 설치 완료후에는 PC 사양에 맞추어 따로 설정하는게 좋습니다.

이제 PHP-FPM 프로세스가 사용할 사용자와 그룹을 설정합니다. 개발 환경에서 편리하게 사용할 사용자와 그룹으로 설정합니다 '/etc/php/7.4/fpm/pool.d/www.conf' 의 항목을 아래와 같이 수정합니다.

File: /etc/php/7.4/fpm/pool.d/www.conf

 
…… user = <개발계정명> group = <개발계정명> listen.owner = <개발계정명> listen.group = <개발계정명> ……
 

 

php-fpm을 재시작후 서비스 상태를 확인합니다.

 
$> sudo systemctl reload php7.4-fpm && systemctl status php7.4-fpm
 

Chapter 1.5: Composer 설치

Composer는 PHP의 의존성 관리 도구로, PHP 프로젝트에서 필요한 라이브러리와 패키지를 쉽게 관리할 수 있도록 도와줍니다. 이번 단계에서는 Composer를 설치하는 방법을 설명하겠습니다.

 
$> cd $> wget https://github.com/composer/composer/releases/download/1.10.17/composer.phar
$> sudo mv composer.phar /usr/local/bin/composer
$> sudo chmod +x /usr/local/bin/composer
$> composer
 

Chapter 1.6: Elasticsearch 7.6 설치

Magento 2.4부터는 기본 카탈로그 검색 엔진으로 Elasticsearch를 사용합니다. Elasticsearch를 설치하기 전에 Java Development Kit (JDK)와 CURL을 설치해야 합니다. 이 단계를 따라 Elasticsearch 7.6을 설치하는 방법을 설명하겠습니다.

Elasticsearch는 JDK 8 이상이 필요합니다. OpenJDK 11을 설치하려면 다음 명령어를 입력합니다 또한 동시에 CRUL도 설치하겠습니다.

 
$> sudo apt install openjdk-11-jdk -y && sudo apt install curl -y
 

이젠 Elasticsearch을 설치합니다.

 
$> curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$> echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list $> sudo apt update $> sudo apt install elasticsearch
 

Elasticsearch 설치 후, NGINX와 Elasticsearch 간의 인증을 설정하기 위해 /etc/nginx/conf.d/magento_es_auth.conf 파일을 생성하고 필요한 설정을 추가합니다. 이 파일은 NGINX가 Elasticsearch와 통신할 때 사용할 인증 정보를 포함합니다.

 
……
server {
     listen 8080; location /_cluster/health {
           proxy_pass http://localhost:9200/_cluster/health;
     }
} ……
 

이제 NGINX를 재가동 후 Elasticsearch을 실행합니다.

 
$> sudo systemctl restart nginx && sudo systemctl enable elasticsearch && sudo systemctl start elasticsearch
 

로컬 서버 환경이 준비되었으므로, 다음글에서는 Magento를 설치해보겠습니다.