SW/리눅스

Ubuntu 18.04 : Magento 2 설치 방법, 예제, 명령어

얇은생각 2021. 4. 7. 07:30
반응형

Magento는 강력한 기능과 유연성 및 사용자 친화적인 인터페이스를 결합한 오픈 소스 기술을 기반으로 구축된 업계 최고의 전자상거래 플랫폼입니다.

쇼핑 체험 참여, 유연한 모듈형 아키텍처 및 엔터프라이즈급 확장성 및 성능 매젠토는 대부분의 온라인 상점에서 선택할 수 있는 플랫폼입니다.

이 튜토리얼에서는 Ubuntu 18.04 기계에 Magento 2.3을 설치하는 방법을 보여드리겠습니다. Nginx를 웹 서버, 최신 PHP 7.2 MySQL/MariaDB를 데이터베이스 서버로 사용할 예정입니다.

 

 

 

전제조건

이 자습서를 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인하십시오.

공용 서버 IP를 가리키는 도메인 이름이 있습니다. 우리는 example.com을 사용할 것입니다.

Nginx는 다음 지침에 따라 Ubuntu 서버에 설치됩니다.

사용자 정보를 암호화하기 위해 도메인에 설치된 SSL 인증서입니다. 다음 지침에 따라 무료 SSL 암호화 인증서를 설치할 수 있습니다.

Magento 2 코드 저장소에 액세스하려면 인증 키를 생성해야 합니다. Magento Marketplace 계정이 없는 경우 여기에 계정을 생성할 수 있습니다. 계정을 만든 후에는 새 인증 키 집합을 생성하는 방법에 대한 지침을 확인하십시오.

시스템 패키지를 최신 버전으로 업데이트하고 압축 풀기 유틸리티를 설치합니다.

sudo apt update && sudo apt upgrade
sudo apt install unzip 

 

 

 

MySQL 데이터베이스 생성

서버에 MySQL 또는 MariaDB가 설치되어 있는 경우 이 단계를 건너뛸 수 있습니다. 그렇지 않은 경우 다음을 입력하여 Ubuntu의 기본 리포지토리에서 MySQL 5.7 서버 패키지를 설치할 수 있습니다.

sudo apt install mysql-server mysql-client

 

 

새로 설치하는 MySQL의 경우 mysql_secure_installation 명령을 실행하여 MySQL 서버의 보안을 향상시키는 것이 좋습니다.

다음 명령을 사용하여 MySQL 셸에 로그인합니다.

sudo mysql

 

 

MySQL 셸 내에서 다음 SQL 문을 실행하여 Magento라는 새 데이터베이스를 생성합니다.

CREATE DATABASE magento;

 

 

그런 다음 magento라는 MySQL 사용자 계정을 생성하고 다음 명령을 실행하여 사용자에게 필요한 권한을 부여합니다.

GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';

 

 

강력한 암호로 변경 내용을 변경해야 합니다.

완료되면 다음을 입력하여 MySQL 콘솔을 종료합니다.

EXIT;

 

 

 

시스템 사용자 생성

Macento 파일 시스템 소유자가 될 새 사용자 및 그룹을 생성하고 간단하게 사용자 이름을 다음과 같이 지정합니다.

sudo useradd -m -U -r -d /opt/magento magento

 

 

 

www-data 사용자를 Magneto 그룹에 추가하고 /opt/magen을 디렉터리 권한으로 변경하여 Nginx Magent to 설치에 액세스할 수 있도록 합니다.

sudo usermod -a -G magento www-data
sudo chmod 750 /opt/magento

 

 

 

PHP를 설치 및 구성

Ubuntu 18.04의 기본 PHP 버전인 PHP 7.2는 완전히 지원되며 Magento 2.3에 권장됩니다. Nginx를 웹 서버로 사용하기 때문에 PHP-FPM 패키지도 설치할 예정입니다.

다음 명령을 실행하여 PHP 및 필요한 모든 PHP 모듈을 설치합니다.

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

 

 

PHP-FPM 서비스는 설치 프로세스가 완료된 후 자동으로 시작됩니다. 서비스 상태를 인쇄하여 확인할 수 있습니다.

출력은 fpm 서비스가 활성 상태이고 실행 중임을 나타내야 합니다.

sudo systemctl status php7.2-fpm

# ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
#    Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
#    Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago
#      Docs: man:php-fpm7.2(8)
#  Main PID: 16814 (php-fpm7.2)
#    Status: "Ready to handle connections"
#     Tasks: 3 (limit: 505)
#    CGroup: /system.slice/php7.2-fpm.service

 

 

 

sed::를 사용하여 php.ini 파일을 편집하여 필수 및 권장 PHP 옵션을 설정합니다.

sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

 

 

다음으로, 매거진을 사용자에게 제공할 FPM 풀을 생성해야 합니다. 

텍스트 편집기를 열고 다음 파일을 만듭니다.

# /etc/php/7.2/fpm/pool.d/magento.conf

