웹사이트 검색

NGINX로 Shopware를 설치하고 Fedora 30에서 암호화하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 1단계 - PHP 및 PHP 확장 설치\n
  4. )
  5. 3단계 - MariaDB 설치 및 Shopware용 데이터베이스 생성
  6. 4단계 - Acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 받기(선택사항)\n
  7. 5단계 - NGINX 설치 및 구성
  8. 6단계 - Shopware 설치
  9. 7단계 - Shopware 설정 완료
  10. 링크

Shopware는 차세대 오픈 소스 전자 상거래 소프트웨어입니다. Symfony 3와 같은 최첨단 기술을 기반으로 Doctrine2 및 Zend Framework Shopware는 다음 전자상거래 프로젝트를 위한 완벽한 플랫폼으로 제공됩니다. 이 튜토리얼에서는 NGINX를 웹 서버로 사용하여 Fedora 30 시스템에 Shopware Community Edition(CE)을 설치하는 과정을 안내합니다.

요구 사항

시스템이 다음 최소 요구사항을 충족하는지 확인하세요.

  • NGINX 또는 Apache 2.x(mod_rewrite 포함) 웹 서버가 설치된 Linux 기반 운영체제\n
  • ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo 및 pdo/mysql 확장자가 있는 PHP 5.6.4 이상. PHP 7.1 이상을 강력히 권장합니다.\n
  • MySQL 5.5.0 이상.
  • 크론 작업 설정 가능성.
  • 최소 4GB의 사용 가능한 하드 디스크 공간.\n
  • IonCube 로더 버전 5.0.0 이상(선택 사항).\n

참고: Shopware 5는 현재 최대 PHP 7.2.x와 호환됩니다.

전제 조건

  • Fedora 29를 실행하는 운영 체제.\n
  • sudo 권한이 있는 루트가 아닌 사용자.\n

이 자습서에서는 도메인 이름 example.com을 사용합니다. 아래 명령 및 구성 파일(특히 nginx 구성 파일 및 Lets encrypt 명령)에서 example.com이라는 단어가 나타날 때마다 자신의 도메인 이름으로 바꾸십시오.

초기 단계

Fedora 버전 확인:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

시간대 설정:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.

sudo dnf upgrade -y

Fedora 운영 체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.

sudo dnf install -y curl wget vim git sudo unzip socat bash-completion

1단계 - PHP 및 PHP 확장 설치

PHP와 Shopware에 필요한 PHP 확장을 설치합니다.

sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache

모듈로 컴파일된 PHP를 표시하려면 다음을 실행할 수 있습니다.

php -m

ctype
curl
exif
fileinfo
. . .
. . .

PHP 버전 확인:

php --version

# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies

PHP-FPM 서비스 시작 및 활성화:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

다음 단계인 IonCube 로더 설치로 넘어갈 수 있습니다.

2단계 - IonCube 로더 설치(선택 사항)

Shopware는 현재 IonCube 없이 작동하기 때문에 이 단계는 선택 사항이지만 IonCube를 사용하는 확장 프로그램이나 테마가 여전히 있을 수 있으므로 설치해도 문제가 되지 않습니다. 이온큐브 로더 다운로드:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

로더를 추출합니다.

tar xfz ioncube_loaders_lin_*.gz

아래 명령을 실행하여 시스템에서 PHP 확장 디렉토리를 찾으십시오.

php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

ionCube 로더를 PHP 확장 디렉토리에 복사합니다.

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

PHP 구성을 통해 로더를 포함합니다.

sudo vim /etc/php.ini

그런 다음 파일에 줄을 추가하여 ionCube 로더를 포함합니다. [PHP] 줄 아래의 파일 어디에나 있을 수 있습니다.

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

파일을 저장하고 PHP-FPM을 다시 시작합니다.

sudo systemctl restart php-fpm.service

3단계 - MariaDB 설치 및 Shopware용 데이터베이스 생성

MariaDB 데이터베이스 서버 설치:

sudo dnf install -y mariadb-server

MariaDB 버전 확인:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

mysql_secure 설치 스크립트를 실행하여 MariaDB 보안을 개선하고 MariaDB root 사용자의 비밀번호를 설정합니다.

sudo mysql_secure_installation

각 질문에 답하십시오.

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

루트 사용자로 MariaDB 셸에 연결합니다.

sudo mysql -u root -p
# Enter password

Shopware용 빈 MariaDB 데이터베이스 및 사용자를 만들고 자격 증명을 기억합니다.

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

MariaDB에서 종료:

mysql> exit

dbname, usernamepassword를 자신의 이름으로 바꾸세요.

