OpenBSD kaip elektroninės komercijos sprendimas su PrestaShop ir Apache

Įvadas

Ši pamoka parodo OpenBSD kaip el. prekybos sprendimą naudojant PrestaShop ir Apache.

Apache reikalinga, nes PrestaShop turi sudėtingus URL perrašymo reikalavimus, kurių nepalaiko OpenBSD integruotas žiniatinklio serveris httpd. Šioje mokymo programoje naudojami savarankiškai pasirašyti sertifikatai. Gamindami naudokite patvirtintą sertifikatą.

Paruošimo užduotys

Laikinai sukurti įprastą vartotoją, kuriam leidžiama naudoti doasbe slaptažodžio. Ši prieiga bus pašalinta po sąrankos.

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

Pridėkite OpenBSD paketų saugyklą.

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

Persiųskite kasdienius būsenos ir saugos el. laiškus savo adresu.

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

Nustatykite serverio pagrindinio kompiuterio pavadinimą.

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

Pridėkite savo serverio FQDN ir IP adresą prie /etc/hosts.
Pakeiskite 192.0.2.1savo Vultr IP adresu.

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

Pridėkite reikiamus PrestaShop ir Apache paketus. Kai būsite paraginti, pasirinkite naujausias versijas.

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

Sukurtas savarankiškai pasirašytas SSL sertifikatas testavimui. Nustatykite bendrąjį pavadinimą į savo serverio FQDN, pvz., 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

Atsisiųskite ir išskleiskite PrestaShop

Raskite naujausios PrestaShop versijos URL , atsisiųskite /tmpir išskleiskite į /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

Konfigūruoti OpenBSD (pf) ugniasienę

Sukonfigūruokite ugniasienę, kad blokuotų visą gaunamą srautą, išskyrus ssh , www ir https .

Padarykite atsarginę kopiją /etc/pf.conf.

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

Redaguoti /etc/pf.confkaip parodyta.

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

Išbandykite ir suaktyvinkite ugniasienės taisykles.

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

Konfigūruokite „OpenSMTPD“ kaip el. pašto perdavimą

Sukurkite /etc/mail/smtpd.conffailo atsarginę kopiją .

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

Redaguokite, /etc/mail/smtpd.confkaip parodyta žemiau.

Pastabos: * Paslapčių lentelės apibrėžime yra pašto perdavimo naudotojo vardas ir slaptažodis. * Išvykstamojo veiksmai atrodo iki vartotojo vardą ir slaptažodį pagal etiketėje prestashopį /etc/mail/secretsir relės el.pašto per savo elektroninio pašto serverį.

    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"

Sukurti /etc/mail/secrets

Pakeiskite el. pašto adresą ir slaptažodį kredencialais, kuriuos naudojate el. pašto serveryje.

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

Nustatykite leidimus, kad apsaugotumėte /etc/mail/secrets

chmod 0600 /etc/secrets

Patikrinkite konfigūracijos failą dėl klaidų ir iš naujo paleiskite smtpd demoną.

smtpd -n
rcctl restart smtpd

Sukonfigūruokite PHP ir PHP-FPM aplinką

Sukonfigūruokite PHP-FPM procesą, kad klausytumėte TCP lizdo, o ne UNIX domeno lizdo.

Atlikite toliau nurodytus /etc/php-fpm.conffailo pakeitimus.

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

Atlikite keletą papildomų PHP aplinkos pakeitimų /etc/php-7.3.ini. Šis failo pavadinimas gali šiek tiek pasikeisti, jei versija yra naujesnė nei 7.3. Šie pakeitimai:

  • Leisti įkelti didesnius failus.
  • Išjungti chrootuotą aplinką.
  • Sukonfigūruokite PHP siųsti el. paštą per 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
    

    Įgalinkite PHP papildinius.

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

Įjunkite ir paleiskite PHP-FPM demoną. Demono pavadinimas gali šiek tiek skirtis, jei versija yra naujesnė.

rcctl enable php73_fpm
rcctl start php73_fpm

„MariaDB“ konfigūravimas

„MariaDB“ teikia „PrestaShop“ duomenų bazės užpakalinę programą. Kadangi MariaDB reikia daugiau atidarytų failų, nei leidžia numatytoji klasė, sukurkite specialią klasę /etc/login.conf.