[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

 

 

PHP-FPM 서비스를 다시 시작하여 변경 내용을 적용합니다.

systemctl restart php7.2-fpm

 

 

다음 ls 명령을 실행하여 PHP 소켓이 생성되었는지 확인합니다.

ls -al /var/run/php/php7.2-fpm-magento.sock

# srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=

 

 

 

Composer 설치

Composer PHP의 종속성 관리자이며, 이 관리자를 사용하여 Magento 코어를 다운로드하고 필요한 모든 Magento 구성 요소를 설치할 예정입니다.

Composer를 전체적으로 설치하려면 Curl과 함께 Composer 설치 프로그램을 다운로드하고 파일을 /usr/local/bin 디렉토리로 이동하십시오.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

 

 

다음과 같은 Composer 버전을 인쇄하여 설치를 확인합니다.

composer --version

# Composer version 1.8.0 2018-12-03 10:31:16

  

 

 

Magento 설치

Magento 2를 설치하는 방법에는 여러 가지가 있습니다. Github 저장소에서 Magento를 설치하지 마십시오. 해당 버전은 프로덕션 설치가 아닌 개발용입니다.

당시 최신 버전의 마젠토는 2.3.0 버전입니다. 이 튜토리얼에서는 Composer를 사용하여 리포지토리에서 Magento를 설치합니다. 

다음을 입력하여 사용자 매거진으로 전환합니다.

sudo su - magento

 

 

/opt/magento/public_html 디렉토리에 자판을 파일로 다운로드하여 설치를 시작합니다.

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

#       Authentication required (repo.magento.com):
#       Username: e758ec1745d190320ca246e4e832e12c
#       Password: 
# Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

 

 

액세스 키를 입력하고 Magent의 키를 마켓플레이스 계정으로 복사하여 auth.json 파일에 저장하라는 메시지가 표시되므로 나중에 설치를 업데이트할 때 동일한 키를 다시 추가하지 않아도 됩니다.

위의 명령은 필요한 모든 PHP 패키지를 가져옵니다. 프로세스는 몇 분 정도 걸릴 수 있으며, 성공적인 경우 출력의 끝은 다음과 같아야 합니다.

# Writing lock file
# Generating autoload files

 

 

프로젝트가 생성되면 Magento 설치를 시작할 수 있습니다. 명령줄 또는 웹 설치 마법사를 사용하여 Magento를 설치할 수 있습니다. 이 튜토리얼에서는 명령줄을 사용하여 Magento를 설치합니다. 

cd ~/public_html
php bin/magento setup:install --base-url=https://example.com/ \
        --base-url-secure=https://example.com/ \
        --admin-firstname="John" \
        --admin-lastname="Doe" \
        --admin-email="john@example.com" \
        --admin-user="john" \
        --admin-password="j0hnP4ssvv0rD" \
        --db-name="magento" \
        --db-host="localhost" \
        --db-user="magento" \
        --currency=USD \
        --timezone=America/Chicago \
        --use-rewrites=1 \
        --db-password="change-with-strong-password"

 

 

암호(j0hnP4ssv0rD)를 보다 안전한 암호로 변경하는 것을 잊지 마십시오.

프로세스가 몇 분 정도 걸릴 수 있으며 완료되면 Magento 관리 대시보드에 URI가 포함된 메시지가 표시됩니다.

[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.

 

 

 

Crontab 생성

Magento는 크론 작업을 사용하여 재색인, 알림, 사이트 맵, 이메일 등과 같은 작업을 예약합니다.

Magento crontab을 생성하려면 다음 명령을 사용자에게 Magneto으로 실행합니다.

다음을 입력하여 크론 탭이 설치되었는지 확인합니다.

php ~/public_html/bin/magento cron:install

# Crontab has been generated and saved


crontab -l

# #~ MAGENTO START adc062915d7b30804a2b340095af072d
# * * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
# * * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
# * * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
# #~ MAGENTO END adc062915d7b30804a2b340095af072d

 

 

 

Nginx 구성

현재 Ubuntu 서버에 SSL 인증서를 설치한 Nginx가 설치되어 있어야 합니다. 이 튜토리얼에 대한 필수 구성 요소를 확인하지 않은 경우입니다. 

Magento와 함께 제공된 기본 Nginx 구성을 포함할 것입니다. 

sudo 사용자로 전환하고 텍스트 편집기를 열고 다음 파일을 만듭니다.

# /etc/nginx/sites-available/example.com

upstream fastcgi_backend {
  server   unix:/var/run/php/php7.2-fpm-magento.sock;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    set $MAGE_ROOT /opt/magento/public_html;
    set $MAGE_MODE developer; # or production

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /opt/magento/public_html/nginx.conf.sample;
}

 

sudo nginx -t

# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

sudo systemctl restart nginx

 

 

 

설치 확인

브라우저를 열고 도메인을 입력하면 설치가 성공했다고 가정하면 다음과 유사한 화면이 나타납니다.

Ubuntu 18.04 : Magento 2 설치 방법, 예제, 명령어

 

 

이제 Magento Admin URI로 이동하여 관리자로 로그인한 후 새 Magento를 사용자 정의하여 설치할 수 있습니다.

반응형