OpenBSD ca soluție de comerț electronic cu PrestaShop și Apache

Introducere

Acest tutorial demonstrează OpenBSD ca soluție de comerț electronic folosind PrestaShop și Apache.

Apache este necesar deoarece PrestaShop are cerințe complexe de rescriere a adreselor URL care nu sunt acceptate de serverul Web integrat al OpenBSD, httpd. Acest tutorial utilizează certificate auto-semnate. Vă rugăm să utilizați un certificat verificat pentru producție.

Sarcini de pregătire

Creați temporar un utilizator obișnuit permis să folosească doasfără parolă. Acest acces va fi eliminat după instalare.

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

Adăugați pachetul de pachete OpenBSD.

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

Redirecționați e-mailuri zilnice de stare și securitate la adresa dvs.

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

Setați numele de gazdă al serverului.

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

Adăugați adresa FQDN și IP a serverului /etc/hosts.
Înlocuiți- 192.0.2.1vă cu adresa dvs. IP Vultr.

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

Adăugați pachetele necesare pentru PrestaShop și Apache. Alegeți cele mai recente versiuni atunci când vi se solicită.

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

Crearea unui certificat SSL autofirmat pentru testare. Setați Common Name pe FQDN al serverului dvs., de exemplu 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

Descărcați și extrageți PrestaShop

Găsiți adresa URL pentru cea mai recentă versiune a PrestaShop , descărcați /tmpși extrageți în /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

Configurați firewall-ul (pf) OpenBSD

Configurați firewallul pentru a bloca tot traficul de intrare, cu excepția ssh , www și https .

Realizați o copie de rezervă a /etc/pf.conf.

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

Modificați /etc/pf.confdupă cum se arată.

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

Testați și activați regulile firewallului.

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

Configurați OpenSMTPD ca un releu de e-mail

Backup-ul /etc/mail/smtpd.conffișierului.

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

Editați /etc/mail/smtpd.confașa cum se arată mai jos.

Note: * Definiția tabelului pentru secrete conține numele de utilizator și parola pentru releul de poștă. * Acțiunea de ieșire se uită în sus numele de utilizator și parola sub eticheta prestashopîn /etc/mail/secretsși releele e - mail prin serverul de e-mail.

    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"

Crea /etc/mail/secrets

Înlocuiți adresa de e-mail și parola cu datele de acreditare pe care le utilizați pentru serverul dvs. de e-mail.

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

Setați permisiunile la securizare /etc/mail/secrets

chmod 0600 /etc/secrets

Începeți fișierul de configurare pentru erori și reporniți demonul smtpd.

smtpd -n
rcctl restart smtpd

Configurați mediul PHP și PHP-FPM

Configurați procesul PHP-FPM pentru a asculta o priză TCP în loc de o priză de domeniu UNIX.

Faceți următoarea modificare mai jos pentru /etc/php-fpm.conffișier.

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

Faceți unele modificări suplimentare mediului PHP din /etc/php-7.3.ini. Acest nume de fișier se poate modifica ușor dacă versiunea este mai nouă decât 7.3. Aceste schimbari:

  • Permiteți încărcarea fișierelor mai mari.
  • Dezactivați mediul încărcat.
  • Configurați PHP pentru a trimite email prin 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
    

    Activați pluginurile PHP.

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

Activați și porniți demonul PHP-FPM. Numele daemon ar putea fi ușor diferit dacă versiunea este mai nouă.

rcctl enable php73_fpm
rcctl start php73_fpm

Configurarea MariaDB

MariaDB oferă backend-ul bazei de date pentru PrestaShop. Deoarece MariaDB are nevoie de mai multe fișiere deschise decât le permite clasa implicită, creați o clasă specială în /etc/login.conf.

În partea de jos a fișierului, adăugați următoarele linii:

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

Instalați MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Configurați securitatea MariaDB.

 mysql_secure_installation

Creați baza de date PrestaShop. Utilizați o parolă puternică.

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

Configurarea lui Apache

Back up /etc/apache2/httpd2.conf

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

Faceți următoarele modificări /etc/apache2/httpd2.conf, utilizând #pentru a activa și dezactiva modulele.

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
  • În /etc/apache2/httpd2.confpartea de jos a fișierului apar mai multe modificări . Eliminați #din declarațiile incluse indicate.

  • Adaugă ultima linie de gazduire virtuală.

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

Creați /etc/apache2/sitesdirectorul.

mkdir /etc/apache2/sites

Creați /etc/apache2/sites/example.confcu următoarele informații:

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

Configurați modulul proxy Apache adăugând următoarele /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>

Testați configurația, apoi activați și porniți Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Asigurați-vă că Apache ascultă pe porturile 80 și 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

Instalați PrestaShop

Căutați pe site-ul dvs. web la http://www.example.com. Se va lansa expertul de instalare PrestaShop.

După ce finalizați instalarea, luați notă de legătura administrativă și de ștergere a directorului /var/www/htdocs/prestashop/install.

Activați SSL.

  • Faceți clic pe Parametri magazin
  • Faceți clic pe General
  • Activați SSL pentru toate părțile magazinului

Schimbați parola administrativă.

  • Faceți clic pe Parametri avansați
  • Faceți clic pe Echipa
  • Schimbați-vă parola.

Câteva sarcini finale

Copia de rezervă a magazinului și a bazei de date a acestuia:

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*

Eliminați accesul doas pentru contul de utilizator prin recrearea doas.conffișierului.

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


Leave a Comment

Cum se instalează forumul NodeBB pe FreeBSD 12

