웹사이트 검색

Debian 9에 X-cart 전자상거래 플랫폼을 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 사전 요구 사항\n
  3. X-Cart 설치

이 튜토리얼은 무료 온라인 쇼핑 상점을 만들기 위해 데비안 9.2 릴리스에서 최신 버전의 X-Cart 전자 상거래 플랫폼을 설치하고 구성하는 방법을 안내합니다.

X-Cart는 강력하고 복잡한 상업용 오픈 소스 전자 상거래 쇼핑 카트 플랫폼으로 대부분의 부분이 PHP 프로그래밍 언어로 작성되고 종종 SaaS(Software as a Service Solution)로 배포됩니다. X-cart 쇼핑 플랫폼은 Apache/Nginx 웹 서버, PHP 및 LAMP 또는 LEMP 스택으로도 알려진 MySQL/MariaDB 데이터베이스 관리 시스템 아래 Linux에 설치할 수도 있습니다. X-Cart CMS 온라인 전자 상거래 플랫폼은 다양한 비즈니스를 위한 온라인 상점을 만들고 서비스 및 상품을 광고하고 판매하는 데 많이 사용됩니다.

요구 사항

  • 베어 메탈 머신 또는 가상 사설 서버에 데비안 9 서버 설치
  • 로컬 또는 원격 계정 또는 루트 계정에 직접 액세스하기 위한 sudo 루트 권한\n
  • 시스템 네트워크 인터페이스 카드 중 하나에 대해 구성된 고정 IP 주소\n
  • 배포에 따라 웹 서비스용으로 구성된 적절한 DNS 레코드가 있는 개인 또는 공용 도메인 이름. 유효하거나 등록된 도메인 이름이 없는 경우 서버 IP 주소를 통해 설치를 수행하고 웹 사이트에 액세스할 수 있습니다.\n
  • 웹사이트 등록, 댓글 조정 및 기타 기능을 사용하려면 IMAP 및 SMTP 서비스에 대한 원격 액세스가 가능한 사내에서 적절하게 구성된 실행 중인 메일 서버가 있어야 합니다.\n

사전 요구 사항

자체 서버의 소스에서 X-Cart 설치 및 구성을 시작하기 전에 먼저 시스템이 애플리케이션 컴파일 및 설치를 위한 모든 소프트웨어 요구 사항을 충족하는지 확인하십시오. 첫 번째 단계에서 아래 명령을 실행하여 시스템 리포지토리 및 소프트웨어 패키지를 업데이트합니다.

apt update
apt upgrade

시스템이 완전히 업데이트된 후 다음 명령을 실행하여 시스템 이름을 설정하십시오. 그에 따라 호스트 이름 변수를 바꾸십시오.

hostnamectl set-hostname xcart

다음 명령어를 실행하여 머신 호스트 이름 및 호스트 파일을 확인합니다.

hostnamectl 
cat /etc/hostname 
hostname –s
hostname –f

마지막으로 커널 업데이트를 적용하고 호스트 이름이 올바르게 변경되도록 데비안 서버를 재부팅합니다.

systemctl reboot

다음 단계에서 다음 명령을 실행하여 명령줄에서 시스템을 추가로 관리하는 데 사용할 필수 유틸리티를 설치합니다.

apt install wget bash-completion zip unzip

X-Cart는 주로 PHP 서버 측 프로그래밍 언어로 작성된 웹 기반 CMS 전자 상거래 플랫폼입니다. 애플리케이션의 PHP 파일 스크립트를 실행하기 위해서는 Apache HTTP 서버와 같은 웹 서버와 PHP 처리 게이트웨이가 시스템에 설치되고 작동되어야 합니다. 애플리케이션이 제대로 실행되는 데 필요한 모든 필수 PHP 모듈과 함께 Apache 웹 서버 및 PHP 인터프리터를 설치하려면 서버 콘솔에서 다음 명령을 실행하십시오.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-mbstring php7.0-curl php7.0-gd php7.0-xml php7.0-opcache

Apache 및 PHP가 설치된 후 루트 권한으로 다음 명령을 실행하여 웹 서버가 실행 중이고 포트 80에서 네트워크 연결을 수신하는지 테스트합니다.

netstat –tlpn

netstat 네트워크 유틸리티가 Debian 시스템에 기본적으로 설치되어 있지 않은 경우 다음 명령을 실행하여 설치합니다.

apt install net-tools

netstat 명령 출력을 검사하면 Apache 웹 서버가 포트 80에서 들어오는 네트워크 연결을 수신 대기하고 있음을 알 수 있습니다. 동일한 작업을 위해 Debian 9에 기본적으로 자동 설치되는 ss 명령을 사용할 수도 있습니다.

ss- tulpn

UFW 방화벽 애플리케이션과 같이 시스템에 방화벽이 활성화된 경우 다음 명령을 실행하여 HTTP 트래픽이 방화벽을 통과하도록 허용하는 새 규칙을 추가해야 합니다.

ufw allow WWW

또는

ufw allow 80/tcp

iptables 원시 규칙을 사용하여 Debian 서버에서 방화벽 규칙을 관리하는 경우 방문자가 온라인 상점을 탐색할 수 있도록 방화벽에서 포트 80 인바운드 트래픽을 허용하는 다음 규칙을 추가하십시오.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

다음으로 아래 명령을 실행하여 전자 상거래 애플리케이션이 제대로 실행되는 데 필요한 다음 Apache 모듈을 활성화하고 적용합니다.

a2enmod rewrite
systemctl restart apache2

마지막으로 아래 이미지와 같이 HTTP 프로토콜을 통해 데비안 컴퓨터 IP 주소 또는 도메인 이름 또는 서버 FQDN을 방문하여 클라이언트 브라우저에 Apache 웹 서버 기본 웹 페이지를 표시할 수 있는지 테스트합니다. 컴퓨터 IP 주소를 모르는 경우 ifconfig 또는 ip a 명령을 실행하여 서버의 IP 주소를 확인하십시오.

클라이언트의 트래픽을 보호할 HTTPS 프로토콜을 통해 X-Cart 웹 관리자 패널 백엔드 및 프런트엔드 웹 사이트를 설치하고 액세스하려면 다음 명령을 실행하여 Apache 웹 서버 SSL 모듈 및 SSL 사이트 구성 파일을 활성화하십시오.

a2enmod ssl
a2ensite default-ssl.conf

다음으로 텍스트 편집기로 Apache 기본 SSL 사이트 구성 파일을 열고 아래 샘플과 같이 DocumentRoot 지시문 뒤에 다음 코드 줄을 추가하여 URL 재작성 규칙을 활성화합니다.

nano /etc/apache2/sites-enabled/default-ssl.conf

SSL 사이트 구성 파일 발췌:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

또한 VirtualHost 행을 다음과 같이 변경하여 아래 발췌문과 같이 표시합니다.

<VirtualHost *:443>

SSL Apache 파일을 닫고 편집을 위해 /etc/apache2/sites-enabled/000-default.conf 파일을 열고 SSL 구성 파일과 동일한 URL 재작성 규칙을 추가합니다. 아래 예제와 같이 DocumentRoot 문 뒤에 코드 줄을 삽입합니다.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

마지막으로 Apache 데몬을 다시 시작하여 지금까지 구성된 모든 규칙을 적용하고 HTTP 프로토콜을 통해 도메인을 방문합니다. 설치 시 Apache에서 발급한 자동 자체 서명 인증서 쌍을 사용하고 있기 때문에 브라우저에 오류 경고가 표시되어야 합니다.

systemctl restart apache2

https://yourdomain.tld

UFW 방화벽 애플리케이션이 HTTPS 포트로 들어오는 네트워크 연결을 차단하는 경우 다음 명령을 실행하여 HTTPS 트래픽이 방화벽을 통과하도록 허용하는 새 규칙을 추가해야 합니다.

ufw allow 'WWW Full'

또는

ufw allow 443/tcp

iptables가 네트워크 수준에서 Debian 시스템을 보호하기 위해 설치된 기본 방화벽 응용 프로그램인 경우 방문자가 도메인 이름을 검색할 수 있도록 방화벽에서 포트 443 인바운드 트래픽을 허용하는 다음 규칙을 추가합니다.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

다음 단계에서는 다음 PHP 변수가 활성화되고 PHP 시간대 설정이 올바르게 구성되고 시스템 지리적 위치와 일치하도록 PHP 기본 구성 파일을 추가로 변경해야 합니다. 편집을 위해 /etc/php/7.0/apache2/php.ini 파일을 열고 다음 줄이 다음과 같이 설정되었는지 확인합니다. 또한 처음에는 PHP 구성 파일을 백업하십시오.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

php.ini 구성 파일에서 다음 변수를 검색, 수정 및 변경합니다.

file_uploads = On
allow_url_fopen = On
memory_limit = 128 M
upload_max_file_size = 64M
date.timezone = Europe/London

다음 링크 http://php.net/manual/en/timezones에서 PHP 문서가 제공하는 표준 시간대 목록을 참조하여 대용량 첨부 파일을 지원하는 데 적합하도록 memory_limit 변수를 늘리고 실제 시간에 따라 time.zone 변수를 교체하십시오. .php.

PHP7에서 사용할 수 있는 OPCache 플러그인을 통해 웹사이트 페이지의 로드 속도를 높이려면 아래 설명된 대로 PHP 인터프리터 구성 파일 하단에 다음 OPCache 설정을 추가하십시오.

opcache.enable=1 
opcache.enable_cli=1 
opcache.interned_strings_buffer=8 
opcache.max_accelerated_files=10000 
opcache.memory_consumption=128 
opcache.save_comments=1
opcache.revalidate_freq=1

php.ini 구성 파일을 닫고 PHP 구성 파일의 끝을 확인하여 변수가 올바르게 추가되었는지 아래 명령을 실행하여 확인합니다.

tail /etc/php/7.0/apache2/php.ini

위에서 설명한 모든 변경을 수행한 후 다음 명령을 실행하여 Apache 데몬을 다시 시작하여 새 변경 사항을 적용합니다.

systemctl restart apache2

마지막으로 다음 명령어를 실행하여 PHP info 파일을 생성하고 아래 이미지와 같이 브라우저에서 다음 URL의 PHP info 스크립트 파일을 방문하여 PHP 시간대가 올바르게 설정되었는지 확인합니다. 날짜 설정까지 아래로 스크롤하여 PHP 시간대 구성을 확인합니다.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

X-Cart 전자상거래 웹 애플리케이션은 사용자, 세션, 연락처, 제품, 카탈로그 등과 같은 다양한 구성을 RDBMS 데이터베이스에 저장합니다. 이 가이드에서는 MariaDB 데이터베이스를 백엔드로 사용하도록 X-Cart를 구성합니다. 아래 명령을 실행하여 MariaDB 데이터베이스와 mysql 데이터베이스에 액세스하는 데 필요한 PHP 모듈을 설치합니다.

apt install mariadb-server php7.0-mysql

MariaDB를 설치한 후 데몬이 실행 중이고 netstat 명령을 실행하여 localhost, 포트 3306에서 연결을 수신하는지 확인합니다.

netstat –tlpn | grep mysql

그런 다음 MySQL 콘솔에 로그인하고 다음 명령어를 실행하여 MariaDB 루트 계정을 보안합니다.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

다음 단계에서 Debian 확장 리포지토리의 설치 패키지에서 제공하는 mysql_secure_installation 스크립트를 실행하여 MariaDB를 보호합니다. 스크립트를 실행하는 동안 MySQL 루트 암호 변경, 익명 사용자 제거, 원격 루트 로그인 비활성화 및 테스트 데이터베이스 삭제와 같은 MariaDB 데이터베이스 보안을 위해 설계된 일련의 질문을 합니다. 아래 명령을 실행하여 스크립트를 실행하고 MySQL 데몬을 완전히 보호하기 위해 묻는 모든 질문에 예를 입력했는지 확인하십시오. 가이드를 제외하고 다음 스크립트 출력을 사용하십시오.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

 

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

 

Cleaning up...

 

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

 

Thanks for using MariaDB!

MariaDB 보안을 테스트하려면 루트 암호 없이 콘솔에서 데이터베이스에 로그인해 보십시오. 루트 계정에 암호가 제공되지 않으면 데이터베이스에 대한 액세스가 거부되어야 합니다. 암호가 제공되면 다음 스크린샷과 같이 로그인 프로세스가 MySQL 콘솔에 부여되어야 합니다.

mysql -h localhost -u root
mysql -h localhost -u root –p

다음으로 MariaDB 데이터베이스 콘솔에 로그인하고 다음 명령을 실행하여 X-Cart 애플리케이션용 데이터베이스와 애플리케이션 데이터베이스를 관리하는 데 사용할 비밀번호가 있는 사용자를 생성합니다. 그에 따라 데이터베이스 이름, 사용자 및 암호를 바꿉니다.

mysql –u root -p
create database my_xcart;
grant all privileges on my_xcart.* to 'xcart_user' identified by 'x_password';
flush privileges;   
exit

지금까지의 모든 변경 사항을 적용하려면 MySQL 및 Apache 데몬을 다시 시작하고 다음 명령을 실행하여 데몬이 실행 중인지 확인합니다.

 systemctl restart mysql apache2
systemctl status mysql apache2

X-장바구니 설치

전자 상거래 온라인 상점 설치를 위한 모든 시스템 요구 사항이 충족되면 데스크탑 컴퓨터에서 X-Cart 다운로드 페이지(https://www.x-cart.com/download.html)를 방문하여 최신 zip 패키지 압축 아카이브를 다운로드하십시오. 웹 사이트에서 필요한 웹 양식을 작성합니다.

아카이브 다운로드가 완료되면 scp와 같은 파일 전송 프로토콜을 사용하여 데스크톱 컴퓨터에서 데비안 서버로 다운로드한 zip 파일을 복사합니다. zip 파일을 서버 /tmp 디렉토리로 전송하십시오. zip 파일의 업로드 전송이 성공적으로 완료되었는지 확인하기 위해 SSH를 통해 원격 서버 /tmp 디렉토리를 나열합니다.

scp x-cart-5.3.3.4-gb.zip _server_IP_or_domain:/tmp
ssh  _server_IP_or_domain 'ls /tmp'

zip 아카이브 다운로드가 완료되면 X-Cart zip 압축 아카이브를 /tmp 디렉토리에 추출하고 아래 명령을 실행하여 추출된 파일을 나열하십시오. 또한 webroot 경로에 Apache 웹 서버에서 설치한 기본 index.html 파일을 제거하고 앞서 생성한 info.php 파일도 삭제합니다.

rm /var/www/html/index.html 
rm /var/www/html/info.php
cd /tmp
unzip x-cart-5.3.3.4-gb.zip
ls

X-Cart용 설치 파일은 xcart 디렉토리의 현재 작업 디렉토리(이 경우에는 /tmp 디렉토리)에 있습니다. ls 명령을 실행하여 xcart 디렉토리 파일을 나열하십시오. 다음 명령을 실행하여 xcart 디렉토리의 모든 컨텐츠를 웹 서버 문서 루트 경로에 복사하십시오. 또한 숨겨진 파일인 .htaccess를 webroot 경로에 복사했는지 확인하십시오.

cd /tmp
ls -al xcart/
cp -rf xcart/* /var/www/html/
cp xcart/.htaccess /var/www/html/

다음으로 Apache 런타임 사용자에게 웹 루트 경로에 대한 전체 쓰기 권한을 부여하기 위해 다음 명령을 실행합니다. ls 명령을 사용하여 /var/www/html/ 디렉토리에 있는 응용 프로그램의 설치된 파일에 대한 권한을 나열합니다.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

다음으로 브라우저를 열고 HTTPS 프로토콜을 통해 서버의 IP 주소 또는 도메인 이름 또는 서버 FQDN을 탐색하여 X-Cart 온라인 상점 설치 프로세스를 진행하십시오. 첫 번째 설치 화면에서 X-Cart 설치 프로그램은 아래 이미지와 같이 X-cart가 설치되지 않았다는 메시지를 표시합니다. 설치 프로세스를 시작하려면 여기를 클릭 링크를 클릭하십시오.

X-Cart의 다음 설치 화면에서 마법사는 아래 이미지와 같이 라이센스 계약을 표시합니다. 라이선스 계약 및 개인 정보 보호 정책에 동의함을 확인하고 다음 버튼을 눌러 라이선스에 동의하고 설치 프로세스를 계속합니다.

다음으로 이메일 주소를 기반으로 온라인 스토어 백엔드에 대한 관리자 계정을 만들고 아래 스크린샷과 같이 이 계정의 암호를 선택합니다. 설치 프로세스를 계속하려면 다음 버튼을 누르십시오.

다음 설치 화면에서 X-Cart 데이터베이스용으로 이전에 만든 MySQL 데이터베이스 주소, 이름 및 자격 증명을 추가합니다. 샘플 카탈로그 설치를 확인하고 고급 MySQL 설정 및 고급 서버 설정을 누르십시오.

고급 MySQL 설정에서 포트 값은 기본값인 3306으로, 접두사는 xc_로 둡니다. 고급 서버 설정까지 아래로 스크롤하고 웹 서버 이름 및 보안 웹 서버 이름에 서버 호스트 이름 또는 도메인 이름을 추가합니다. 스토어 기본 시간대를 선택하고 다음 버튼을 눌러 아래 이미지와 같이 이 설치 단계를 마칩니다.

아래 스크린샷과 같이 설치 프로그램이 디렉터리를 설정하고 필요한 모든 정보로 데이터베이스 스키마를 채우고 전체 설치 프로세스가 완료될 때까지 몇 분 정도 기다립니다.

설치가 완료되면 설치 프로그램은 온라인 상점을 관리하는 데 사용되는 X-Cart 백엔드 관리 패널과 상점의 X-cart 온라인 상점 프런트엔드(고객 영역)에 액세스하는 데 사용할 수 있는 두 개의 링크를 표시합니다. 고객에게 표시됩니다.

온라인 상점 프런트엔드를 방문하기 위해 고객 영역 링크를 클릭하면 아래 스크린샷과 같이 전자상거래 애플리케이션의 프런트엔드가 브라우저에 표시됩니다. HTTPS 프로토콜을 통해 서버 IP 주소 또는 도메인 이름으로 이동하여 스토어 프런트엔드를 방문할 수도 있습니다.

스토어 백엔드 관리자 패널에 로그인하기 전에 먼저 서버 콘솔로 돌아가서 다음 명령을 실행하여 X-cart 쇼핑 시스템 구성 파일을 보호하십시오.

chmod -R 755 /var/www/html/
chmod -R 755 /var/www/html/etc/
chmod -R 644 /var/www/html/config.php
chown -R root:root /var/www/html/etc/
chown root:root /var/www/html/config.php

X-Cart 온라인 상점을 관리하려면 관리자 영역(백오피스) 링크를 클릭하여 상점 관리 백엔드에 액세스하십시오. 아래 스크린샷과 같이 X-Cart 백엔드 패널에 로그인하기 위해 설치 프로세스 중에 구성된 자격 증명을 사용합니다.

/admin.php URL에 대한 HTTPS 프로토콜을 통해 서버 IP 주소 또는 도메인 이름으로 이동하여 X-Cart 관리 웹 패널을 방문할 수도 있습니다.

X-Cart 백엔드 관리자 패널에 로그인하면 화면에 알림이 표시되고 비즈니스용 평가판이 30일 후에 만료된다는 알림이 표시됩니다. 또한 업데이트 메뉴로 이동하여 아래 스크린샷과 같이 X-cart 최신 버전에 대해 출시된 모든 업데이트를 설치해야 합니다.

마지막으로 방문자가 X-Cart 프런트엔드 웹사이트를 탐색하고 서버와 클라이언트 브라우저 간의 트래픽을 암호화하기 위해 HTTPS 프로토콜을 통해 백엔드 인터페이스에 안전하게 액세스하도록 하려면 서버 터미널로 돌아가서 웹사이트에 있는 .htaccess 파일을 편집하십시오. 아래 명령을 실행하여 경로.

nano /var/www/html/.htaccess

그런 다음 .htaccess 파일을 편집하고 파일 맨 아래에서 기본 PHP 설정을 아래 구성으로 수정합니다. 자신의 서버 리소스와 일치하도록 PHP 설정을 변경할 수 있습니다.

.htaccess 파일 발췌:

# PHP 설정 수정

php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 500M
php_value post_max_size 500M

마지막으로 아래 규칙을 광고하여 도메인 트래픽을 HTTPS로 리디렉션하고 설치 및 시스템 디렉토리가 웹 요청을 통해 액세스되지 않도록 보호합니다.

# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

그게 다야! Debian 9.2에서 X-Cart 전자상거래 애플리케이션을 성공적으로 설치하고 구성했습니다. 그러나 Apache HTTP 서버는 자체 서명된 인증서를 사용하여 서버와 방문자의 브라우저 사이의 트래픽을 암호화하기 때문에 항상 경고 메시지가 생성되어 브라우저에 표시됩니다. 이 경고는 온라인 상점 비즈니스에 좋지 않습니다. 이 경우 신뢰할 수 있는 인증 기관에서 발급한 인증서를 구입하거나 Let’s Encrypt CA에서 무료 인증서 쌍을 받아야 합니다.

X-Cart 애플리케이션과 관련된 기타 사용자 정의 구성에 대해서는 다음 주소의 문서 페이지를 방문하십시오: https://kb.x-cart.com/en/index.html