OpenBSD als E-Commerce-Lösung mit PrestaShop und Apache

Einführung

Dieses Tutorial zeigt OpenBSD als E-Commerce-Lösung mit PrestaShop und Apache.

Apache ist erforderlich, da PrestaShop komplexe Anforderungen zum Umschreiben von URLs hat, die vom integrierten OpenBSD-Webserver httpd nicht unterstützt werden. In diesem Lernprogramm werden selbstsignierte Zertifikate verwendet. Bitte verwenden Sie ein verifiziertes Zertifikat für die Produktion.

Vorbereitungsaufgaben

Erstellen Sie vorübergehend einen regulären Benutzer, der doasohne Kennwort verwendet werden darf . Dieser Zugriff wird nach dem Setup entfernt.

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

Fügen Sie das OpenBSD-Paketrepository hinzu.

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

Leiten Sie tägliche Status- und Sicherheits-E-Mails an Ihre Adresse weiter.

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

Legen Sie den Hostnamen des Servers fest.

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

Fügen Sie den FQDN und die IP-Adresse Ihres Servers hinzu /etc/hosts.
Ersetzen Sie 192.0.2.1durch Ihre Vultr-IP-Adresse.

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

Fügen Sie die erforderlichen Pakete für PrestaShop und Apache hinzu. Wählen Sie die neuesten Versionen aus, wenn Sie dazu aufgefordert werden.

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

Erstellt ein selbstsigniertes SSL-Zertifikat zum Testen. Setzen Sie Common Fame auf den FQDN Ihres Servers, z. B. 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

Laden Sie PrestaShop herunter und extrahieren Sie es

Suchen Sie die URL für die neueste Version von PrestaShop , laden Sie sie herunter /tmpund extrahieren Sie sie nach /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

Konfigurieren Sie die OpenBSD (pf) -Firewall

Konfigurieren Sie die Firewall so, dass der gesamte eingehende Datenverkehr mit Ausnahme von ssh , www und https blockiert wird .

Erstellen Sie eine Sicherungskopie von /etc/pf.conf.

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

Bearbeiten Sie /etc/pf.confwie gezeigt.

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

Testen und aktivieren Sie die Firewall-Regeln.

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

Konfigurieren Sie OpenSMTPD als E-Mail-Relay

Sichern Sie Ihre /etc/mail/smtpd.confDatei.

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

Bearbeiten Sie /etc/mail/smtpd.confwie unten gezeigt.

Hinweise: * Die Tabellendefinition für Geheimnisse enthält den Benutzernamen und das Kennwort für das Mail-Relay. * Die ausgehende Aktion sucht den Benutzernamen und das Passwort unter der Bezeichnung prestashopin /etc/mail/secretsund leitet die E-Mail über Ihren E-Mail-Server weiter.

    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"

Erstellen /etc/mail/secrets

Ersetzen Sie die E-Mail-Adresse und das Kennwort durch die Anmeldeinformationen, die Sie für Ihren E-Mail-Server verwenden.

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

Legen Sie die zu sichernden Berechtigungen fest /etc/mail/secrets

chmod 0600 /etc/secrets

Überprüfen Sie die Konfigurationsdatei auf Fehler und starten Sie den smtpd-Daemon neu.

smtpd -n
rcctl restart smtpd

Konfigurieren Sie die PHP- und PHP-FPM-Umgebung

Konfigurieren Sie den PHP-FPM-Prozess so, dass er einen TCP-Socket anstelle eines UNIX-Domänensockets überwacht.

Nehmen Sie die folgende Änderung für die /etc/php-fpm.confDatei vor.

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

Nehmen Sie einige zusätzliche Änderungen an der PHP-Umgebung in vor /etc/php-7.3.ini. Dieser Dateiname kann sich geringfügig ändern, wenn die Version neuer als 7.3 ist. Diese Veränderungen:

  • Ermöglichen das Hochladen größerer Dateien.
  • Deaktivieren Sie die Chroot-Umgebung.
  • Konfigurieren Sie PHP so, dass E-Mails über sendmail gesendet werden.

    ; 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
    

    Aktivieren Sie die PHP-Plugins.

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

Aktivieren und starten Sie den PHP-FPM-Daemon. Der Daemon-Name kann geringfügig abweichen, wenn die Version neuer ist.

rcctl enable php73_fpm
rcctl start php73_fpm

MariaDB konfigurieren

MariaDB stellt das Datenbank-Backend für PrestaShop bereit. Da MariaDB mehr geöffnete Dateien benötigt, als die Standardklasse zulässt, erstellen Sie eine spezielle Klasse in /etc/login.conf.

Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:

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

Installieren Sie MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Konfigurieren Sie die MariaDB-Sicherheit.

 mysql_secure_installation

Erstellen Sie die PrestaShop-Datenbank. Verwenden Sie ein sicheres Passwort.

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

Apache konfigurieren

Sichern /etc/apache2/httpd2.conf

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

Nehmen Sie die folgenden Änderungen vor /etc/apache2/httpd2.conf, #um Module zu aktivieren und zu deaktivieren.

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
  • Weitere Änderungen /etc/apache2/httpd2.conftreten am Ende der Datei auf. Entfernen Sie #aus den angegebenen include-Anweisungen.

  • Fügen Sie zuletzt die virtuellen Hosting-Zeilen hinzu.

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

Erstellen Sie das /etc/apache2/sitesVerzeichnis.

mkdir /etc/apache2/sites

Erstellen Sie /etc/apache2/sites/example.confmit den folgenden Informationen:

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

Konfigurieren Sie das Proxy-Modul von Apache, indem Sie Folgendes hinzufügen /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>

Testen Sie die Konfiguration, aktivieren und starten Sie Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Stellen Sie sicher, dass Apache die Ports 80 und 443 überwacht.

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

Installieren Sie PrestaShop

Navigieren Sie zu Ihrer Website unter http://www.example.com. Der PrestaShop-Installationsassistent wird gestartet.

Beachten Sie nach Abschluss der Installation die Store-Front und die administrativen Links und löschen Sie das Verzeichnis /var/www/htdocs/prestashop/install.

Aktivieren Sie SSL.

  • Klicken Sie auf Shop-Parameter
  • Klicken Sie auf Allgemein
  • Aktivieren Sie SSL für alle Teile Ihres Geschäfts

Ändern Sie Ihr Administratorkennwort.

  • Klicken Sie auf Erweiterte Parameter
  • Klicken Sie auf Team
  • Ändern Sie Ihr Passwort.

Einige letzte Aufgaben

Sichern Sie Ihr Geschäft und seine Datenbank:

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*

Entfernen Sie den Doas-Zugriff für Ihr Benutzerkonto, indem Sie die doas.confDatei neu erstellen.

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


Leave a Comment

So installieren Sie Blacklistd unter FreeBSD 11.1

So installieren Sie Blacklistd unter FreeBSD 11.1

Einführung Jeder Dienst, der mit dem Internet verbunden ist, ist ein potenzielles Ziel für Brute-Force-Angriffe oder ungerechtfertigten Zugriff. Es gibt Tools wie fail2ba

So installieren Sie Osclass unter FreeBSD 12

So installieren Sie Osclass unter FreeBSD 12

Verwenden Sie ein anderes System? Osclass ist ein Open Source-Projekt, mit dem Sie auf einfache Weise eine klassifizierte Site ohne technisches Wissen erstellen können. Seine Quelle

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Couch CMS ist ein einfaches und flexibles, kostenloses und Open-Source-Content-Management-System (CMS), mit dem Webdesigner entwerfen können

So installieren Sie Lychee 3.1 Photo Album auf einem FreeBSD 11 FAMP VPS

So installieren Sie Lychee 3.1 Photo Album auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Lychee 3.1 Photo Album ist ein einfaches und flexibles, kostenloses Open-Source-Tool zur Fotoverwaltung, das auf einem VPS-Server ausgeführt wird. Es wird installiert

Installieren von Fork CMS unter FreeBSD 12

Installieren von Fork CMS unter FreeBSD 12

Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren

Erstellen Sie eine Auslagerungsdatei unter FreeBSD 10

Erstellen Sie eine Auslagerungsdatei unter FreeBSD 10

Vultr FreeBSD-Server sind standardmäßig nicht so konfiguriert, dass sie Swap Space enthalten. Wenn Sie eine Einweg-Cloud-Instanz beabsichtigen, brauchen Sie diese wahrscheinlich nicht

So ändern Sie die Größe einer Festplatte in FreeBSD

So ändern Sie die Größe einer Festplatte in FreeBSD

Das FreeBSD-Betriebssystem verwendet UFS (Unix File System) für sein Root-Partitions-Dateisystem. sonst bekannt als freebsd-ufs Im Falle eines Upgrades

So installieren Sie Matomo Analytics unter FreeBSD 11

So installieren Sie Matomo Analytics unter FreeBSD 11

Verwenden Sie ein anderes System? Matomo (ehemals Piwik) ist eine Open Source-Analyseplattform, eine offene Alternative zu Google Analytics. Matomo Quelle wird gehostet o

So aktivieren Sie TLS 1.3 in Nginx unter FreeBSD 12

So aktivieren Sie TLS 1.3 in Nginx unter FreeBSD 12

Verwenden Sie ein anderes System? TLS 1.3 ist eine Version des TLS-Protokolls (Transport Layer Security), das 2018 als vorgeschlagener Standard in RFC 8446 veröffentlicht wurde

So installieren Sie Backdrop CMS auf einem FreeBSD 11 FAMP VPS

So installieren Sie Backdrop CMS auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Hintergrund CMS 1.8.0 ist ein einfaches und flexibles, mobilfreundliches, kostenloses und Open Source Content Management System (CMS), das es uns ermöglicht

So installieren Sie ImpressPages CMS 5.0 auf einem FreeBSD 11 FAMP VPS

So installieren Sie ImpressPages CMS 5.0 auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? ImpressPages CMS 5.0 ist ein einfaches und effektives, kostenloses und Open Source, benutzerfreundliches, MVC-basiertes Content Management System (CMS).

Installieren Sie eSpeak unter FreeBSD 12

Installieren Sie eSpeak unter FreeBSD 12

Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen

So installieren Sie LimeSurvey CE unter FreeBSD 12

So installieren Sie LimeSurvey CE unter FreeBSD 12

Verwenden Sie ein anderes System? LimeSurvey ist eine Open-Source-Umfragesoftware, die in PHP geschrieben wurde. Der LimeSurvey-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen

So installieren Sie Monica unter FreeBSD 12

So installieren Sie Monica unter FreeBSD 12

Verwenden Sie ein anderes System? Monica ist ein Open-Source-System für das persönliche Beziehungsmanagement. Stellen Sie sich das als CRM vor (ein beliebtes Tool, das von Verkaufsteams in th verwendet wird

So installieren Sie Automad CMS unter FreeBSD 12

So installieren Sie Automad CMS unter FreeBSD 12

Verwenden Sie ein anderes System? Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Der Automad-Quellcode i

Auswählen eines Betriebssystems: CentOS, Ubuntu, Debian, FreeBSD, CoreOS oder Windows Server

Auswählen eines Betriebssystems: CentOS, Ubuntu, Debian, FreeBSD, CoreOS oder Windows Server

Dieser Artikel enthält eine kurze Übersicht über die Server-Betriebssysteme, die als Vorlagen für Vultr angeboten werden. CentOS CentOS ist eine Open-Source-Version von RHEL (Re

Radio-Streaming auf FreeBSD 10 mit IceCast und Ices

Radio-Streaming auf FreeBSD 10 mit IceCast und Ices

Im folgenden Tutorial wird erläutert, wie Sie einen IceCast-Radio-Streaming-Server einrichten und Audiodateien (Musik oder Podcasts) auf der FreeBSD-Plattform abspielen. Diese Tutoria

So installieren Sie Omeka Classic 2.4 CMS auf einem FreeBSD 11 FAMP VPS

So installieren Sie Omeka Classic 2.4 CMS auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Omeka Classic 2.4 CMS ist eine kostenlose Open-Source-Plattform für digitales Publizieren und Content Management System (CMS) für den Austausch von Digita

So sichern Sie FreeBSD mit der PF Firewall

So sichern Sie FreeBSD mit der PF Firewall

Dieses Tutorial zeigt Ihnen, wie Sie Ihren FreeBSD-Server mithilfe der OpenBSD PF-Firewall schützen. Wir gehen davon aus, dass Sie eine saubere FreeBSD-Installation bereitgestellt haben. B.

So installieren Sie WonderCMS unter FreeBSD 12

So installieren Sie WonderCMS unter FreeBSD 12

Verwenden Sie ein anderes System? WonderCMS ist ein Open Source, schnelles und kleines Flatfile-CMS, das in PHP geschrieben wurde. WonderCMS-Quellcode wird auf Github gehostet. Dieser Leitfaden wird

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.