OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

Johdanto

Tämä opetusohjelma esittelee OpenBSD:n verkkokaupparatkaisuna käyttämällä PrestaShopia ja Apachea.

Apache tarvitaan, koska PrestaShopilla on monimutkaiset URL-uudelleenkirjoitusvaatimukset, joita OpenBSD:n sisäänrakennettu web-palvelin httpd ei tue. Tämä opetusohjelma käyttää itse allekirjoitettuja varmenteita. Käytä tuotannossa vahvistettua sertifikaattia.

Valmistelutehtävät

Luo väliaikaisesti tavallinen käyttäjä, joka saa käyttää doasilman salasanaa. Tämä käyttöoikeus poistetaan asennuksen jälkeen.

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

Lisää OpenBSD-pakettivarasto.

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

Välitä päivittäiset tila- ja turvallisuussähköpostit osoitteeseesi.

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

Aseta palvelimen isäntänimi.

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

Lisää palvelimesi FQDN ja IP-osoite kohtaan /etc/hosts.
Korvaa 192.0.2.1Vultr IP-osoitteellasi.

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

Lisää tarvittavat paketit PrestaShopille ja Apachelle. Valitse uusimmat versiot pyydettäessä.

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

Luotiin itse allekirjoitettu SSL-sertifikaatti testausta varten. Aseta Common Name palvelimesi FQDN:ksi, esim. 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

Lataa ja pura PrestaShop

Etsi PrestaShopin uusimman version URL-osoite , lataa se osoitteeseen /tmpja pura se osoitteeseen /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

Määritä OpenBSD:n (pf) palomuuri

Määritä palomuuri estämään kaikki saapuva liikenne paitsi ssh , www ja https .

Tee varmuuskopio /etc/pf.conf.

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

Muokkaa /etc/pf.confkuvan mukaisesti.

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

Testaa ja aktivoi palomuurin säännöt.

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

Määritä OpenSMTPD sähköpostin välittäjäksi

Varmuuskopioi /etc/mail/smtpd.conftiedostosi.

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

Muokkaa /etc/mail/smtpd.confalla olevan kuvan mukaisesti.

Huomautuksia: * Salaisuuksien taulukon määritelmä sisältää sähköpostin välityksen käyttäjätunnuksen ja salasanan. * Lähtevä toiminta hakee käyttäjätunnuksen ja salasanan etiketin alla prestashopon /etc/mail/secretsja välittää sähköpostin kautta sähköpostipalvelimelle.

    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"

Luoda /etc/mail/secrets

Korvaa sähköpostiosoite ja salasana niillä tunnistetiedoilla, joita käytät sähköpostipalvelimessasi.

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

Aseta suojatut käyttöoikeudet /etc/mail/secrets

chmod 0600 /etc/secrets

Tarkista määritystiedosto virheiden varalta ja käynnistä smtpd-daemon uudelleen.

smtpd -n
rcctl restart smtpd

Määritä PHP- ja PHP-FPM-ympäristö

Määritä PHP-FPM-prosessi kuuntelemaan TCP-kantaa UNIX-toimialueen vastakkeen sijaan.

Tee /etc/php-fpm.conftiedostolle alla oleva muutos .

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

Tee joitain lisämuutoksia PHP-ympäristöön /etc/php-7.3.ini. Tämä tiedostonimi voi muuttua hieman, jos versio on uudempi kuin 7.3. Nämä muutokset:

  • Salli suurempien tiedostojen lataaminen.
  • Poista chroot-ympäristö käytöstä.
  • Määritä PHP lähettämään sähköpostia sendmailin kautta.

    ; 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
    

    Ota PHP-laajennukset käyttöön.

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

Ota käyttöön ja käynnistä PHP-FPM-daemon. Demonin nimi voi olla hieman erilainen, jos versio on uudempi.

rcctl enable php73_fpm
rcctl start php73_fpm

MariaDB:n määrittäminen

MariaDB tarjoaa tietokannan taustaohjelman PrestaShopille. Koska MariaDB tarvitsee enemmän avoimia tiedostoja kuin oletusluokka sallii, luo erityinen luokka /etc/login.conf.

