Wissensdatenbank
1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Diese Anleitung bezieht sich auf die ODBC-Funktionen von PHP.
Die ODBC-Funktionen von PHP werden nur auf Serveur Cloud unterstĂŒtzt.
Open Database Connectivity Funktionen
Dabei handelt es sich um Funktionen, die zur Interaktion mit Datenbanken ĂŒber die ODBC-Schnittstelle (Open Database Connectivity) verwendet werden, einen Standard zum einheitlichen Zugriff auf Datenquellen. Hier sind einige Beispiele fĂŒr die Verwendung der ODBC-Funktionen von PHP:
- Daten aus einer externen Datenbank lesen und auf Ihrer Website anzeigen
- Daten in eine externe Datenbank einfĂŒgen oder Ă€ndern
- Komplexe Abfragen an einer externen Datenbank durchfĂŒhren
Dieser Leitfaden erklÀrt, wie man ohne das Modul PECL SSH2 client
, das auf den Webhostings und Cloud-Servern von Infomaniak nicht verfĂŒgbar ist, arbeitet, indem man stattdessen die Bibliothek phpseclib
verwendet, die in nativem PHP funktioniert und keine spezielle Erweiterung erfordert.
Vorwort
- Die Verwendung von
PECL SSH2 client
fĂŒhrt zu Fehlern wieNo compatible key exchange algorithms found
oderUnable to exchange encryption keys
in der letzten verfĂŒgbaren Version. Phpseclib
ermöglicht:- Die SSH-Authentifizierung per Passwort oder privatem SchlĂŒssel.
- Die AusfĂŒhrung von Fernbefehlen.
- Den sicheren Dateitransfer (SFTP).
- Das Management von SSH-SchlĂŒsseln.
phpseclib verwenden
Um eine SSH-Verbindung in ein PHP-Skript zu integrieren, verwenden Sie phpseclib
wie folgt:
use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;
$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));
if (!$ssh->login('utilisateur', $key)) {
exit('Authentication Failed');
}
echo $ssh->exec('ls -la');
Infomaniak fĂŒhrt keine Sicherungen der VPS Cloud / VPS Lite durch.
Sie können dennochâŠ
- ⊠ein Snapshot des Servers erstellen (Sicherung nicht automatisiert)
- ⊠den Server auf Swiss Backup sichern (Sicherung automatisiert)
Dieser Leitfaden hilft Ihnen beispielsweise, wenn Sie ein Paket wie pymysql
bereitstellen möchten und dieses eine höhere Python-Version als die auf Ihrem Hosting angebotene erfordert.
Vorbemerkung
- Anaconda ist eine freie und Open-Source-Distribution der Programmiersprache Python. Diese Distribution zielt darauf ab, die Verwaltung von Paketen und den Einsatz zu vereinfachen.
- Es wird empfohlen, conda zu verwenden, das mit einer aktuellen Version von Python geliefert wird und sich im Benutzerbereich installiert, sodass es zu keinen Konflikten mit dem System-Python kommt (wie in einer virtuellen Umgebung, die immer eine Systeminstallation der gewĂŒnschten Version erfordert).
- Nehmen Sie die offizielle Dokumentation zur Kenntnis.
â ïž FĂŒr zusĂ€tzliche Hilfe kontaktieren Sie einen Partner oder starten Sie kostenlos eine Ausschreibung â erfahren Sie auch mehr ĂŒber die Rolle des Hosters.
Installer herunterladen
uid165116@od-12345:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
--2021-07-28 18:21:10-- https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.131.3, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89026327 (85M) [application/x-sh]
Saving to: âMiniconda3-py37_4.10.3-Linux-x86_64.shâ
Miniconda3-py37_4.10.3-Linux-x86_64.sh 100% [==============================================>] 84.90M 203MB/s in 0.4s
18:21:11 (100 MB/s) - âMiniconda3-py37_4.10.3-Linux-x86_64.shâ saved [89026327/89026327]
Die PrĂŒfsumme ĂŒberprĂŒfen
uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK"
OK
Installation starten
uid165116@od-12345:~$ bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b
PREFIX=/home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
added / updated specs:
- _libgcc_mutex==0.1=main
- _openmp_mutex==4.5=1_gnu
- brotlipy==0.7.0=py37h27cfd23_1003
- ca-certificates==2021.7.5=h06a4308_1
- certifi==2021.5.30=py37h06a4308_0
- cffi==1.14.6=py37h400218f_0
- chardet==4.0.0=py37h06a4308_1003
- conda-package-handling==1.7.3=py37h27cfd23_1
- conda==4.10.3=py37h06a4308_0
- cryptography==3.4.7=py37hd23ed53_0
- idna==2.10=pyhd3eb1b0_0
- ld_impl_linux-64==2.35.1=h7274673_9
- libffi==3.3=he6710b0_2
- libgcc-ng==9.3.0=h5101ec6_17
- libgomp==9.3.0=h5101ec6_17
- libstdcxx-ng==9.3.0=hd4cf53a_17
- ncurses==6.2=he6710b0_1
- openssl==1.1.1k=h27cfd23_0
- pip==21.1.3=py37h06a4308_0
- pycosat==0.6.3=py37h27cfd23_0
- pycparser==2.20=py_2
- pyopenssl==20.0.1=pyhd3eb1b0_1
- pysocks==1.7.1=py37_1
- python==3.7.10=h12debd9_4
- readline==8.1=h27cfd23_0
- requests==2.25.1=pyhd3eb1b0_0
- ruamel_yaml==0.15.100=py37h27cfd23_0
- setuptools==52.0.0=py37h06a4308_0
- six==1.16.0=pyhd3eb1b0_0
- sqlite==3.36.0=hc218d9a_0
- tk==8.6.10=hbc83047_0
- tqdm==4.61.2=pyhd3eb1b0_1
- urllib3==1.26.6=pyhd3eb1b0_1
- wheel==0.36.2=pyhd3eb1b0_0
- xz==5.2.5=h7b6447c_0
- yaml==0.2.5=h7b6447c_0
- zlib==1.2.11=h7b6447c_3
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
brotlipy pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
ca-certificates pkgs/main/linux-64::ca-certificates-2021.7.5-h06a4308_1
certifi pkgs/main/linux-64::certifi-2021.5.30-py37h06a4308_0
cffi pkgs/main/linux-64::cffi-1.14.6-py37h400218f_0
chardet pkgs/main/linux-64::chardet-4.0.0-py37h06a4308_1003
conda pkgs/main/linux-64::conda-4.10.3-py37h06a4308_0
conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.3-py37h27cfd23_1
cryptography pkgs/main/linux-64::cryptography-3.4.7-py37hd23ed53_0
idna pkgs/main/noarch::idna-2.10-pyhd3eb1b0_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
libgomp pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
pip pkgs/main/linux-64::pip-21.1.3-py37h06a4308_0
pycosat pkgs/main/linux-64::pycosat-0.6.3-py37h27cfd23_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-20.0.1-pyhd3eb1b0_1
pysocks pkgs/main/linux-64::pysocks-1.7.1-py37_1
python pkgs/main/linux-64::python-3.7.10-h12debd9_4
readline pkgs/main/linux-64::readline-8.1-h27cfd23_0
requests pkgs/main/noarch::requests-2.25.1-pyhd3eb1b0_0
ruamel_yaml pkgs/main/linux-64::ruamel_yaml-0.15.100-py37h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sqlite pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
tqdm pkgs/main/noarch::tqdm-4.61.2-pyhd3eb1b0_1
urllib3 pkgs/main/noarch::urllib3-1.26.6-pyhd3eb1b0_1
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
yaml pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Preparing transaction: done
Executing transaction: done
installation finished.
Conda starten
uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)
pymysql installieren (zum Beispiel)
(base) uid165116@od-12345:~$ python3 -V
Python 3.7.10
(base) uid165116@od-12345:~$ pip3 install pymysql --user
Collecting pymysql
Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
|ââââââââââââââââââââââââââââââââ| 43 kB 892 kB/s
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2
Diese Anleitung erklĂ€rt, wie Sie eine Datei angeben, die vor der gewĂŒnschten Seite oder zu Beginn jedes auf Ihrem Server ausgefĂŒhrten PHP-Skripts geladen wird, als ob sie mit der Funktion require()
aufgerufen wurde, aber globaler mit der PHP-Direktive auto_prepend_file
.
Vorbemerkung
- Um beispielsweise die Header einer Website zu deklarieren, können Sie eine Datei
headers.php
erstellen, die PHP-Funktionenheader()
enthĂ€lt und die am Anfang jeder PHP-Datei eingefĂŒgt wirdâŠ- âŠ ĂŒber eine Datei
.user.ini
(ordnerspezifisch), - ⊠oder ĂŒber die Konfiguration der Website im Manager (global), wie unten beschrieben.
- âŠ ĂŒber eine Datei
Eine Datei global vom Manager aus einbinden
Um auf die Verwaltung der Website zuzugreifen:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigen?).
- Klicken Sie direkt auf den Name des betreffenden Produkts:
- Klicken Sie auf Verwalten unter Erweiterte Einstellungen:
- Klicken Sie auf die Registerkarte PHP / Apache.
- FĂŒllen Sie die betreffende Zeile aus, indem Sie den Pfad zur einzufĂŒgenden Datei eingeben.
- Klicken Sie auf die SchaltflÀche zum Speichern:
Nach der Definition dieser Direktive werden alle PHP-Seiten auf Ihrem Server automatisch die angegebene Datei einbinden, bevor sie ihren eigenen Code ausfĂŒhren.
Die in einer Datei .htaccess
definierten Header gelten nur fĂŒr nicht-PHP-Inhalte (also statische Inhalte).
Infomaniak verwendet php-fpm
, das die verschiedenen Header ĂŒber apache fast_cgi
empfÀngt. In der RFC von cgi_www gehört der Header Strict-Transport-Security
nicht zu den ĂŒber CGI ĂŒbermittelten Headern, und die Apache-Dokumentation bestĂ€tigt dies. Nehmen Sie sich diese andere RFC zur Kenntnis.
â ïž FĂŒr zusĂ€tzliche Hilfe kontaktieren Sie einen Partner oder starten Sie kostenlos eine Ausschreibung â erfahren Sie auch die Rolle des Hosters.
Die Infomaniak-Infrastruktur ĂŒbertrĂ€gt keine Virtualisierungsanweisungen an die VPS Cloud / VPS Lite; es ist daher keine verschachtelte Virtualisierung möglich (Virtualisierung, die innerhalb einer bereits virtualisierten Umgebung ablaufen wĂŒrde), da dies insbesondere bei Live-Migrationen zu Problemen fĂŒhrt.
Dieser Leitfaden befasst sich mit der Erstellung privater Netzwerke zwischen verschiedenen Infomaniak-Hosting-Angeboten wie VPS Cloud / VPS Lite, Public Cloud, NAS Synology, etc.
Ein VLAN zwischen VPS erstellen
Es ist nicht möglich, ein privates Netzwerk (VLAN) zwischen VPS Cloud / VPS Lite und anderen Produkten, wie z.B. NAS Synology, zu erstellen, da sie in verschiedenen Netzwerken installiert sind.
Es ist jedoch möglich, ein VLAN zwischen mindestens 10 VPS Cloud / VPS Lite zu erstellen, die Ihnen gehören (kontaktieren Sie den Infomaniak-Support), jedoch kann ein dediziertes privates Netzwerk nicht mit einem anderen kommunizieren.
Es wird empfohlen, auf das Angebot Public Cloud zu migrieren, um solche privaten Netzwerke zwischen VM zu erstellen.
Diese Anleitung bezieht sich auf die Installation von PHP-Erweiterungen fĂŒr Webhosting Infomaniak.
Verwendung von Zend PHP-Erweiterungen
- Zend Guard Loader ist eine PHP-Erweiterung, die es ermöglicht, ĂŒber Zend Guard verschlĂŒsselte PHP-Skripte auszufĂŒhren.
- Zend Guard Loader ist standardmĂ€Ăig fĂŒr PHP <= 5.6 auf allen Webhostings installiert und fĂŒr PHP-Versionen >= 5.6 nicht verfĂŒgbar.
- Seit PHP 5.3.x wurde das Modul Zend Optimizer durch ZendGuardLoader ersetzt
- Das ZendOPCache Modul erfordert einen Serveur Cloud konfiguriert mit PHP 5.5 mindestens
Um Perl
-Module auf einem Infomaniak Cloud-Server zu verwenden, mĂŒssen sie im Benutzerverzeichnis installiert und der vollstĂ€ndige Pfad in den Skripten definiert werden.
Sie können Ihre Module somit frei installieren und aktualisieren.
Diese Anleitung bezieht sich auf Redis
, ein PHP-Modul fĂŒr Serveur Cloud Infomaniak.
Vorbemerkung
Redis
wird mit PHP verwendet, um die Leistung zu beschleunigen, indem es als Cache fĂŒr temporĂ€re Daten dient und Benutzersitzungen verwaltet, wodurch die Effizienz von Webanwendungen verbessert wird.Redis
ermöglicht auch die Einrichtung von Warteschlangensystemen und die temporĂ€re Speicherung von Daten fĂŒr asynchrone Aufgaben oder Statistiken.
Redis installieren
Redis
wird ĂŒber Fast Installer installiert, die Anwendungen sind in wenigen Klicks auf Serveur Cloud verfĂŒgbar:
- Nach der Installation ist
Redis
ĂŒber die IP/den Portlocalhost:6379
oder127.0.0.1:6379
erreichbar - Das Passwort fĂŒr
Redis
muss zwischen 15 und 99 Zeichen (einschlieĂlich) lang sein.
Dieser Leitfaden erklÀrt, wie Sie den Wert max_children
auf einem Cloud-Server erhöhen, um die Anzahl der gleichzeitig verwendbaren PHP-Prozesse fĂŒr Ihre Website zu erhöhen. Dies ist sehr nĂŒtzlich, um Probleme mit dem endlosen Laden von Seiten Ihrer Website zu beheben.
Vorwort
- StandardmĂ€Ăig ist die Grenze von
max_children
auf allen Hostings auf 20 festgelegt.- Obwohl es möglich ist, diesen Wert ĂŒber den Infomaniak-Manager zu erhöhen, wird die Grenze von
max_children
automatisch an die Konfiguration Ihres Cloud-Servers angepasst. - Um diese Grenze auf einem Shared Hosting zu erhöhen, migrieren Sie zu einem Cloud-Server.
- Obwohl es möglich ist, diesen Wert ĂŒber den Infomaniak-Manager zu erhöhen, wird die Grenze von
- Um zu verstehen, wie Sie die benötigten
max_children
genau berechnen, lesen Sie diesen Artikel zu diesem Thema.
Erhöhung des Wertes max_children
Voraussetzungen
- Stellen Sie sicher, dass Sie ĂŒber die notwendigen Ressourcen auf dem Cloud-Server verfĂŒgen.
- Stellen Sie sicher, dass nicht alle Ressourcen des Cloud-Servers genutzt werden; wenn diese vollstÀndig genutzt werden, hat die Erhöhung des Wertes
max_children
keine Wirkung (Ressourcen des Cloud-Servers Ă€ndern). - Ăberwachen Sie die Ressourcen Ihres Servers, falls die Ressourcen Ihres Servers ausgeschöpft sind, mĂŒssen Sie die Optimierung der Prozesse und Ihrer Website ĂŒberprĂŒfen, bevor Sie den Wert
max_children
erhöhen. - ĂberprĂŒfen Sie die PHP-Fehlerberichte im Ordner
/ik-logs
(Master-Prozess-PHP-Protokolle - Dateiname: php-fpm.log), um zu ĂŒberprĂŒfen, ob die Grenze "max_children
" ĂŒberschritten wurde... Beispiel fĂŒr einen Fehler:[05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it
Um auf die Verwaltung der PHP/Apache-Parameter der Website zuzugreifen, fĂŒr die der Wert max_children
auf einem Cloud-Server erhöht werden soll, lesen Sie diesen anderen Leitfaden.
Sie können insbesondere...
- ⊠einen neuen Wert fĂŒr
max_children
auswÀhlen:
Vergessen Sie nicht, die Ănderungen am Ende der Seite zu speichern.
Grenzen je nach Server
Grenzen der max_children
je nach Ressourcen des Cloud-Servers:
Konfiguration Cloud-Server | max_children |
---|---|
2 CPU / 6 GB RAM | 20 |
4 CPU / 12 GB RAM | 40 |
6 CPU / 18 GB RAM | 60 |
8 CPU / 24 GB RAM | 80 |
12 CPU / 36 GB RAM | 120 |
16 CPU / 48 GB RAM | 160 |
24 CPU / 72 GB RAM | 240 |
32 CPU / 96 oder 128 GB RAM | 320 |
Diese Anleitung erklĂ€rt, wie man die Variablen der PHP-CLI-Erweiterung Ă€ndert, die standardmĂ€Ăig auf dem Serveur Cloud verfĂŒgbar ist.
PHP-CLI Variablen Àndern
Um auf die PHP-Erweiterungen des Server Cloud zuzugreifen:
- Klicken Sie hier, um auf die Verwaltung Ihres Serveur Cloud im Manager Infomaniak zuzugreifen (Hilfe benötigen?).
- Klicken Sie direkt auf den Namen, der dem betreffenden Serveur Cloud zugewiesen ist.
- Klicken Sie auf PHP-Erweiterungen im linken SeitenmenĂŒ.
- Klicken Sie auf das AktionsmenĂŒ âź rechts neben PHP-CLI im angezeigten Tableau.
- Klicken Sie auf Konfigurieren:
- Ăndern Sie die folgenden Variablen:
allow_url_fopen
,allow_url_include
,memory_limit
,max_execution_time
,short_open_tag
,allow_local_infile
- Klicken Sie auf die blaue SchaltflÀche Speichern.
Diese Anleitung erklÀrt, wie Sie den Wert der Direktive php_value include_path
Ă€ndern.
include_path Àndern
Wie jeder andere PHP-Parameter wird include_path in der Datei .user.ini festgelegt.
Hier ist ein Beispiel fĂŒr einen Pfad, der in der Datei .user.ini
verwendet werden kann:
include_path = .:/home/clients/123456789a12345b12fc345d/web/www.domainetest.abc/public/abc/include
Nehmen Sie diese Anleitung zur Kenntnis, um zu ĂŒberprĂŒfen, ob Ihre neue Direktive berĂŒcksichtigt wird.
Diese Anleitung erklÀrt, wie Sie die Konfiguration eines VPS Cloud / VPS Lite Àndern.
SpeichergröĂe bei VPS Cloud / VPS Lite Ă€ndern
Um auf den VPS Cloud / VPS Lite zuzugreifen:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Brauchen Sie Hilfe?).
- Klicken Sie auf das AktionsmenĂŒ âź rechts neben dem betreffenden Objekt in der angezeigten Tabelle.
- Klicken Sie auf Angebot Àndern:
- FĂŒhren Sie die gewĂŒnschten Anpassungen durch und beenden Sie den Vorgang unten:
- Es ist notwendig, das Volumen zu erweitern nach einer Erhöhung des Speichervolumens.
Diese Anleitung erklÀrt, wie bestimmte eingehende und/oder ausgehende Ports in der Firewall (oder Firewall) eines Servers VPS Cloud / VPS Lite freigegeben werden.
Auf das Verwaltungstool zugreifen
Um die Firewall von VPS Cloud / VPS Lite zu verwalten:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigen?).
- Klicken Sie direkt auf den Namen des betreffenden Produkts.
- Klicken Sie auf Firewall im linken SeitenmenĂŒ:
Regel zum Zulassen von Ping auf VPS Cloud / VPS Lite
Um eine Regel fĂŒr die Firewall hinzuzufĂŒgen:
- Klicken Sie auf die blaue SchaltflĂ€che, um eine Regel hinzuzufĂŒgen.
- Klicken Sie auf Manuelle Auswahl.
- WĂ€hlen Sie ICMP aus:
- BestÀtigen Sie unten auf der Seite.
Globale Ausgangsport 25 öffnen
Der ausgehende Port 25
(SMTP-Mail-Port) ist standardmĂ€Ăig gesperrt.
Es wird empfohlen, eine Lösung fĂŒr den authentifizierten Versand zu verwenden.
Um diesen Port zu öffnen, kontaktieren Sie den Infomaniak-Support und begrĂŒnden Sie Ihre Anfrage.
Infomaniak bietet keine VerschlĂŒsselung der virtuellen Festplatte fĂŒr VPS Cloud / VPS Lite, stellt aber ein BlockgerĂ€t bereit, das Sie formatieren und verschlĂŒsseln können, wenn Sie möchten.
Diese Anleitung bezieht sich auf den Swap auf Serveur Cloud.
Swap und RAM-Speicher
Es kann Swap geben, auch wenn der RAM-Verbrauch niedrig ist. TatsĂ€chlich kann das System den Swap jederzeit verwenden, wenn es dies fĂŒr nĂŒtzlich hĂ€lt.
Der Swap ist kein Speicherbereich, der nur dann genutzt wird, wenn kein RAM frei ist, obwohl dies oft seine Hauptnutzung ist.
Wenn Sie mehr erfahren möchten, gibt es einen Parameter "swappiness", der festlegt, wie das System den Swap verwendet. Der Standardwert ist 60
und er kann nicht geÀndert werden.
Diese Anleitung erklÀrt, wie man sich mit Elasticsearch verbindet, nachdem es auf Magento von einem Serveur Cloud Infomaniak installiert wurde.
Voraussetzungen
- Ăber einen Infomaniak Cloud-Server verfĂŒgen.
- Installieren Magento.
- Kontaktieren Sie den Infomaniak-Support fĂŒr die Installation von Elasticsearch.
Anmeldeinformationen
Sobald Sie sich in Ihrem Magento-Bereich angemeldet haben, mĂŒssen Sie die folgenden Informationen angeben, um Elasticsearch zu starten:
- Hostname:
localhost
oder127.0.0.1
- Port :
9200
- PrÀfix:
magento2
â ïž FĂŒr zusĂ€tzliche Hilfe kontaktieren Sie einen Partner oder starten Sie kostenlos eine Ausschreibung â erfahren Sie auch mehr ĂŒber die Rolle des Hosters.
Dieser Leitfaden stellt mehrere Beispiele fĂŒr die Verwendung von Varnish auf Serveur Cloud Infomaniak vor.
â ïž FĂŒr zusĂ€tzliche Hilfe kontaktieren Sie einen Partner oder starten Sie kostenlos eine Ausschreibung â erfahren Sie auch mehr ĂŒber die Rolle des Hosters.
Varnish-Konfiguration
Nach der Installation umfasst die Konfiguration von Varnish wichtige Regeln fĂŒr das Caching und das Purging. Achten Sie darauf, keine unerwĂŒnschten IP-Adressen versehentlich zu autorisieren.
Hier ist ein Beispiel fĂŒr eine grundlegende Konfigurationsdatei mit einigen hĂ€ufigen FĂ€llen und verschiedenen Aktionen/Regeln in einem einzigen Beispiel:
vcl 4.0;
# Configuration du backend par défaut
backend default {
.host = "127.0.0.80"; # Adresse IP du backend
.port = "80"; # Port du backend
}
# Définition d'une liste de contrÎle d'accÚs (ACL) pour les IPs autorisées à purger le cache
acl purge {
"localhost"; # IP locale
"1.2.3.4"; # IP de votre domicile
"42.42.42.0"/24; # Plage d'IP publique de votre entreprise
! "42.42.42.7"; # Exclusion d'une IP spĂ©cifique (ex : un collĂšgue gĂȘnant)
}
# Traitement des requĂȘtes Ă leur rĂ©ception par Varnish
sub vcl_recv {
# Autoriser les requĂȘtes de purge
if (req.method == "PURGE") {
# Vérification si l'IP du client est autorisée à purger
if (!client.ip ~ purge) { # 'purge' fait référence à l'ACL définie plus haut
# Retourne une page d'erreur si l'IP n'est pas autorisée
return (synth(405, "Cette IP n'est pas autorisĂ©e Ă envoyer des requĂȘtes PURGE."));
}
# Si l'IP est autorisĂ©e, purger le cache pour cette requĂȘte
return (purge);
}
# Autoriser la purge de toutes les images via une requĂȘte PURGEALL
if (req.method == "PURGEALL" && req.url == "/images") {
if (!client.ip ~ purge) {
return (synth(405, "Cette IP n'est pas autorisĂ©e Ă envoyer des requĂȘtes PURGE."));
}
# Invalider tous les objets en cache correspondant Ă des images
ban("req.url ~ \.(jpg|png|gif|svg)$");
return (synth(200, "Images purgées."));
}
# Ne pas mettre en cache les pages avec une autorisation (header Authorization)
if (req.http.Authorization) {
# Passer la requĂȘte directement au backend sans la mettre en cache
return (pass);
}
}
# Traitement de la réponse du backend avant de la renvoyer au client
sub vcl_backend_response {
# Mise en cache des images pour une durée de 1 jour
if (beresp.http.content-type ~ "image") {
set beresp.ttl = 1d;
}
# Si le backend indique que la rĂ©ponse ne doit pas ĂȘtre mise en cache, respecter cette consigne
if (beresp.http.uncacheable) {
set beresp.uncacheable = true;
}
}
Purge von der CLI-Schnittstelle
Ab diesem Punkt gelten die in der obigen Konfiguration festgelegten Regeln fĂŒr alle Anfragen. Wenn die konfigurierte Website "domain.xyz" ist, können Sie einfach das CLI-Tool "curl
" verwenden und folgendes tun:
# Envoyer une requĂȘte PURGE pour purger la page d'accueil de "domain.xyz"
$ curl -X PURGE https://domain.xyz/
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Erreur 200 : Purge effectuée</h1>
<p>La page a été purgée avec succÚs.</p>
<h3>Guru Meditation:</h3>
<p>XID: 2</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
Und dort wurde die Startseite geleert. Oder um eine andere URL zu leeren, zeigen Sie einfach die Anfrage auf diese:
# Envoyer une requĂȘte PURGE pour purger un fichier spĂ©cifique Ă "domain.xyz"
$ curl -X PURGE https://domain.xyz/some_path/some_file.html
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Erreur 200 : Purge effectuée</h1>
<p>Le fichier a été purgé avec succÚs.</p>
<h3>Guru Meditation:</h3>
<p>XID: 4</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
Oder, wie in der VCL-Konfiguration angegeben, alle Bilder löschen:
# Envoyer une requĂȘte PURGEALL pour purger toutes les images dans "domain.xyz"
$ curl -X PURGEALL https://domain.xyz/images
# Réponse renvoyée par le serveur Varnish
<!DOCTYPE html>
<html>
<head>
<title>200 Purged images</title>
</head>
<body>
<h1>Erreur 200 : Images purgées</h1>
<p>Toutes les images ont été purgées avec succÚs.</p>
<h3>Guru Meditation:</h3>
<p>XID: 32770</p>
<hr>
<p>Serveur de cache Varnish</p>
</body>
</html>
Purge von einem CMS
Dies ist ein bisschen schwieriger zu veranschaulichen, da es viele Möglichkeiten gibt, die Caching-Verwaltung von einem Backend aus zu steuern. Im obigen Konfigurationsbeispiel wird eine Kontrolle ĂŒber den Header "Uncacheable
" hinzugefĂŒgt, die das Caching deaktiviert. Mit dieser Option könnte jedes CMS einfach diesen Header in der Antwort festlegen, um das Caching dieser Anfrage zu deaktivieren, z.B.
Von jedem PHP-Code aus und mit der obigen Konfiguration können Sie einfach eine HTTP-Anfrage senden und diesen Ausschnitt verwenden, um einen PURGE des Caches durchzufĂŒhren:
<?php
if ($curl = curl_init("http://127.0.0.1/some_url")) {
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PURGE",
CURLOPT_HTTPHEADER => [
"Host: {$_SERVER['HTTP_HOST']}"
]
]);
curl_exec($curl);
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
echo "Cache purged!";
}
curl_close($curl);
}
?>
Mehr erfahren
NĂŒtzliche Links zum Konfigurationssprache Varnish (VCL) zur Steuerung der Anforderungsverarbeitung, des Routings, der Caching und mehrere andere Aspekte:
Es ist nicht möglich, zusĂ€tzliche IP-Adressen fĂŒr einen VPS Cloud / VPS Lite zu bestellen und zu erhalten.
Die Alternativen wĂ€renâŠ
- ⊠eine Hosting-Art Public Cloud (es ist möglich, so viele IP-Adressen hinzuzufĂŒgen, wie gewĂŒnscht),
- ⊠das Tool Newsletter nach Bedarf.