Failo apačioje pridėkite šias eilutes:

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

Įdiekite MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Konfigūruokite MariaDB saugumą.

 mysql_secure_installation

Sukurkite PrestaShop duomenų bazę. Naudokite stiprų slaptažodį.

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

„Apache“ konfigūravimas

Atgal į viršų /etc/apache2/httpd2.conf

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

Atlikite toliau nurodytus pakeitimus /etc/apache2/httpd2.confnaudodami , #kad įjungtumėte ir išjungtumėte modulius.

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
  • /etc/apache2/httpd2.confFailo apačioje atsiranda dar keletas pakeitimų . Pašalinkite #nurodytus teiginius iš įtraukimo.

  • Virtualiojo prieglobos eilutes pridėkite paskutinę.

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

Sukurkite /etc/apache2/siteskatalogą.

mkdir /etc/apache2/sites

Sukurkite /etc/apache2/sites/example.confnaudodami šią informaciją:

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

Sukonfigūruokite „Apache“ tarpinio serverio modulį, pridėdami toliau nurodytus elementus /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>

Išbandykite konfigūraciją, tada įjunkite ir paleiskite „Apache“.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Įsitikinkite, kad „Apache“ klausosi 80 ir 443 prievaduose.

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

Įdiekite PrestaShop

Naršykite savo svetainėje adresu http://www.example.com. Bus paleistas PrestaShop diegimo vedlys.

Baigę diegti, atkreipkite dėmesį į parduotuvės priekinę ir administracines nuorodas ir ištrinkite katalogą /var/www/htdocs/prestashop/install.

Įgalinti SSL.

  • Spustelėkite Parduotuvės parametrai
  • Spustelėkite Bendra
  • Įgalinkite SSL visose parduotuvės dalyse

Pakeiskite administratoriaus slaptažodį.

  • Spustelėkite Išplėstiniai parametrai
  • Spustelėkite Komanda
  • Pasikeiskite slaptažodį.

Kai kurios baigiamosios užduotys

Parduotuvės ir jos duomenų bazės atsarginė kopija:

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*

Pašalinkite prieigą prie savo vartotojo paskyros iš naujo sukurdami doas.conffailą.

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

Kaip įdiegti Tiny Tiny RSS skaitytuvą „FreeBSD 11 FAMP VPS“.

Kaip įdiegti Tiny Tiny RSS skaitytuvą „FreeBSD 11 FAMP VPS“.

Naudojate kitą sistemą? Tiny Tiny RSS Reader yra nemokama ir atviro kodo savarankiškai priglobta žiniatinklio naujienų kanalo (RSS/Atom) skaitytuvas ir kaupiklis, skirtas

Kaip įdiegti Wiki.js FreeBSD 11

Kaip įdiegti Wiki.js FreeBSD 11

Naudojate kitą sistemą? Wiki.js yra nemokama atvirojo kodo moderni wiki programa, sukurta naudojant Node.js, MongoDB, Git ir Markdown. Wiki.js šaltinio kodas yra viešas

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Pagekit 1.0 TVS yra graži, modulinė, išplečiama ir lengva, nemokama ir atviro kodo turinio valdymo sistema (TVS) su

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Nustatyti OpenBSD 5.5 64 bitų

Nustatyti OpenBSD 5.5 64 bitų

Šiame straipsnyje paaiškinama, kaip nustatyti OpenBSD 5.5 (64 bitų) KVM naudojant Vultr VPS. 1 veiksmas. Prisijunkite prie Vultr valdymo pulto. 2 veiksmas. Spustelėkite DEPLOY

Kaip įdiegti „osTicket“ „FreeBSD 12“.

Kaip įdiegti „osTicket“ „FreeBSD 12“.

Naudojate kitą sistemą? osTicket yra atvirojo kodo klientų aptarnavimo bilietų pardavimo sistema. „osTicket“ šaltinio kodas viešai priglobtas „Github“. Šioje pamokoje

How to Install Flarum Forum on FreeBSD 12

How to Install Flarum Forum on FreeBSD 12

Using a Different System? Flarum is a free and open-source next-generation forum software that makes online discussion fun. Flarum source code is hosted o

Kaip įjungti TLS 1.3 „Nginx“, naudojant „FreeBSD 12“.

Kaip įjungti TLS 1.3 „Nginx“, naudojant „FreeBSD 12“.

Naudojate kitą sistemą? TLS 1.3 yra Transport Layer Security (TLS) protokolo versija, kuri buvo paskelbta 2018 m. kaip siūlomas standartas RFC 8446.

Įdiekite „WordPress“ „OpenBSD 6.2“.

Įdiekite „WordPress“ „OpenBSD 6.2“.

Įvadas WordPress yra dominuojanti turinio valdymo sistema internete. Tai suteikia viską nuo tinklaraščių iki sudėtingų svetainių su dinamišku turiniu

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Subrion 4.1 TVS yra galinga ir lanksti atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia intuityvų ir aiškų turinį

Kaip sukonfigūruoti DJBDNS „FreeBSD“.

Kaip sukonfigūruoti DJBDNS „FreeBSD“.

Ši pamoka parodys, kaip sukonfigūruoti DNS paslaugą, kurią būtų lengva prižiūrėti, lengva konfigūruoti ir kuri paprastai yra saugesnė nei klasikinis BIN.

Kaip įdiegti Nginx, MySQL ir PHP (FEMP) Stack FreeBSD 12.0

Kaip įdiegti Nginx, MySQL ir PHP (FEMP) Stack FreeBSD 12.0

FEMP stekas, panašus į LEMP steką Linux sistemoje, yra atvirojo kodo programinės įrangos rinkinys, kuris paprastai įdiegiamas kartu, kad įgalintų FreeBS.

„MongoDB“ diegimas „FreeBSD 10“.

„MongoDB“ diegimas „FreeBSD 10“.

MongoDB yra pasaulinės klasės NoSQL duomenų bazė, kuri dažnai naudojama naujesnėse žiniatinklio programose. Jis teikia didelio našumo užklausas, dalijimąsi ir replikaciją

Kaip įdiegti Monica FreeBSD 12

Kaip įdiegti Monica FreeBSD 12

Naudojate kitą sistemą? Monica yra atviro kodo asmeninių santykių valdymo sistema. Pagalvokite apie tai kaip apie CRM (populiarų įrankį, kurį naudoja pardavimų komandos th

OpenBSD kaip elektroninės komercijos sprendimas su PrestaShop ir Apache

OpenBSD kaip elektroninės komercijos sprendimas su PrestaShop ir Apache

Įvadas Ši pamoka parodo OpenBSD kaip el. prekybos sprendimą naudojant PrestaShop ir Apache. Apache reikalinga, nes PrestaShop turi sudėtingą UR

„Fork CMS“ diegimas „FreeBSD 12“.

„Fork CMS“ diegimas „FreeBSD 12“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti „Directus 6.4 CMS“ „FreeBSD 11 FAMP VPS“.

Kaip įdiegti „Directus 6.4 CMS“ „FreeBSD 11 FAMP VPS“.

Naudojate kitą sistemą? „Directus 6.4 CMS“ yra galinga ir lanksti, nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia kūrėjams

FreeBSD saugumo padidinimas naudojant IPFW ir SSHGuard

FreeBSD saugumo padidinimas naudojant IPFW ir SSHGuard

Į VPS serverius dažnai nusitaiko įsibrovėliai. Įprastas atakų tipas rodomas sistemos žurnaluose kaip šimtai neteisėtų ssh prisijungimo bandymų. Nustatyti

Nustatyti httpd OpenBSD

Nustatyti httpd OpenBSD

Įvadas OpenBSD 5.6 pristatė naują demoną pavadinimu httpd, kuris palaiko CGI (per FastCGI) ir TLS. Norint įdiegti naują http, nereikia jokių papildomų darbų

„FreeBSD 10“ nustatykite „iRedMail“.

„FreeBSD 10“ nustatykite „iRedMail“.

Ši pamoka parodys, kaip įdiegti grupinę programą iRedMail naujai įdiegus FreeBSD 10. Turėtumėte naudoti serverį, turintį bent vieną gigabaitą.

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį