OpenBSD ako riešenie elektronického obchodu s PrestaShop a Apache

Úvod

Tento tutoriál ukazuje OpenBSD ako riešenie elektronického obchodu pomocou PrestaShop a Apache.

Apache je potrebný, pretože PrestaShop má zložité požiadavky na prepisovanie URL, ktoré nepodporuje vstavaný webový server OpenBSD, httpd. Tento tutoriál používa certifikáty s vlastným podpisom. Na výrobu použite overený certifikát.

Prípravné úlohy

Dočasne vytvorte bežného používateľa, ktorý môže používať doasbez hesla. Tento prístup bude po nastavení odstránený.

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

Pridajte úložisko balíkov OpenBSD.

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

Preposielajte denné stavové a bezpečnostné e-maily na vašu adresu.

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

Nastavte názov hostiteľa servera.

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

Pridajte FQDN a IP adresu vášho servera do /etc/hosts.
Nahraďte 192.0.2.1vašou IP adresou Vultr.

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

Pridajte požadované balíčky pre PrestaShop a Apache. Po zobrazení výzvy vyberte najnovšie verzie.

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

Na testovanie bol vytvorený certifikát SSL s vlastným podpisom. Nastavte Common Name na FQDN vášho servera, napr. 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

Stiahnite si a extrahujte PrestaShop

Nájdite adresu URL najnovšej verzie PrestaShopu , stiahnite si ju /tmpa rozbaľte do /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

Nakonfigurujte OpenBSD (pf) Firewall

Nakonfigurujte bránu firewall tak, aby blokovala všetku prichádzajúcu komunikáciu okrem ssh , www a https .

Vytvorte záložnú kópiu súboru /etc/pf.conf.

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

Upravte /etc/pf.confpodľa obrázka.

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

Otestujte a aktivujte pravidlá brány firewall.

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

Nakonfigurujte OpenSMTPD ako e-mailové relé

Zálohujte svoj /etc/mail/smtpd.confsúbor.

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

Upravte /etc/mail/smtpd.confpodľa obrázka nižšie.

Poznámky: * Definícia tabuľky pre tajné informácie obsahuje používateľské meno a heslo pre prenos pošty. * Odchádzajúce akcia vyhľadá užívateľské meno a heslo, pod značkou prestashopv /etc/mail/secretsa prenesie emailovú prostredníctvom svojho e-mailového servera.

    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"

Vytvorte /etc/mail/secrets

Nahraďte e-mailovú adresu a heslo povereniami, ktoré používate pre svoj e-mailový server.

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

Nastavte povolenia na zabezpečenie /etc/mail/secrets

chmod 0600 /etc/secrets

Skontrolujte, či konfiguračný súbor neobsahuje chyby a reštartujte démona smtpd.

smtpd -n
rcctl restart smtpd

Nakonfigurujte prostredie PHP a PHP-FPM

Nakonfigurujte proces PHP-FPM tak, aby počúval na sokete TCP namiesto soketu domény UNIX.

Vykonajte pre /etc/php-fpm.confsúbor nasledujúcu zmenu .

...
; 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

Make some additional changes to the PHP environment in /etc/php-7.3.ini. This file name may change slightly if the version is newer than 7.3. These changes:

  • Allow for larger files to be uploaded.
  • Disable the chrooted environment.
  • Configure PHP to send email via sendmail.

    ; 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
    

    Enable the PHP plugins.

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

Enable and start the PHP-FPM daemon. The daemon name might be slightly different if the version is newer.

rcctl enable php73_fpm
rcctl start php73_fpm

Configuring MariaDB

MariaDB provides the database backend for PrestaShop. Because MariaDB needs more open files than the default class allows, create a special class in /etc/login.conf.

At the bottom of the file, add the following lines:

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

Install MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Configure MariaDB security.

 mysql_secure_installation

Create the PrestaShop database. Use a strong password.

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

Configuring Apache

Back up /etc/apache2/httpd2.conf

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

Vykonajte nasledujúce zmeny v /etc/apache2/httpd2.conf, pomocou #na aktiváciu a deaktiváciu modulov.

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
  • V /etc/apache2/httpd2.confspodnej časti súboru nastáva niekoľko ďalších zmien . Odstráňte #z označených príkazov na zahrnutie.

  • Ako posledné pridajte riadky virtuálneho hosťovania.

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

Vytvorte /etc/apache2/sitesadresár.

mkdir /etc/apache2/sites

Vytvorte /etc/apache2/sites/example.confs nasledujúcimi informáciami:

<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>

Nakonfigurujte proxy modul Apache pridaním nasledujúceho do /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>

Otestujte konfiguráciu, potom povoľte a spustite Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Uistite sa, že Apache počúva na portoch 80 a 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

Nainštalujte si PrestaShop

Prejdite na svoj web na adrese http://www.example.com. Spustí sa sprievodca inštaláciou PrestaShopu.

Po dokončení inštalácie si všimnite predné a administratívne prepojenia a odstráňte adresár /var/www/htdocs/prestashop/install.

Povoliť SSL.

  • Kliknite na položku Parametre obchodu
  • Kliknite na položku Všeobecné
  • Povoľte SSL pre všetky časti vášho obchodu

Zmeňte heslo správcu.

  • Kliknite na položku Rozšírené parametre
  • Kliknite na položku Tím
  • Zmeň si heslo.

Niektoré záverečné úlohy

Zálohujte svoj obchod a jeho databázu:

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*

Odstráňte prístup doas pre svoj používateľský účet opätovným vytvorením doas.confsúboru.

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

How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS

How to Install Tiny Tiny RSS Reader on a FreeBSD 11 FAMP VPS

Using a Different System? Tiny Tiny RSS Reader is a free and open source self-hosted web-based news feed (RSS/Atom) reader and aggregator, designed to allo

Ako nainštalovať Wiki.js na FreeBSD 11

Ako nainštalovať Wiki.js na FreeBSD 11

Používate iný systém? Wiki.js je bezplatná a open source moderná wiki aplikácia postavená na Node.js, MongoDB, Git a Markdown. Zdrojový kód Wiki.js je verejný

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Pagekit 1.0 CMS je krásny, modulárny, rozšíriteľný a ľahký, bezplatný a open source systém na správu obsahu (CMS) s

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. To i

Nastavenie OpenBSD 5.5 64-bit

Nastavenie OpenBSD 5.5 64-bit

Tento článok vás prevedie nastavením OpenBSD 5.5 (64-bit) na KVM s Vultr VPS. Krok 1. Prihláste sa do ovládacieho panela Vultr. Krok 2. Kliknite na DEPLOY

Ako nainštalovať osTicket na FreeBSD 12

Ako nainštalovať osTicket na FreeBSD 12

Používate iný systém? osTicket je open-source systém podpory zákazníkov. Zdrojový kód osTicket je verejne hosťovaný na Github. V tomto návode

Ako nainštalovať Flarum Forum na FreeBSD 12

Ako nainštalovať Flarum Forum na FreeBSD 12

Používate iný systém? Flarum je bezplatný a otvorený softvér fóra novej generácie, vďaka ktorému je online diskusia zábavná. Zdrojový kód Flarum je hostovaný o

Ako povoliť TLS 1.3 v Nginx na FreeBSD 12

Ako povoliť TLS 1.3 v Nginx na FreeBSD 12

Používate iný systém? TLS 1.3 je verzia protokolu Transport Layer Security (TLS), ktorý bol publikovaný v roku 2018 ako navrhovaný štandard v RFC 8446.

Nainštalujte WordPress na OpenBSD 6.2

Nainštalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantný redakčný systém na internete. Poháňa všetko od blogov až po zložité webové stránky s dynamickým obsahom

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Subrion 4.1 CMS je výkonný a flexibilný open source systém na správu obsahu (CMS), ktorý prináša intuitívny a prehľadný obsah

Ako nakonfigurovať DJBDNS na FreeBSD

Ako nakonfigurovať DJBDNS na FreeBSD

Tento tutoriál vám ukáže, ako nakonfigurovať službu DNS, ktorá sa ľahko udržiava, ľahko konfiguruje a je vo všeobecnosti bezpečnejšia ako klasický BIN

Ako nainštalovať zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Ako nainštalovať zásobník Nginx, MySQL a PHP (FEMP) na FreeBSD 12.0

Zásobník FEMP, ktorý je porovnateľný so zásobníkom LEMP v systéme Linux, je kolekcia softvéru s otvoreným zdrojovým kódom, ktorý sa zvyčajne inštaluje spoločne, aby umožnil FreeBS.

Inštalácia MongoDB na FreeBSD 10

Inštalácia MongoDB na FreeBSD 10

MongoDB je prvotriedna databáza NoSQL, ktorá sa často používa v novších webových aplikáciách. Poskytuje vysokovýkonné dotazy, zdieľanie a replikáciu

Ako nainštalovať Monicu na FreeBSD 12

Ako nainštalovať Monicu na FreeBSD 12

Používate iný systém? Monica je open source systém riadenia osobných vzťahov. Predstavte si to ako CRM (populárny nástroj používaný predajnými tímami v th

OpenBSD ako riešenie elektronického obchodu s PrestaShop a Apache

OpenBSD ako riešenie elektronického obchodu s PrestaShop a Apache

Úvod Tento tutoriál demonštruje OpenBSD ako riešenie pre elektronický obchod využívajúce PrestaShop a Apache. Vyžaduje sa Apache, pretože PrestaShop má zložité UR

Inštalácia Fork CMS na FreeBSD 12

Inštalácia Fork CMS na FreeBSD 12

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Používate iný systém? Directus 6.4 CMS je výkonný a flexibilný, bezplatný a open source systém správy obsahu bez hlavy (CMS), ktorý poskytuje vývojárom

Zvýšenie bezpečnosti pre FreeBSD pomocou IPFW a SSHGuard

Zvýšenie bezpečnosti pre FreeBSD pomocou IPFW a SSHGuard

Servery VPS sú často cieľom útočníkov. Bežný typ útoku sa objavuje v systémových protokoloch ako stovky neoprávnených pokusov o prihlásenie cez ssh. Nastavenie

Nastavte httpd v OpenBSD

Nastavte httpd v OpenBSD

Úvod OpenBSD 5.6 predstavilo nového démona s názvom httpd, ktorý podporuje CGI (cez FastCGI) a TLS. Na inštaláciu nového http nie je potrebná žiadna ďalšia práca

Nastavte iRedMail na FreeBSD 10

Nastavte iRedMail na FreeBSD 10

Tento tutoriál vám ukáže, ako nainštalovať groupware iRedMail na novú inštaláciu FreeBSD 10. Mali by ste použiť server s aspoň jedným gigabajtom o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac