OpenBSD som en e-handelsløsning med PrestaShop og Apache

Introduksjon

Denne opplæringen demonstrerer OpenBSD som en e-handelsløsning som bruker PrestaShop og Apache.

Apache er nødvendig fordi PrestaShop har komplekse URL-omskrivingskrav som ikke støttes av OpenBSDs innebygde webserver, httpd. Denne opplæringen bruker selvsignerte sertifikater. Vennligst bruk et bekreftet sertifikat for produksjon.

Forberedelsesoppgaver

Opprett midlertidig en vanlig bruker som har tillatelse til å bruke doasuten passord. Denne tilgangen vil bli fjernet etter oppsett.

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

Legg til OpenBSD-pakkelageret.

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

Videresend daglig status og sikkerhetse-poster til adressen din.

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

Angi vertsnavnet til serveren.

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

Legg til serverens FQDN og IP-adresse til /etc/hosts.
Erstatt 192.0.2.1med din Vultr IP-adresse.

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

Legg til de nødvendige pakkene for PrestaShop og Apache. Velg de nyeste versjonene når du blir bedt om det.

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

Laget et selvsignert SSL-sertifikat for testing. Sett Common Name til FQDN til serveren din, f.eks. 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

Last ned og pakk ut PrestaShop

Finn URL-en til den nyeste versjonen av PrestaShop , last ned til /tmpog pakk ut til /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

Konfigurer OpenBSDs (pf) brannmur

Konfigurer brannmuren til å blokkere all innkommende trafikk bortsett fra ssh , www og https .

Lag en sikkerhetskopi av /etc/pf.conf.

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

Rediger /etc/pf.confsom vist.

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

Test og aktiver brannmurreglene.

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

Konfigurer OpenSMTPD som et e-postrelé

Sikkerhetskopier /etc/mail/smtpd.conffilen din .

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

Rediger /etc/mail/smtpd.confsom vist nedenfor.

Merknader: * Tabelldefinisjonen for hemmeligheter inneholder brukernavnet og passordet for e-postreléet. * Den utgående handlingen slår opp brukernavnet og passordet under etiketten prestashopi /etc/mail/secretsog videresender e-posten via e-postserveren din.

    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"

Skape /etc/mail/secrets

Erstatt e-postadressen og passordet med legitimasjonen du bruker for e-postserveren.

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

Angi tillatelser for å sikre /etc/mail/secrets

chmod 0600 /etc/secrets

Test konfigurasjonsfilen for feil og start smtpd-demonen på nytt.

smtpd -n
rcctl restart smtpd

Konfigurer PHP- og PHP-FPM-miljøet

Konfigurer PHP-FPM-prosessen til å lytte på en TCP-socket i stedet for en UNIX-domenekontakt.

Gjør følgende endring nedenfor for /etc/php-fpm.conffilen.

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

Gjør noen ekstra endringer i PHP-miljøet i /etc/php-7.3.ini. Dette filnavnet kan endres litt hvis versjonen er nyere enn 7.3. Disse endringene:

  • Tillat at større filer kan lastes opp.
  • Deaktiver det chrootede miljøet.
  • Konfigurer PHP til å sende e-post 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
    

    Aktiver PHP-plugins.

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

Aktiver og start PHP-FPM-demonen. Daemonnavnet kan være litt annerledes hvis versjonen er nyere.

rcctl enable php73_fpm
rcctl start php73_fpm

Konfigurerer MariaDB

MariaDB leverer databasebackend for PrestaShop. Fordi MariaDB trenger flere åpne filer enn standardklassen tillater, kan du opprette en spesiell klasse i /etc/login.conf.

Legg til følgende linjer nederst i filen:

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

Installer MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Konfigurer MariaDB-sikkerhet.

 mysql_secure_installation

Opprett PrestaShop-databasen. Bruk et sterkt passord.

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

Konfigurerer Apache

Sikkerhetskopiere /etc/apache2/httpd2.conf

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

Gjør følgende endringer i /etc/apache2/httpd2.conf, bruk for #å aktivere og deaktivere moduler.

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
  • Det /etc/apache2/httpd2.confskjer flere endringer i bunnen av filen. Fjern #fra inkluderingsutsagnene som er angitt.

  • Legg til Virtual Hosting-linjene sist.

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

Opprett /etc/apache2/siteskatalogen.

mkdir /etc/apache2/sites

Opprett /etc/apache2/sites/example.confmed følgende informasjon:

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

Konfigurer Apaches proxy-modul ved å legge til følgende i /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>

Test konfigurasjonen, aktiver og start Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Sørg for at Apache lytter på portene 80 og 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

Installer PrestaShop

Bla til nettstedet ditt på http://www.example.com. Installasjonsveiviseren for PrestaShop vil starte.

Når du har fullført installasjonen, legg merke til butikkfronten og administrative koblinger og slett katalogen /var/www/htdocs/prestashop/install.

Aktiver SSL.

  • Klikk på Handleparametere
  • Klikk Generelt
  • Aktiver SSL for alle deler av butikken din

Endre ditt administrative passord.

  • Klikk på Avanserte parametre
  • Klikk på Team
  • Bytt passord.

Noen siste oppgaver

Sikkerhetskopier butikken og dens database:

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*

Fjern doas-tilgang for brukerkontoen din ved å gjenskape doas.conffilen.

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

Hvordan installere Tiny Tiny RSS-leser på en FreeBSD 11 FAMP VPS

Hvordan installere Tiny Tiny RSS-leser på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Tiny Tiny RSS Reader er en gratis og åpen kildekode selvhostet nettbasert nyhetsfeed (RSS/Atom) leser og aggregator, designet for å allo

Hvordan installere Wiki.js på FreeBSD 11

Hvordan installere Wiki.js på FreeBSD 11

Bruker du et annet system? Wiki.js er en gratis og åpen kildekode, moderne wiki-app bygget på Node.js, MongoDB, Git og Markdown. Wiki.js kildekode er offentlig

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Pagekit 1.0 CMS er et vakkert, modulært, utvidbart og lett, gratis og åpen kildekode Content Management System (CMS) med

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Sett opp OpenBSD 5.5 64-bit

Sett opp OpenBSD 5.5 64-bit

Denne artikkelen leder deg gjennom å sette opp OpenBSD 5.5 (64-bit) på KVM med en Vultr VPS. Trinn 1. Logg på Vultr-kontrollpanelet. Trinn 2. Klikk på DEPLOY

Hvordan installere osTicket på FreeBSD 12

Hvordan installere osTicket på FreeBSD 12

Bruker du et annet system? osTicket er et åpen kildekode kundestøtte billettsystem. osTicket-kildekoden er offentlig vert på Github. I denne opplæringen

Hvordan installere Flarum Forum på FreeBSD 12

Hvordan installere Flarum Forum på FreeBSD 12

Bruker du et annet system? Flarum er en gratis og åpen kildekode neste generasjons forumprogramvare som gjør nettdiskusjoner morsomme. Flarum kildekode er vert for o

Slik aktiverer du TLS 1.3 i Nginx på FreeBSD 12

Slik aktiverer du TLS 1.3 i Nginx på FreeBSD 12

Bruker du et annet system? TLS 1.3 er en versjon av Transport Layer Security (TLS)-protokollen som ble publisert i 2018 som en foreslått standard i RFC 8446

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduksjon WordPress er det dominerende innholdsstyringssystemet på internett. Den driver alt fra blogger til komplekse nettsteder med dynamisk innhold

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Subrion 4.1 CMS er et kraftig og fleksibelt innholdsstyringssystem (CMS) med åpen kildekode som gir et intuitivt og tydelig innhold

Hvordan konfigurere DJBDNS på FreeBSD

Hvordan konfigurere DJBDNS på FreeBSD

Denne opplæringen viser deg hvordan du konfigurerer en DNS-tjeneste som er enkel å vedlikeholde, enkel å konfigurere og som generelt er sikrere enn den klassiske BIN-en.

Slik installerer du Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

Slik installerer du Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

En FEMP-stack, som kan sammenlignes med en LEMP-stack på Linux, er en samling åpen kildekode-programvare som vanligvis installeres sammen for å aktivere en FreeBS

Installere MongoDB på FreeBSD 10

Installere MongoDB på FreeBSD 10

MongoDB er en NoSQL-database i verdensklasse som brukes ofte i nyere webapplikasjoner. Det gir høyytelsesspørringer, sharding og replikering

Hvordan installere Monica på FreeBSD 12

Hvordan installere Monica på FreeBSD 12

Bruker du et annet system? Monica er et åpen kildekodesystem for personlig relasjonsstyring. Tenk på det som et CRM (et populært verktøy som brukes av salgsteam i th

OpenBSD som en e-handelsløsning med PrestaShop og Apache

OpenBSD som en e-handelsløsning med PrestaShop og Apache

Introduksjon Denne opplæringen demonstrerer OpenBSD som en e-handelsløsning som bruker PrestaShop og Apache. Apache er nødvendig fordi PrestaShop har kompleks UR

Installere Fork CMS på FreeBSD 12

Installere Fork CMS på FreeBSD 12

Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM

Hvordan installere Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Directus 6.4 CMS er et kraftig og fleksibelt, gratis og åpen kildekode Headless Content Management System (CMS) som gir utviklere

Forbedre sikkerheten for FreeBSD ved å bruke IPFW og SSHGuard

Forbedre sikkerheten for FreeBSD ved å bruke IPFW og SSHGuard

VPS-servere er ofte målrettet av inntrengere. En vanlig type angrep dukker opp i systemlogger som hundrevis av uautoriserte ssh-påloggingsforsøk. Setter opp

Sett opp httpd i OpenBSD

Sett opp httpd i OpenBSD

Introduksjon OpenBSD 5.6 introduserte en ny demon kalt httpd, som støtter CGI (via FastCGI) og TLS. Ingen ekstra arbeid er nødvendig for å installere den nye http

Sett opp iRedMail på FreeBSD 10

Sett opp iRedMail på FreeBSD 10

Denne opplæringen viser deg hvordan du installerer gruppevaren iRedMail på en ny installasjon av FreeBSD 10. Du bør bruke en server med minst én gigabyte o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer