OpenBSD com a solució de comerç electrònic amb PrestaShop i Apache

Introducció

Aquest tutorial mostra OpenBSD com a solució de comerç electrònic que utilitza PrestaShop i Apache.

Apache és necessari perquè PrestaShop té requisits complexos de reescriptura d'URL que no són compatibles amb el servidor web integrat d'OpenBSD, httpd. Aquest tutorial utilitza certificats autofirmats. Si us plau, utilitzeu un certificat verificat per a la producció.

Tasques de preparació

Creeu temporalment un usuari normal que pugui utilitzar-lo doassense contrasenya. Aquest accés s'eliminarà després de la configuració.

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

Afegiu el dipòsit de paquets OpenBSD.

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

Reenvieu correus electrònics d'estat i seguretat diaris a la vostra adreça.

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

Estableix el nom d'amfitrió del servidor.

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

Afegiu el FQDN i l'adreça IP del vostre servidor a /etc/hosts.
Substituïu-la 192.0.2.1per la vostra adreça IP de Vultr.

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

Afegiu els paquets necessaris per a PrestaShop i Apache. Trieu les últimes versions quan se us demani.

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

S'ha creat un certificat SSL autofirmat per a la prova. Establiu el nom comú al FQDN del vostre servidor, per exemple, 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

Baixeu i extreu PrestaShop

Localitzeu l'URL de l' última versió de PrestaShop , baixeu-lo /tmpi extreu-lo a /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 el tallafoc d'OpenBSD (pf).

Configureu el tallafoc per bloquejar tot el trànsit entrant excepte ssh , www i https .

Feu una còpia de seguretat de /etc/pf.conf.

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

Editeu /etc/pf.confcom es mostra.

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

Proveu i activeu les regles del tallafoc.

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

Configureu OpenSMTPD com a retransmissió de correu electrònic

Feu una còpia de seguretat del vostre /etc/mail/smtpd.conffitxer.

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

Editeu /etc/mail/smtpd.confcom es mostra a continuació.

Notes: * La definició de la taula per a secrets conté el nom d'usuari i la contrasenya per a la retransmissió de correu. * L'acció de sortida busca el nom d'usuari i la contrasenya sota l'etiqueta prestashopd'entrada /etc/mail/secretsi transmet el correu electrònic a través del vostre servidor de correu electrònic.

    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"

Crear /etc/mail/secrets

Substituïu l'adreça de correu electrònic i la contrasenya per les credencials que utilitzeu per al vostre servidor de correu electrònic.

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

Estableix els permisos per protegir /etc/mail/secrets

chmod 0600 /etc/secrets

Esteu el fitxer de configuració per detectar errors i reinicieu el dimoni smtpd.

smtpd -n
rcctl restart smtpd

Configura l'entorn PHP i PHP-FPM

Configureu el procés PHP-FPM per escoltar en un sòcol TCP en lloc d'un sòcol de domini UNIX.

Feu el canvi següent per al /etc/php-fpm.conffitxer.

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

Make some additional changes to the PHP environment in /etc/php-7.3.ini. This file name may change slightly if the version is newer than 7.3. These changes:

  • Allow for larger files to be uploaded.
  • Disable the chrooted environment.
  • Configure PHP to send email 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
    

    Enable the PHP plugins.

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

Enable and start the PHP-FPM daemon. The daemon name might be slightly different if the version is newer.

rcctl enable php73_fpm
rcctl start php73_fpm

Configuring MariaDB

MariaDB provides the database backend for PrestaShop. Because MariaDB needs more open files than the default class allows, create a special class in /etc/login.conf.

At the bottom of the file, add the following lines:

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

Install MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Configure MariaDB security.

 mysql_secure_installation

Create the PrestaShop database. Use a strong password.

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

Configuring Apache

Back up /etc/apache2/httpd2.conf

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

Feu els canvis següents a /etc/apache2/httpd2.conf, utilitzant #per activar i desactivar els mòduls.

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
  • Es /etc/apache2/httpd2.confprodueixen diversos canvis més a la part inferior del fitxer. Eliminar #de les declaracions d'inclusió indicades.

  • Afegiu les línies d'allotjament virtual per últim.

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

Creeu el /etc/apache2/sitesdirectori.

mkdir /etc/apache2/sites

Creeu /etc/apache2/sites/example.confamb la informació següent:

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

Configureu el mòdul proxy d'Apache afegint el següent a /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>

Proveu la configuració, després activeu i inicieu Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Assegureu-vos que Apache escolti als ports 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

Instal·leu PrestaShop

Navegueu al vostre lloc web a http://www.example.com. S'iniciarà l'assistent d'instal·lació de PrestaShop.

Un cop hàgiu completat la instal·lació, tingueu en compte l'aparador de la botiga i els enllaços administratius i suprimiu el directori /var/www/htdocs/prestashop/install.

Activa SSL.

  • Feu clic a Paràmetres de la botiga
  • Feu clic a General
  • Activeu SSL per a totes les parts de la vostra botiga

Canvia la teva contrasenya administrativa.

  • Feu clic a Paràmetres avançats
  • Feu clic a Equip
  • Canvia la teva contrasenya.

Algunes tasques finals

Feu una còpia de seguretat de la vostra botiga i la seva base de dades:

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*

Elimineu l'accés doas al vostre compte d'usuari recreant el doas.conffitxer.

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

Com instal·lar Tiny Tiny RSS Reader en un FreeBSD 11 FAMP VPS

Com instal·lar Tiny Tiny RSS Reader en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? Tiny Tiny RSS Reader és un lector i agregador de notícies basats en web (RSS/Atom) de codi obert i gratuït, dissenyat per

Com instal·lar Wiki.js a FreeBSD 11

Com instal·lar Wiki.js a FreeBSD 11

Utilitzeu un sistema diferent? Wiki.js és una aplicació wiki moderna de codi obert i gratuïta construïda a Node.js, MongoDB, Git i Markdown. El codi font de Wiki.js és públic

Com instal·lar Pagekit 1.0 CMS en un VPS FreeBSD 11 FAMP

Com instal·lar Pagekit 1.0 CMS en un VPS FreeBSD 11 FAMP

Utilitzeu un sistema diferent? Pagekit 1.0 CMS és un sistema de gestió de continguts (CMS) bonic, modular, extensible i lleuger, gratuït i de codi obert amb

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, de codi obert i de grau empresarial escrit en PHP. És jo

Configura lOpenBSD 5.5 de 64 bits

Configura lOpenBSD 5.5 de 64 bits

Aquest article us explica la configuració d'OpenBSD 5.5 (64 bits) a KVM amb un Vultr VPS. Pas 1. Inicieu sessió al tauler de control de Vultr. Pas 2. Feu clic a DEPLOY

Com instal·lar osTicket a FreeBSD 12

Com instal·lar osTicket a FreeBSD 12

Utilitzeu un sistema diferent? osTicket és un sistema d'entrades d'atenció al client de codi obert. El codi font osTicket està allotjat públicament a Github. En aquest tutorial

Com instal·lar Flarum Forum a FreeBSD 12

Com instal·lar Flarum Forum a FreeBSD 12

Utilitzeu un sistema diferent? Flarum és un programari de fòrum de nova generació gratuït i de codi obert que fa que la discussió en línia sigui divertida. El codi font de Flarum està allotjat o

Com habilitar TLS 1.3 a Nginx a FreeBSD 12

Com habilitar TLS 1.3 a Nginx a FreeBSD 12

Utilitzeu un sistema diferent? TLS 1.3 és una versió del protocol Transport Layer Security (TLS) que es va publicar el 2018 com a estàndard proposat a RFC 8446

Instal·leu WordPress a OpenBSD 6.2

Instal·leu WordPress a OpenBSD 6.2

Introducció WordPress és el sistema de gestió de continguts dominant a Internet. Potencia tot, des de blocs fins a llocs web complexos amb contingut dinàmic

Com instal·lar Subrion 4.1 CMS en un VPS FreeBSD 11 FAMP

Com instal·lar Subrion 4.1 CMS en un VPS FreeBSD 11 FAMP

Utilitzeu un sistema diferent? Subrion 4.1 CMS és un sistema de gestió de continguts (CMS) de codi obert potent i flexible que ofereix un contingut intuïtiu i clar.

Com configurar DJBDNS a FreeBSD

Com configurar DJBDNS a FreeBSD

Aquest tutorial us mostrarà com configurar un servei DNS que sigui fàcil de mantenir, fàcil de configurar i que, en general, sigui més segur que el BIN clàssic.

Com instal·lar Nginx, MySQL i PHP (FEMP) Stack a FreeBSD 12.0

Com instal·lar Nginx, MySQL i PHP (FEMP) Stack a FreeBSD 12.0

Una pila FEMP, que és comparable a una pila LEMP a Linux, és una col·lecció de programari de codi obert que normalment s'instal·la conjuntament per habilitar un FreeBS.

Instal·lant MongoDB a FreeBSD 10

Instal·lant MongoDB a FreeBSD 10

MongoDB és una base de dades NoSQL de classe mundial que s'utilitza amb freqüència en aplicacions web més noves. Proporciona consultes, fragmentació i rèplica d'alt rendiment

Com instal·lar la Monica a FreeBSD 12

Com instal·lar la Monica a FreeBSD 12

Utilitzeu un sistema diferent? Monica és un sistema de gestió de relacions personals de codi obert. Penseu en això com un CRM (una eina popular utilitzada pels equips de vendes a th

OpenBSD com a solució de comerç electrònic amb PrestaShop i Apache

OpenBSD com a solució de comerç electrònic amb PrestaShop i Apache

Introducció Aquest tutorial mostra OpenBSD com a solució de comerç electrònic amb PrestaShop i Apache. Apache és necessari perquè PrestaShop té una UR complexa

Instal·lació de Fork CMS a FreeBSD 12

Instal·lació de Fork CMS a FreeBSD 12

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com instal·lar Directus 6.4 CMS en un VPS FreeBSD 11 FAMP

Com instal·lar Directus 6.4 CMS en un VPS FreeBSD 11 FAMP

Utilitzeu un sistema diferent? Directus 6.4 CMS és un sistema de gestió de contingut sense cap (CMS) potent i flexible, gratuït i de codi obert que proporciona als desenvolupadors

Millora de la seguretat per a FreeBSD mitjançant IPFW i SSHGuard

Millora de la seguretat per a FreeBSD mitjançant IPFW i SSHGuard

Els servidors VPS solen ser atacats per intrusos. Un tipus comú d'atac apareix als registres del sistema com a centenars d'intents d'inici de sessió ssh no autoritzats. Preparant

Configura httpd a OpenBSD

Configura httpd a OpenBSD

Introducció L'OpenBSD 5.6 va introduir un nou dimoni anomenat httpd, que admet CGI (mitjançant FastCGI) i TLS. No cal cap treball addicional per instal·lar el nou http

Configura iRedMail a FreeBSD 10

Configura iRedMail a FreeBSD 10

Aquest tutorial us mostrarà com instal·lar el grup iRedMail en una nova instal·lació de FreeBSD 10. Hauríeu d'utilitzar un servidor amb almenys un gigabyte o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació