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 'hostmaster@example.com' > /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://prestashop@mail.example.com: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 user@example.com: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 webmaster@example.com
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 webmaster@example.com
  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 webmaster@example.com
  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

Jätä kommentti

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.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

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

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.

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