4단계 - Acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 받기(선택사항)

HTTPS로 웹 사이트를 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 TLS 인증서를 얻기 위해 acme.sh 클라이언트를 사용합니다. Acme.sh는 종속성이 없는 Lets Encrypt에서 TLS 인증서를 얻기 위한 순수 Unix 셸 소프트웨어입니다.

acme.sh를 다운로드하고 설치합니다.

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail 
source ~/.bashrc
cd ~

acme.sh 버전 확인:

acme.sh --version
# v2.8.1

도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:<br>

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

테스트를 위해 가짜 인증서를 원하는 경우 위 명령에 --staging 플래그를 추가할 수 있습니다.

위 명령어를 실행하면 인증서가 다음 위치에 있게 됩니다.

  • RSA의 경우: /home/username/example.com 디렉토리.
  • ECC/ECDSA의 경우: /home/username/example.com_ecc 디렉토리.

발급된 인증서를 나열하려면 다음을 실행할 수 있습니다.

acme.sh --list

인증서를 저장할 디렉터리를 만듭니다. /etc/letsencrypt. 디렉터리를 사용합니다.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

인증서를 /etc/letsencrypt 디렉터리에 설치/복사합니다.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

모든 인증서는 60일마다 자동으로 갱신됩니다.

인증서를 얻은 후 루트 사용자에서 종료하고 일반 sudo 사용자로 돌아갑니다.

exit

5단계 - NGINX 설치 및 구성

NGINX 웹 서버를 설치합니다.

sudo dnf install -y nginx

NGINX 버전 확인:

nginx -v
# nginx version: nginx/1.14.2

NGINX 서비스 시작 및 사용 설정:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Shopware용 NGINX를 구성합니다. sudo vim /etc/nginx/conf.d/shopware.conf를 실행하고 다음 구성을 추가합니다.

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
    }
}

NGINX 구성에서 구문 오류를 확인하세요.

sudo nginx -t

NGINX 서비스 다시 로드:

sudo systemctl reload nginx.service

6단계 - Shopware 설치

Shopware용 문서 루트 디렉토리를 생성합니다.

sudo mkdir -p /var/www/shopware

/var/www/shopware 디렉토리의 소유권을 {your_user}로 변경합니다. {your_user}를 현재 로그인한 사용자의 사용자 이름으로 바꿉니다.

sudo chown -R {your_user}:{your_user} /var/www/shopware

문서 루트 디렉터리로 이동합니다.

cd /var/www/shopware

wget을 통해 최신 Shopware 릴리스를 다운로드하고 압축을 풉니다.

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip

참고: 최신 버전이 있는 경우 다운로드 URL을 업데이트하세요.

/var/www/shopware 디렉토리의 소유권을 nginx로 변경합니다.

sudo chown -R nginx:nginx /var/www/shopware

sudo vim /etc/php-fpm.d/www.conf를 실행하고 사용자 및 그룹을 nginx로 설정합니다. 처음에는 apache:로 설정됩니다.

sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

/var/lib/php/session/ 디렉토리를 만들고 소유권을 nginx로 변경합니다.

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

memory_limit = 256Mupload_max_filesize = 6M을 늘리고 /etc/php/7.2/에 아직 설정되지 않은 경우 allow_url_fopen = On을 설정합니다. fpm/php.ini 파일.

sudo vim /etc/php.ini

/etc/php.ini 파일을 변경한 후 php-fpm.service:를 다시 로드합니다.

sudo systemctl reload php-fpm.service

웹 브라우저에서 도메인/IP를 열고 설치 마법사를 따릅니다. Shopware의 백엔드는 /backend 예: http://example.com/backend에 있습니다.

7단계 - Shopware 설정 완료

언어를 선택하여 시작하고 다음을 클릭합니다.

다음으로 모든 Shopware 요구 사항을 충족하는지 확인하십시오.

Shopware TOS에 동의하고 다음을 클릭합니다.

데이터베이스 자격 증명을 입력하고 다음을 클릭합니다.

설치를 시작하여 데이터베이스 테이블을 생성합니다.

그런 다음 성공적인 데이터베이스 가져오기에 대한 메시지가 표시됩니다.

라이선스를 선택하고 다음을 클릭합니다.

몇 가지 기본 설정을 입력하여 설정을 완료하고 다음을 클릭합니다.

설치가 완료되었습니다.

관리 영역에 액세스하려면 URL에 /backend를 추가하십시오.

Shopware를 성공적으로 설치했습니다. 새로운 온라인 상점을 즐기십시오!

연결

  • https://en.shopware.com/
  • https://github.com/shopware/shopware