OpenBSD kot rešitev za e-trgovino s PrestaShop in Apache

Uvod

Ta vadnica prikazuje OpenBSD kot rešitev za e-trgovino z uporabo PrestaShop in Apache.

Apache je potreben, ker ima PrestaShop zapletene zahteve za prepisovanje URL-jev, ki jih vgrajeni spletni strežnik OpenBSD, httpd, ne podpira. Ta vadnica uporablja samopodpisana potrdila. Za proizvodnjo uporabite preverjen certifikat.

Naloge za pripravo

Začasno ustvarite običajnega uporabnika, ki mu je dovoljena uporaba doasbrez gesla. Ta dostop bo po nastavitvi odstranjen.

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

Dodajte skladišče paketov OpenBSD.

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

Posredujte dnevna e-poštna sporočila o stanju in varnosti na svoj naslov.

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

Nastavite ime gostitelja strežnika.

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

Dodajte FQDN in naslov IP vašega strežnika v /etc/hosts.
Zamenjajte 192.0.2.1s svojim naslovom IP Vultr.

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

Dodajte zahtevane pakete za PrestaShop in Apache. Ko ste pozvani, izberite najnovejše različice.

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

Ustvaril samopodpisano potrdilo SSL za testiranje. Nastavite Common Name na FQDN vašega strežnika, npr. 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

Prenesite in ekstrahirajte PrestaShop

Poiščite URL za najnovejšo različico PrestaShop , prenesite /tmpin izvlecite v /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

Konfigurirajte požarni zid (pf) OpenBSD

Konfigurirajte požarni zid tako, da blokira ves vhodni promet razen ssh , www in https .

Naredite varnostno kopijo /etc/pf.conf.

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

Uredite, /etc/pf.confkot je prikazano.

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

Preizkusite in aktivirajte pravila požarnega zidu.

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

Konfigurirajte OpenSMTPD kot e-poštni rele

Varnostno kopirajte svojo /etc/mail/smtpd.confdatoteko.

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

Uredite, /etc/mail/smtpd.confkot je prikazano spodaj.

Opombe: * Definicija tabele za skrivnosti vsebuje uporabniško ime in geslo za poštni rele. * Outbound ukrep pogleda uporabniško ime in geslo, pod nalepko prestashopv /etc/mail/secretsin releje na e-poštni prek e-poštnega strežnika.

    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"

Ustvari /etc/mail/secrets

Zamenjajte e-poštni naslov in geslo s poverilnicami, ki jih uporabljate za svoj e-poštni strežnik.

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

Nastavite dovoljenja za zaščito /etc/mail/secrets

chmod 0600 /etc/secrets

Preglejte konfiguracijsko datoteko za napake in znova zaženite demon smtpd.

smtpd -n
rcctl restart smtpd

Konfigurirajte okolje PHP in PHP-FPM

Konfigurirajte proces PHP-FPM za poslušanje v vtičnici TCP namesto vtičnice domene UNIX.

Za /etc/php-fpm.confdatoteko naredite naslednjo spremembo .

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

Izvedite nekaj dodatnih sprememb v okolju PHP v /etc/php-7.3.ini. To ime datoteke se lahko nekoliko spremeni, če je različica novejša od 7.3. Te spremembe:

  • Dovoli nalaganje večjih datotek.
  • Onemogočite chrooted okolje.
  • Konfigurirajte PHP za pošiljanje e-pošte prek sendmaila.

    ; 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
    

    Omogočite vtičnike PHP.

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

Omogočite in zaženite demon PHP-FPM. Ime demona se lahko nekoliko razlikuje, če je različica novejša.

rcctl enable php73_fpm
rcctl start php73_fpm

Konfiguriranje MariaDB

MariaDB zagotavlja ozadje baze podatkov za PrestaShop. Ker MariaDB potrebuje več odprtih datotek, kot omogoča privzeti razred, ustvarite poseben razred v /etc/login.conf.

Na dnu datoteke dodajte naslednje vrstice:

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

Namestite MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Konfigurirajte varnost MariaDB.

 mysql_secure_installation

Ustvarite bazo podatkov PrestaShop. Uporabite močno geslo.

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

Konfiguriranje Apache

Rezerva /etc/apache2/httpd2.conf

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

Izvedite naslednje spremembe v /etc/apache2/httpd2.conf, z uporabo #za omogočanje in onemogočanje 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
  • Na /etc/apache2/httpd2.confdnu datoteke se zgodi še več sprememb . Odstranite #iz navedenih izjav o vključevanju.

  • Nazadnje dodajte vrstice za virtualno gostovanje.

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

Ustvarite /etc/apache2/sitesimenik.

mkdir /etc/apache2/sites

Ustvarite /etc/apache2/sites/example.confz naslednjimi informacijami:

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

Konfigurirajte proxy modul Apache tako, da dodate naslednje /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>

Preizkusite konfiguracijo, nato omogočite in zaženite Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Prepričajte se, da Apache posluša na vratih 80 in 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

Namestite PrestaShop

Prebrskajte svoje spletno mesto na naslovu http://www.example.com. Zagnal se bo čarovnik za namestitev PrestaShop.

Ko dokončate namestitev, upoštevajte naslovnice trgovine in administrativne povezave ter izbrišite imenik /var/www/htdocs/prestashop/install.

Omogoči SSL.

  • Kliknite Shop Parameters
  • Kliknite Splošno
  • Omogočite SSL za vse dele vaše trgovine

Spremenite svoje skrbniško geslo.

  • Kliknite Napredni parametri
  • Kliknite Ekipa
  • Zamenjajte geslo.

Nekaj ​​zaključnih nalog

Varnostno kopirajte svojo trgovino in njeno bazo podatkov:

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*

Odstranite dostop doas za vaš uporabniški račun tako, da znova ustvarite doas.confdatoteko.

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

Kako namestiti Wiki.js na FreeBSD 11

Kako namestiti Wiki.js na FreeBSD 11

Uporaba drugega sistema? Wiki.js je brezplačna odprtokodna sodobna wiki aplikacija, zgrajena na Node.js, MongoDB, Git in Markdown. Izvorna koda Wiki.js je javna

Kako namestiti Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Kako namestiti Pagekit 1.0 CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? Pagekit 1.0 CMS je lep, modularen, razširljiv in lahek, brezplačen in odprtokoden sistem za upravljanje vsebine (CMS) z

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To i

Namestitev OpenBSD 5.5 64-bit

Namestitev OpenBSD 5.5 64-bit

Ta članek vas vodi skozi nastavitev OpenBSD 5.5 (64-bit) na KVM z Vultr VPS. 1. korak. Prijavite se v nadzorno ploščo Vultr. 2. korak. Kliknite RAZPOSTAVI

Kako namestiti osTicket na FreeBSD 12

Kako namestiti osTicket na FreeBSD 12

Uporaba drugega sistema? osTicket je odprtokodni sistem za izdajo vstopnic za podporo strankam. Izvorna koda osTicket je javno gostovana na Githubu. V tej vadnici

Kako namestiti Flarum Forum na FreeBSD 12

Kako namestiti Flarum Forum na FreeBSD 12

Uporaba drugega sistema? Flarum je brezplačna in odprtokodna programska oprema za forume naslednje generacije, ki naredi spletno razpravo zabavno. Izvorna koda Flarum gostuje o

Kako omogočiti TLS 1.3 v Nginxu na FreeBSD 12

Kako omogočiti TLS 1.3 v Nginxu na FreeBSD 12

Uporaba drugega sistema? TLS 1.3 je različica protokola Transport Layer Security (TLS), ki je bil objavljen leta 2018 kot predlagani standard v RFC 8446

Namestite WordPress na OpenBSD 6.2

Namestite WordPress na OpenBSD 6.2

Uvod WordPress je prevladujoči sistem za upravljanje vsebin na internetu. Poganja vse, od blogov do zapletenih spletnih mest z dinamično vsebino

Kako namestiti Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Kako namestiti Subrion 4.1 CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? Subrion 4.1 CMS je zmogljiv in prilagodljiv odprtokodni sistem za upravljanje vsebine (CMS), ki prinaša intuitivno in jasno vsebino.

Kako konfigurirati DJBDNS na FreeBSD

Kako konfigurirati DJBDNS na FreeBSD

Ta vadnica vam bo pokazala, kako konfigurirati storitev DNS, ki je enostavna za vzdrževanje, enostavna za konfiguriranje in ki je na splošno bolj varna kot klasični BIN

Kako namestiti sklad Nginx, MySQL in PHP (FEMP) na FreeBSD 12.0

Kako namestiti sklad Nginx, MySQL in PHP (FEMP) na FreeBSD 12.0

Sklad FEMP, ki je primerljiv s skladom LEMP v Linuxu, je zbirka odprtokodne programske opreme, ki je običajno nameščena skupaj, da omogoči FreeBS

Namestitev MongoDB na FreeBSD 10

Namestitev MongoDB na FreeBSD 10

MongoDB je vrhunska baza podatkov NoSQL, ki se pogosto uporablja v novejših spletnih aplikacijah. Zagotavlja visoko zmogljive poizvedbe, razdeljevanje in podvajanje

Kako namestiti Monico na FreeBSD 12

Kako namestiti Monico na FreeBSD 12

Uporaba drugega sistema? Monica je odprtokodni sistem za upravljanje osebnih odnosov. Pomislite na to kot na CRM (priljubljeno orodje, ki ga uporabljajo prodajne ekipe v th

OpenBSD kot rešitev za e-trgovino s PrestaShop in Apache

OpenBSD kot rešitev za e-trgovino s PrestaShop in Apache

Uvod Ta vadnica prikazuje OpenBSD kot rešitev za e-trgovino z uporabo PrestaShop in Apache. Apache je potreben, ker ima PrestaShop zapleten UR

Namestitev Fork CMS na FreeBSD 12

Namestitev Fork CMS na FreeBSD 12

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Kako namestiti Directus 6.4 CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? Directus 6.4 CMS je zmogljiv in prilagodljiv, brezplačen in odprtokoden Headless Content Management System (CMS), ki omogoča razvijalcem

Izboljšanje varnosti za FreeBSD z uporabo IPFW in SSHGuard

Izboljšanje varnosti za FreeBSD z uporabo IPFW in SSHGuard

VPS strežniki so pogosto tarča vsiljivcev. Pogosta vrsta napada se prikaže v sistemskih dnevnikih kot na stotine nepooblaščenih poskusov prijave ssh. Postavitev

Nastavite httpd v OpenBSD

Nastavite httpd v OpenBSD

Uvod OpenBSD 5.6 je predstavil nov demon, imenovan httpd, ki podpira CGI (prek FastCGI) in TLS. Za namestitev novega http ni potrebno dodatno delo

Nastavite iRedMail na FreeBSD 10

Nastavite iRedMail na FreeBSD 10

Ta vadnica vam bo pokazala, kako namestiti skupinsko programsko opremo iRedMail na novo namestitev FreeBSD 10. Uporabiti morate strežnik z vsaj enim gigabajtom o

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več