Cum se instalează forumul NodeBB pe FreeBSD 12

Folosind un sistem diferit? NodeBB este un software de forum bazat pe Node.js. Utilizează prize web pentru interacțiuni instantanee și notificări în timp real. Nodul B

Protejați rezolv.conf de la DHCP pe FreeBSD 10

Protejați rezolv.conf de la DHCP pe FreeBSD 10

Dacă executați propriul dvs. rezolvator sau doriți să utilizați unul de la un furnizor terț, puteți constata că fișierul dvs. /etc/resolv.conf este suprascris de DHCP

Cum se instalează Automad CMS pe FreeBSD 12

Cum se instalează Automad CMS pe FreeBSD 12

Folosind un sistem diferit? Automad este un sistem open source de conținut bazat pe fișiere (CMS) și motor de șabloane, scris în PHP. Codul sursă Automad i

Cum se instalează X-Cart 5 pe FreeBSD 12

Cum se instalează X-Cart 5 pe FreeBSD 12

Folosind un sistem diferit? X-Cart este o platformă eCommerce open-source extrem de flexibilă, cu tone de funcții și integrări. Codul sursă X-Cart este gazdă

Instalați WordPress pe OpenBSD 6.2

Instalați WordPress pe OpenBSD 6.2

Introducere WordPress este sistemul dominant de gestionare a conținutului pe internet. Acesta alimentează totul, de la bloguri la site-uri web complexe, cu conținut dinamic

Cum se instalează Anchor CMS pe un VPS FreeBSD 11 FAMP

Cum se instalează Anchor CMS pe un VPS FreeBSD 11 FAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Configurare și configurare Murmur (Mumble Server) pe FreeBSD 11

Configurare și configurare Murmur (Mumble Server) pe FreeBSD 11

Murmur este software-ul de server oficial pentru protocolul de comunicare vocală Mumble. Această implementare oficială este stabilă și eficientă. Acest ghid va fi

Cum se instalează WonderCMS pe FreeBSD 12

Cum se instalează WonderCMS pe FreeBSD 12

Folosind un sistem diferit? WonderCMS este un CMS cu fișier plat, de tip open source, rapid și mic, scris în PHP. Codul sursă WonderCMS este găzduit pe Github. Acest ghid va fi

Cum se instalează Pagekit 1.0 CMS pe un VPS FreeBSD 11 FAMP

Cum se instalează Pagekit 1.0 CMS pe un VPS FreeBSD 11 FAMP

Folosind un sistem diferit? Pagekit 1.0 CMS este un sistem frumos de gestionare a conținutului (CMS), modular, extensibil și ușor, gratuit și deschis, cu

Cum se activează TLS 1.3 în Apache pe FreeBSD 12

Cum se activează TLS 1.3 în Apache pe FreeBSD 12

Folosind un sistem diferit? TLS 1.3 este o versiune a protocolului Transport Layer Security (TLS) care a fost publicat în 2018 ca standard propus în RFC 8446

Instalarea iRedMail pe FreeBSD 10

Instalarea iRedMail pe FreeBSD 10

Acest tutorial vă va arăta cum să instalați iRedMail de grup în o nouă instalare a FreeBSD 10. Ar trebui să folosiți un server cu cel puțin o gigabyte o

Cum se instalează Dolibarr pe FreeBSD 12

Cum se instalează Dolibarr pe FreeBSD 12

Folosind un sistem diferit? Dolibarr este un plan de resurse pentru întreprinderi open source (ERP) și managementul relațiilor cu clienții (CRM) pentru companii. Dolibarr

Instalați TaskServer (taskd) pe FreeBSD 11

Instalați TaskServer (taskd) pe FreeBSD 11

Folosind un sistem diferit? TaskWarrior este un instrument de gestionare a timpului open source care este o îmbunătățire a aplicației Todo.txt și a clonelor sale. Datorită th

Cum se instalează DokuWiki pe FreeBSD 12

Cum se instalează DokuWiki pe FreeBSD 12

Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Ghost este cel mai recent și cel mai mare upstart pentru a rivaliza cu WordPress. Dezvoltarea tematică este rapidă și ușor de învățat, deoarece dezvoltatorii Ghost au decis să utilizeze ambele aplicații

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Introducere Cu cât vă mențineți mai aproape instalarea OpenBSD la valoarea implicită și fără tot atâtea pachete adăugate, cu atât va fi mai sigur. În timp ce mai comun

Redimensionați ZFS Storage Pool pe FreeBSD / TrueOS

Redimensionați ZFS Storage Pool pe FreeBSD / TrueOS

La actualizarea unei instanțe VPS pe Vultr, un sistem de fișiere Linux este redimensionat automat. Când executați FreeBSD cu sistemul avansat de fișiere ZFS, unele manuale sunt uzate

Simple Mailserver cu Postfix, Dovecot și Sieve pe FreeBSD 10

Simple Mailserver cu Postfix, Dovecot și Sieve pe FreeBSD 10

Acest tutorial vă va arăta cum să obțineți un server de mail simplu pe FreeBSD 10, cu Postfix ca MTA, Dovecot ca MDA și Sieve pentru sortarea poștelor - peste un

Instalați eSpeak pe FreeBSD 12

Instalați eSpeak pe FreeBSD 12

Folosind un sistem diferit? ESpeak poate genera fișiere audio text-to-speech (TTS). Acestea pot fi utile din mai multe motive, cum ar fi crearea propriului dvs. Torino

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de administrare a conținutului (CMS) rapid, flexibil, scalabil, open source, de calitate a întreprinderii, scris în PHP. Este

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe