PrestaShop 및 Apache를 사용한 전자 상거래 솔루션으로서의 OpenBSD

소개

이 튜토리얼은 PrestaShop 및 Apache를 사용한 전자 상거래 솔루션으로서 OpenBSD를 보여줍니다.

PrestaShop에는 OpenBSD의 내장 웹 서버 httpd에서 지원하지 않는 복잡한 URL 재 작성 요구 사항이 있기 때문에 Apache가 필요합니다. 이 학습서는 자체 서명 된 인증서를 사용합니다. 생산을 위해 확인 된 인증서를 사용하십시오.

준비 작업

doas비밀번호없이 사용할 수있는 일반 사용자를 임시로 만듭니다 . 이 액세스는 설정 후 제거됩니다.

user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf

OpenBSD 패키지 저장소를 추가하십시오.

echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl

매일 상태 및 보안 이메일을 주소로 전달하십시오.

echo '[email protected]' > /root/.forward

서버의 호스트 이름을 설정하십시오.

echo 'www.example.com' > /etc/myname
hostname www.example.com

서버의 FQDN 및 IP 주소를에 추가하십시오 /etc/hosts. Vultr IP 주소로
교체하십시오 192.0.2.1.

127.0.0.1    localhost
::1          localhost
192.0.2.1    www.example.com

PrestaShop 및 Apache에 필요한 패키지를 추가하십시오. 메시지가 표시되면 최신 버전을 선택하십시오.

doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip

테스트를 위해 자체 서명 된 SSL 인증서를 작성했습니다. 공통 이름을 서버의 FQDN으로 설정하십시오 (예 : www.example.com).

openssl req -x509 -new -nodes -newkey rsa:4096 -keyout /etc/ssl/private/example.com.key -out /etc/ssl/example.com.crt -days 3650 -sha256
chmod 0600 /etc/ssl/private/example.com.key

PrestaShop 다운로드 및 추출

최신 버전의 PrestaShop에 대한 URL을 찾아 다운로드하여 /tmp압축을 풉니 다 /var/www/htdocs/prestashop.

cd /tmp
wget <https://download.prestashop.com/download/releases/prestashop_1.7.6.4.zip>
unzip prestashop_1.7.6.4.zip -d /var/www/htdocs/prestashop
chown -R www:www /var/www/htdocs/prestashop

OpenBSD (pf) 방화벽 구성

ssh , wwwhttps를 제외한 모든 인바운드 트래픽을 차단하도록 방화벽을 구성 하십시오 .

의 백업 사본을 만듭니다 /etc/pf.conf.

cp /etc/pf.conf /etc/pf.conf.bak

/etc/pf.conf표시된대로 편집하십시오 .

set skip on lo

block in
pass out  

pass in on egress inet proto tcp to port {ssh, www, https} \
    flags S/SA keep state

방화벽 규칙을 테스트하고 활성화하십시오.

doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf

OpenSMTPD를 이메일 릴레이로 구성

/etc/mail/smtpd.conf파일을 백업하십시오 .

cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak

/etc/mail/smtpd.conf아래와 같이 편집하십시오 .

참고 : * 비밀에 대한 테이블 정의에는 메일 릴레이의 사용자 이름과 비밀번호가 있습니다. * 아웃 바운드 조치는 사용자 이름과 암호 레이블에서 조회 prestashop에서 /etc/mail/secrets이메일 서버를 통해 릴레이 이메일을.

    table aliases file:/etc/mail/aliases
    table secrets file:/etc/mail/secrets

    listen on lo0

    action "local_mail" mbox alias <aliases>
    action "outbound" relay host smtp+tls://[email protected]:587 \
        tls no-verify auth <secrets>

    match from local for local action "local_mail"
    match from local for any action "outbound"

창조하다 /etc/mail/secrets

이메일 주소 및 비밀번호를 이메일 서버에 사용하는 신임 정보로 바꾸십시오.

echo "prestashop [email protected]:password" > /etc/mail/secrets

보안 권한 설정 /etc/mail/secrets

chmod 0600 /etc/secrets

오류에 대한 구성 파일을 확인하고 smtpd 데몬을 다시 시작하십시오.

smtpd -n
rcctl restart smtpd

PHP 및 PHP-FPM 환경 구성

UNIX 도메인 소켓 대신 TCP 소켓에서 수신하도록 PHP-FPM 프로세스를 구성하십시오.

/etc/php-fpm.conf파일을 다음과 같이 변경 하십시오.

...
; If using a TCP port, never expose this to a public network.
;listen = /var/www/run/php-fpm.sock
listen = 127.0.0.1:9000

에서 PHP 환경을 추가로 변경하십시오 /etc/php-7.3.ini. 버전이 7.3 이상인 경우이 파일 이름이 약간 변경 될 수 있습니다. 이러한 변경 사항 :

  • 더 큰 파일을 업로드 할 수 있습니다.
  • chroot 환경을 비활성화하십시오.
  • sendmail을 통해 이메일을 보내도록 PHP를 구성하십시오.

    ; Default Value: not set
    ;chroot = /var/www
    ...
    ; Maximum allowed size for uploaded files.
    ; <http://php.net/upload-max-filesize>
    upload_max_filesize = 6M
    ...
    ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    ; <http://php.net/sendmail-path>
    ;sendmail_path =
    sendmail_path = /usr/sbin/sendmail -t -i
    ...
    ; Whether to allow the treatment of URLs (like <http://> or <ftp://)> as files.
    ; <http://php.net/allow-url-fopen>
    allow_url_fopen = On
    ...
    ; Maximum size of POST data that PHP will accept.
    ; Its value may be 0 to disable the limit. It is ignored if POST data reading
    ; is disabled through enable_post_data_reading.
    ; <http://php.net/post-max-size>
    post_max_size = 12M
    

    PHP 플러그인을 활성화하십시오.

    cp /etc/php-7.3.sample/* /etc/php-7.3/.

PHP-FPM 데몬을 활성화하고 시작하십시오. 버전이 더 최신 인 경우 데몬 이름이 약간 다를 수 있습니다.

rcctl enable php73_fpm
rcctl start php73_fpm

MariaDB 구성

MariaDB는 PrestaShop에 대한 데이터베이스 백엔드를 제공합니다. MariaDB는 기본 클래스에서 허용하는 것보다 더 많은 열린 파일이 필요하므로에 특수 클래스를 만듭니다 /etc/login.conf.

파일 맨 아래에 다음 줄을 추가하십시오.

mysqld:\
      :openfiles-cur=1024:\
      :openfiles-max=2048:\
      :tc=daemon:

MariaDB를 설치하십시오.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

MariaDB 보안을 구성하십시오.

 mysql_secure_installation

PrestaShop 데이터베이스를 작성하십시오. 강력한 비밀번호를 사용하십시오.

mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT

아파치 설정

백업 /etc/apache2/httpd2.conf

cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak

을 다음과 같이 변경 /etc/apache2/httpd2.conf하여, #사용 및 사용 안 함 모듈.

Listen 443
...
LoadModule mpm_event_module /usr/local/lib/apache2/mod_mpm_event.so
#LoadModule mpm_prefork_module /usr/local/lib/apache2/mod_mpm_prefork.so
LoadModule proxy_module /usr/local/lib/apache2/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/lib/apache2/mod_proxy_fcgi.so
LoadModule ssl_module /usr/local/lib/apache2/mod_ssl.so
LoadModule rewrite_module /usr/local/lib/apache2/mod_rewrite.so
...
ServerAdmin [email protected]
ServerName 192.0.2.1:80
  • /etc/apache2/httpd2.conf파일 맨 아래로 몇 가지 더 많은 변경이 발생합니다. #표시된 include 문에서 제거하십시오 .

  • 마지막으로 가상 호스팅 라인을 추가하십시오.

    # Server-pool management (MPM specific)
    Include /etc/apache2/extra/httpd-mpm.conf
    ...
    # Virtual Hosts
    IncludeOptional /etc/apache2/sites/*.conf
    

/etc/apache2/sites디렉토리를 작성하십시오 .

mkdir /etc/apache2/sites

/etc/apache2/sites/example.conf다음 정보로 작성 하십시오.

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin [email protected]
  DocumentRoot "/var/www/htdocs/prestashop"

  <Directory "/var/www/htdocs/prestashop">
    Options -Indexes +Multiviews +FollowSymLinks
    AllowOverride All
    <Limit GET POST OPTIONS>
    </Limit>
    Require all granted
  </Directory>

</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin [email protected]
  DocumentRoot "/var/www/htdocs/prestashop"

  <Directory "/var/www/htdocs/prestashop">
    Options -Indexes +Multiviews +FollowSymLinks
    AllowOverride All
    <Limit GET POST OPTIONS>
    </Limit>
    Require all granted
  </Directory>

  SSLEngine On
  SSLCertificateFile "/etc/ssl/example.com.crt"
  SSLCertificateKeyFile "/etc/ssl/private/example.com.key"
  SSLCipherSuite HIGH:!aNULL

</VirtualHost>

다음을 추가하여 Apache의 프록시 모듈을 구성하십시오. /etc/apache2/sites/example.conf

<IfModule proxy_module>
  <IfModule dir_module>
    DirectoryIndex index.php
  </IfModule>
  <FilesMatch "\.php$">
    SetHandler "proxy:fcgi://127.0.0.1:9000"
  </FilesMatch>
</IfModule>

구성을 테스트 한 다음 Apache를 활성화하고 시작하십시오.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Apache가 포트 80 및 443에서 청취 중인지 확인하십시오.

netstat -ln -finet

Active Internet connections (only servers)
Proto   Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp          0      0  *.443                  *.*                    LISTEN
tcp          0      0  127.0.0.1.25           *.*                    LISTEN
tcp          0      0  *.22                   *.*                    LISTEN
tcp          0      0  *.80                   *.*                    LISTEN
tcp          0      0  127.0.0.1.3306         *.*                    LISTEN
tcp          0      0  127.0.0.1.9000         *.*                    LISTEN

PrestaShop 설치

에서 웹 사이트를 탐색하십시오 http://www.example.com. PrestaShop 설치 마법사가 시작됩니다.

설치를 완료하면 상점 첫 화면 및 관리 링크를 기록하고 디렉토리를 삭제하십시오 /var/www/htdocs/prestashop/install.

SSL을 활성화하십시오.

  • 상점 매개 변수를 클릭하십시오.
  • 일반을 클릭하십시오
  • 상점의 모든 부분에 SSL 사용

관리 비밀번호를 변경하십시오.

  • 고급 매개 변수를 클릭하십시오.
  • 클릭
  • 비밀번호를 변경하십시오.

마지막 작업

상점 및 해당 데이터베이스를 백업하십시오.

cd /var/www/htdocs
doas tar cvfz /home/auser/prestashop.tar.gz prestashop/
doas mysqldump -u prestashop -p prestashop | gzip -4 > /home/auser/prestashop.sql.tar.gz
doas chown auser:auser /home/auser/prestashop*

doas.conf파일 을 다시 작성하여 사용자 계정에 대한 doas 액세스를 제거하십시오 .

echo 'permit keepenv :wheel' > /etc/doas.conf


Leave a Comment

FreeBSD 12에 Neos CMS를 설치하는 방법

FreeBSD 12에 Neos CMS를 설치하는 방법

다른 시스템을 사용하십니까? Neos는 CMS와 응용 프로그램 프레임 워크가 핵심 인 콘텐츠 응용 프로그램 플랫폼입니다. 이 가이드는 설치하는 방법을 보여줍니다

전체 디스크 암호화를 사용하여 OpenBSD 5.6 설정

전체 디스크 암호화를 사용하여 OpenBSD 5.6 설정

이 튜토리얼에서는 Vultr VPS에서 완전히 암호화 된 디스크로 OpenBSD 5.6을 설정하는 방법을 보여줍니다. 암호화 부분에 대한 참고 사항 : 대부분의 데이터 센터

FreeBSD 12에서 osTicket을 설치하는 방법

FreeBSD 12에서 osTicket을 설치하는 방법

다른 시스템을 사용하십니까? osTicket은 오픈 소스 고객 지원 티켓팅 시스템입니다. osTicket 소스 코드는 Github에서 공개적으로 호스팅됩니다. 이 튜토리얼에서

OpenBSD 6.2에 WordPress 설치

OpenBSD 6.2에 WordPress 설치

소개 WordPress는 인터넷에서 지배적 인 컨텐츠 관리 시스템입니다. 블로그에서 동적 컨텐츠가있는 복잡한 웹 사이트에 이르기까지 모든 것을 지원합니다.

FreeBSD 11 FAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

FreeBSD 11 FAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

다른 시스템을 사용하십니까? ProcessWire CMS 3.0은 간단하고 유연하며 강력하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)입니다. ProcessWire CMS 3.

OS 선택 : CentOS, Ubuntu, Debian, FreeBSD, CoreOS 또는 Windows Server

OS 선택 : CentOS, Ubuntu, Debian, FreeBSD, CoreOS 또는 Windows Server

이 기사는 Vultr에서 템플릿으로 제공되는 서버 운영 체제에 대한 간략한 개요를 제공합니다. CentOS CentOS는 RHEL의 공개 소스 버전입니다 (Re

FreeBSD 12에 X-Cart 5를 설치하는 방법

FreeBSD 12에 X-Cart 5를 설치하는 방법

다른 시스템을 사용하십니까? X-Cart는 다양한 기능과 통합 기능을 갖춘 매우 유연한 오픈 소스 전자 상거래 플랫폼입니다. X-Cart 소스 코드는 호스트입니다

FreeBSD 11에 PyroCMS를 설치하는 방법

FreeBSD 11에 PyroCMS를 설치하는 방법

다른 시스템을 사용하십니까? PyroCMS는 PHP로 작성된 오픈 소스 CMS입니다. PyroCMS 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드에서는 입구를 잘 살펴보십시오.

FreeBSD 11로 자신 만의 메일 서버 만들기

FreeBSD 11로 자신 만의 메일 서버 만들기

자신의 이메일 서버를 운영하는 것은 매우 보람이있을 수 있습니다. 귀하는 귀하의 데이터를 담당합니다. 또한 배송 옵션을보다 유연하게 사용할 수 있습니다. 하나

FreeBSD 10에서 스왑 파일 생성

FreeBSD 10에서 스왑 파일 생성

기본적으로 Vultr FreeBSD 서버는 스왑 공간을 포함하도록 구성되어 있지 않습니다. 일회용 클라우드 인스턴스에 대한 의도라면

FreeBSD 10에서 iRedMail 설정

FreeBSD 10에서 iRedMail 설정

이 튜토리얼에서는 FreeBSD 10을 새로 설치할 때 그룹웨어 iRedMail을 설치하는 방법을 보여줍니다. 최소 1 기가 바이트 이상의 서버를 사용해야합니다

OpenBSD 6에서 MariaDB 구성

OpenBSD 6에서 MariaDB 구성

이 기사에서는 OpenBSD 6에 MariaDB를 설치하고 chroot 된 웹 서버 (Apache 또는 Nginx)에 액세스 할 수 있도록 구성하는 방법을 보여줍니다. 당신은 Als

FreeBSD 11 FAMP VPS에 Redaxscript 3.2 CMS를 설치하는 방법

FreeBSD 11 FAMP VPS에 Redaxscript 3.2 CMS를 설치하는 방법

다른 시스템을 사용하십니까? Redaxscript 3.2 CMS는 현대적이고 초경량이며 무료이며 공개 소스 인 CMS (로켓 관리 시스템)

FreeBSD 12에서 Craft CMS를 설치하는 방법

FreeBSD 12에서 Craft CMS를 설치하는 방법

다른 시스템을 사용하십니까? 소개 Craft CMS는 PHP로 작성된 오픈 소스 CMS입니다. Craft CMS 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 요를 보여줍니다

FreeBSD 11에서 Nginx와 함께 Varnish 5 설치

FreeBSD 11에서 Nginx와 함께 Varnish 5 설치

Varnish는 웹 서버의 컨텐츠를 저장하는 오픈 소스 캐시 서버입니다. Apache 또는 Nginx와 같은 웹 서버 앞에 설치됩니다. Cachin

FreeBSD / TrueOS에서 ZFS 저장소 풀 크기 조정

FreeBSD / TrueOS에서 ZFS 저장소 풀 크기 조정

Vultr에서 VPS 인스턴스를 업그레이드하면 Linux 파일 시스템의 크기가 자동으로 조정됩니다. 고급 ZFS 파일 시스템으로 FreeBSD를 실행할 때 일부 수동 wor

FreeBSD 11 FAMP VPS에 TextPattern CMS 4.6.2를 설치하는 방법

FreeBSD 11 FAMP VPS에 TextPattern CMS 4.6.2를 설치하는 방법

다른 시스템을 사용하십니까? TextPattern CMS 4.6.2는 간단하고 유연하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)로 웹 디자이너는

FreeBSD 12에 eSpeak 설치

FreeBSD 12에 eSpeak 설치

다른 시스템을 사용하십니까? ESpeak는 TTS (text-to-speech) 오디오 파일을 생성 할 수 있습니다. 토리노를 직접 만드는 등 여러 가지 이유로 유용 할 수 있습니다.

Vultr Cloud 서버에 pfSense 설치

Vultr Cloud 서버에 pfSense 설치

pfSense는 다양한 기능을 네트워크에 추가하려는 시스템 관리자에게 이상적인 도구입니다. 주로 오픈 소스입니다

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구