Lisää tiedoston alaosaan seuraavat rivit:

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

Asenna MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Määritä MariaDB-suojaus.

 mysql_secure_installation

Luo PrestaShop-tietokanta. Käytä vahvaa salasanaa.

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

Apachen asetukset

Varmuuskopioida /etc/apache2/httpd2.conf

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

Tee seuraavat muutokset kohtaan /etc/apache2/httpd2.conf, #moduulien ottamiseksi käyttöön ja poistamiseksi käytöstä.

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
  • Useita muita muutoksia /etc/apache2/httpd2.conftapahtuu tiedoston alaosassa. Poista #mainitut sisällyttämislausekkeet.

  • Lisää viimeiseksi Virtual Hosting -rivit.

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

Luo /etc/apache2/siteshakemisto.

mkdir /etc/apache2/sites

Luo /etc/apache2/sites/example.confseuraavilla tiedoilla:

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

Määritä Apachen välityspalvelin lisäämällä seuraava /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>

Testaa määritystä, ota sitten käyttöön ja käynnistä Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Varmista, että Apache kuuntelee portteja 80 ja 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

Asenna PrestaShop

Selaa verkkosivustollesi osoitteessa http://www.example.com. PrestaShopin ohjattu asennustoiminto käynnistyy.

Kun olet suorittanut asennuksen, huomioi myymälän etu- ja hallintalinkit ja poista hakemisto /var/www/htdocs/prestashop/install.

Ota SSL käyttöön.

  • Napsauta Kauppaparametrit
  • Napsauta Yleistä
  • Ota SSL käyttöön myymäläsi kaikissa osissa

Vaihda järjestelmänvalvojan salasana.

  • Napsauta Lisäparametrit
  • Napsauta Tiimi
  • Vaihda salasanasi.

Muutama viimeinen tehtävä

Varmuuskopioi myymäläsi ja sen tietokanta:

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*

Poista käyttöoikeus käyttäjätilillesi luomalla doas.conftiedosto uudelleen.

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

Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Kuinka asentaa Tiny Tiny RSS Reader FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Tiny Tiny RSS Reader on ilmainen ja avoimen lähdekoodin itseisännöity verkkopohjainen uutissyötteen (RSS/Atom) lukija ja kokoaja, joka on suunniteltu

Kuinka asentaa Wiki.js FreeBSD 11:een

Kuinka asentaa Wiki.js FreeBSD 11:een

Käytätkö erilaista järjestelmää? Wiki.js on ilmainen ja avoimen lähdekoodin moderni wikisovellus, joka on rakennettu Node.js:lle, MongoDB:lle, Gitille ja Markdownille. Wiki.js-lähdekoodi on julkinen

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Pagekit 1.0 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Pagekit 1.0 CMS on kaunis, modulaarinen, laajennettava ja kevyt, ilmainen ja avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), jossa on

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Kuinka asentaa MODX Revolution FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? MODX Revolution on nopea, joustava, skaalautuva, avoimen lähdekoodin, yritystason sisällönhallintajärjestelmä (CMS), joka on kirjoitettu PHP:llä. Se minä

Asenna OpenBSD 5.5 64-bittinen

Asenna OpenBSD 5.5 64-bittinen

Tämä artikkeli opastaa sinua määrittämään OpenBSD 5.5 (64-bittinen) KVM:ssä Vultr VPS:n kanssa. Vaihe 1. Kirjaudu Vultr-ohjauspaneeliin. Vaihe 2. Napsauta KÄYTÄ

Kuinka asentaa osTicket FreeBSD 12:een

Kuinka asentaa osTicket FreeBSD 12:een

Käytätkö erilaista järjestelmää? osTicket on avoimen lähdekoodin asiakastuen lippujärjestelmä. osTicket-lähdekoodia isännöidään julkisesti Githubissa. Tässä opetusohjelmassa

Kuinka asentaa Flarum Forum FreeBSD 12:een

Kuinka asentaa Flarum Forum FreeBSD 12:een

Käytätkö erilaista järjestelmää? Flarum on ilmainen ja avoimen lähdekoodin seuraavan sukupolven foorumiohjelmisto, joka tekee online-keskustelusta hauskaa. Flarum-lähdekoodia isännöi o

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Kuinka ottaa TLS 1.3 käyttöön Nginxissä FreeBSD 12:ssa

Käytätkö erilaista järjestelmää? TLS 1.3 on versio TLS (Transport Layer Security) -protokollasta, joka julkaistiin vuonna 2018 RFC 8446 -standardin ehdotuksena.

Asenna WordPress OpenBSD 6.2:een

Asenna WordPress OpenBSD 6.2:een

Johdanto WordPress on hallitseva sisällönhallintajärjestelmä Internetissä. Se tarjoaa kaiken tehon blogeista monimutkaisiin verkkosivustoihin, joissa on dynaamista sisältöä

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Subrion 4.1 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Subrion 4.1 CMS on tehokas ja joustava avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), joka tuo intuitiivisen ja selkeän sisällön

Kuinka määrittää DJBDNS FreeBSD:ssä

Kuinka määrittää DJBDNS FreeBSD:ssä

Tämä opetusohjelma näyttää, kuinka voit määrittää DNS-palvelun, joka on helppo ylläpitää, helppo määrittää ja joka on yleensä turvallisempi kuin perinteinen BIN.

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

Nginx-, MySQL- ja PHP (FEMP) -pinon asentaminen FreeBSD 12.0:aan

FEMP-pino, joka on verrattavissa LEMP-pinoon Linuxissa, on kokoelma avoimen lähdekoodin ohjelmistoja, jotka tyypillisesti asennetaan yhdessä mahdollistamaan FreeBS.

MongoDB:n asentaminen FreeBSD 10:een

MongoDB:n asentaminen FreeBSD 10:een

MongoDB on maailmanluokan NoSQL-tietokanta, jota käytetään usein uudemmissa verkkosovelluksissa. Se tarjoaa korkean suorituskyvyn kyselyitä, jakamista ja replikointia

Kuinka asentaa Monica FreeBSD 12:een

Kuinka asentaa Monica FreeBSD 12:een

Käytätkö erilaista järjestelmää? Monica on avoimen lähdekoodin henkilökohtaisten suhteiden hallintajärjestelmä. Ajattele sitä CRM:nä (suosittu työkalu, jota myyntitiimit käyttävät th

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

OpenBSD verkkokaupparatkaisuna PrestaShopin ja Apachen kanssa

Johdanto Tämä opetusohjelma esittelee OpenBSD:n verkkokaupparatkaisuna PrestaShopilla ja Apachella. Apache vaaditaan, koska PrestaShopilla on monimutkainen UR

Installing Fork CMS on FreeBSD 12

Installing Fork CMS on FreeBSD 12

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Directus 6.4 CMS:n asentaminen FreeBSD 11 FAMP VPS:ään

Käytätkö erilaista järjestelmää? Directus 6.4 CMS on tehokas ja joustava, ilmainen ja avoimen lähdekoodin päätön sisällönhallintajärjestelmä (CMS), joka tarjoaa kehittäjille

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

FreeBSD:n suojauksen parantaminen IPFW:n ja SSHGuardin avulla

VPS-palvelimet ovat usein tunkeilijoiden kohteena. Yleinen hyökkäystyyppi näkyy järjestelmälokeissa sadoina luvattomina ssh-kirjautumisyrityksinä. Asettaa

Asenna httpd OpenBSD:ssä

Asenna httpd OpenBSD:ssä

Johdanto OpenBSD 5.6 esitteli uuden daemonin nimeltä httpd, joka tukee CGI:tä (FastCGI:n kautta) ja TLS:ää. Uuden http:n asentaminen ei vaadi lisätyötä

Asenna iRedMail FreeBSD 10:ssä

Asenna iRedMail FreeBSD 10:ssä

Tämä opetusohjelma näyttää, kuinka asennat ryhmätyöohjelman iRedMail uuteen FreeBSD 10:n asennukseen. Sinun tulee käyttää palvelinta, jossa on vähintään yksi gigatavu

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja