SW/리눅스

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

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

PrestaShop은 자유-오픈 소스 전자 상거래 플랫폼입니다. PHP와 MySQL을 기반으로 하며 무료 및 프리미엄 플러그인과 테마를 사용하여 확장할 수 있습니다.

직관적인 관리 인터페이스, 다중 결제 게이트웨이, 다국어, 분석 및 보고와 같은 기능을 갖춘 PrestaShop은 많은 온라인 상인들이 선택할 수 있는 플랫폼입니다.

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

 

 

 

전제조건

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

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

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

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

 

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

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

 

 

 

MySQL 데이터베이스 생성

PrestaShop은 정보를 MySQL 데이터베이스에 저장합니다.

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

sudo apt install mysql-server mysql-client

 

 

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

데이터베이스를 생성하려면 mysql 셸에 로그인합니다.

sudo mysql

 

 

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

CREATE DATABASE prestashop;

 

 

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

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

 

 

강력한 암호로 변경하는 것을 잊지 마십시오.

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

EXIT;

 

 

 

PHP를 설치 및 구성

PHP 7.2는 Ubuntu 18.04의 기본 PHP 버전이며, PrestaShop에 완전히 지원되고 권장됩니다.

다음 명령을 실행하여 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 서비스가 자동으로 시작됩니다. 다음을 입력하여 확인할 수 있습니다.

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 Sun 2019-03-24 11:53:33 PDT; 14s ago
#      Docs: man:php-fpm7.2(8)
#  Main PID: 15853 (php-fpm7.2)
#    Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"

 

 

다음 sed 명령을 실행하여 권장 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

 

 

PrestaShop을 다운로드

이 기사를 쓸 당시 최신 버전의 PrestaShop은 버전 1.7.6.2입니다.

다음 wget 명령을 사용하여 PrestaShop 다운로드 페이지에서 최신 버전의 PrestaShop을 다운로드하십시오.

cd /tmp
wget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip

 

 

다운로드가 완료되면 PrestaShop 파일을 저장할 디렉토리를 생성합니다.

sudo mkdir -p /var/www/html/example.com

 

 

다음으로 PrestaShop 아카이브의 압축을 풉니다.

unzip prestashop_*.zip

 

 

이 아카이브에는 모든 PrestaShop 파일이 들어 있는 다른 zip 파일 "prestashShop.zip"이 포함되어 있습니다. 파일을 도메인의 문서 루트 디렉토리에 추출합니다.

sudo unzip prestashop.zip -d /var/www/html/example.com

# sudo chown -R www-data: /var/www/html

 

 

다음 chown 명령을 사용하여 웹 서버가 사이트의 파일 및 디렉토리에 대한 전체 액세스 권한을 가질 수 있도록 올바른 사용 권한을 설정합니다.

 

 

 

Nginx를 구성

이제 Ubuntu 서버에 SSL 인증서가 설치된 Nginx가 이미 있습니다. 그렇지 않은 경우 필수 구성 요소를 확인하십시오. 

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

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

server {

    listen 80;
    listen 443 ssl http2;

    server_name example.com www.example.com;
    root /var/www/html/example.com;
    index index.php;

    # SSL parameters
    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;

    # Cloudflare / Max CDN fix
    location ~* \.(eot|otf|ttf|woff(?:2)?)$ {
        add_header Access-Control-Allow-Origin *;
    }

    # Do not save logs for these
    location = /favicon.ico {
        auth_basic off;
        allow all;
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        auth_basic off;
        allow all;
        log_not_found off;
        access_log off;
    }

    # Images
    rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
    rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
    rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
    rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;

    # AlphaImageLoader for IE and fancybox
    rewrite ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last;

    # Web service API
    rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;

    # Installation sandbox
    rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last;

    #Change this block to your admin folder
    location /admin_CHANGE_ME {
        if (!-e $request_filename) {
            rewrite ^/.*$ /admin_CHANGE_ME/index.php last;
        }
    }

    # File security
    # .htaccess .DS_Store .htpasswd etc
    location ~ /\. {
        deny all;
    }
    # Source code directories
    location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ {
        deny all;
    }
    # Prevent exposing other sensitive files
    location ~ \.(yml|log|tpl|twig|sass)$ {
        deny all;
    }

    # Prevent injection of php files
    location /upload {
        location ~ \.php$ {
            deny all;
        }
    }
    location /img {
        location ~ \.php$ {
            deny all;
        }
    }

    # PHP FPM part
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}

 

 

example.com을 PrestaShop 도메인과 "admin_"으로 교체하는 것을 잊지 마십시오.관리자 디렉토리와 함께 CHANGE_ME"를 입력합니다. Prestashop 루트 디렉터리의 내용을 나열하면 디렉터리 이름을 찾을 수 있습니다.

sudo ls -l /var/www/html/example.com | grep admin

 

 

또한 SSL 인증서 파일의 올바른 경로를 사용해야 합니다. 이 구성에 사용된 코드 조각에 작성됩니다.

Nginx 서비스를 다시 시작하기 전에 구성에 구문 오류가 있는지 확인하십시오.

sudo nginx -t

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

 

 

마지막으로 다음을 입력하여 Nginx 서비스를 다시 시작합니다.

sudo systemctl restart nginx

 

 

 

PrestaShop을 설치

이제 PrestaShop이 다운로드되고 서버 구성이 완료되었으므로 웹 인터페이스를 통해 설치를 완료할 수 있습니다.

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

 

 

 

PrestaShop 언어를 설치

사용할 언어를 선택하고 "다음" 단추를 클릭합니다.

다음 화면에는 PrestaShop 라이센스 계약이 표시됩니다. 라이센스를 읽고 "위의 약관에 동의합니다"를 선택하여 계속하십시오.

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 1

 

 

다음 정보 페이지가 나타납니다.

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

 

 

모든 사전 설치 요구 사항이 충족되고 시스템이 PrestaShop과 호환되는지 확인하십시오

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 3

 

 

다음 화면에서 상점 세부 정보를 입력해야 합니다. 이메일 주소는 PrestaShop 관리 백엔드에 액세스하는 사용자 이름입니다.

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 4

 

 

그런 다음 설치 마법사가 데이터베이스 연결 세부 정보를 입력하라는 메시지를 표시합니다. 이전에 생성한 MySQL 사용자 및 데이터베이스 세부 정보를 입력하십시오.

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 5

 

 

"다음" 버튼을 클릭하면 설치가 시작됩니다.

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 6

 

 

설치에는 몇 분 정도 걸릴 수 있습니다. 설치가 완료되면 PrestaShop이 설치되었음을 알리는 다음 페이지가 표시됩니다.

Ubuntu 18.04 : PrestaShop 설치 방법, 예제, 명령어 7

 

 

보안상의 이유로 설치 디렉토리를 삭제해야 합니다. 이렇게 하려면 터미널로 돌아가서 다음 rm 명령을 입력합니다.

sudo rm -rf /var/www/html/example.com/install

 

 

PrestaShop 관리 대시보드에 액세스하려면 "스토어 관리" 단추를 클릭하십시오. 전자 메일과 암호를 입력하면 관리 대시보드로 리디렉션됩니다.

PrestaShop 설치 사용자 정의를 시작하고 새 제품을 추가할 수 있습니다.

반응형