Wissensdatenbank
1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Die PHP-Erweiterung JavaScript_Object_Notation ist verfügbar. Sie ist nützlich, um JSON-Daten in Ihren PHP-Webanwendungen zu verarbeiten, sei es zum Austausch von Daten mit Webdiensten, zum Speichern von Konfigurationen oder zur Kommunikation mit Frontend-Anwendungen, die in JavaScript geschrieben sind.
Diese Anleitung erklärt, wie Sie ein bestehendes Webhosting Angebot ändern, um beispielsweise zusätzliche Websites zu hosten, wenn das Maximale Websites-Kontingent erreicht ist, oder eine neuere Hosting-Lösung zu erhalten, um die neuesten Versionen von PHP & MySQL zu nutzen.
Webhosting-Angebot ändern, um…
… zusätzliche Websites, Speicherplatz oder IP-Adressen zu bestellen
Um auf den Webhosting-Konfigurator zuzugreifen:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
- Klicken Sie auf das Aktionsmenü ⋮ rechts neben dem betreffenden Element.
- Klicken Sie auf Angebot ändern:
- Erhöhen Sie die Werte, die Sie ändern möchten.
- Klicken Sie auf die Schaltfläche Weiter, um zur Zahlung der Änderungen am Hosting zu gelangen:

… auf einen neueren Server wechseln
Um eine Hosting-Lösung auf einem neueren Server zu erhalten und somit die neuesten Versionen von PHP & MySQL zu nutzen, können Sie entweder…
- … diese andere Anleitung lesen und das dort beschriebene Verfahren bis zum Ende befolgen:

- … diese andere Anleitung lesen und das dort beschriebene Verfahren bis zum Punkt 4 befolgen, dann auf die Schaltfläche zum Aktualisieren klicken:

Wenn kein Informationsbanner angezeigt wird, bedeutet dies, dass Sie bereits ein aktuelles Hosting-Angebot nutzen.
Diese Anleitung erklärt, wie Sie einem Webhosting, das im Infomaniak Manager innerhalb Ihrer Organisation vorhanden ist, einen anderen Namen geben.
Vorwort
- Ein Webhosting ist, vereinfacht ausgedrückt, der Speicherplatz, der für die Bereitstellung einer oder mehrerer Ihrer Websites reserviert ist.
- Standardmäßig trägt Ihr Infomaniak-Hosting den Namen der ersten Website, die Sie zu diesem Hosting hinzufügen:
- Sie besitzen die Domain "domaine.xyz" und möchten eine Website mit dieser Domain...
- Sie kaufen ein Webhosting, das automatisch "domaine.xyz" benannt wird, auch wenn Sie später eine zweite Website "toto.com" hinzufügen.
- Das Hosting kann in einen generischeren Namen wie "Meine Websites" umbenannt werden, um seinen tatsächlichen Inhalt besser widerzuspiegeln.
- Das Umbenennen dient dazu, die Lesbarkeit/Verständlichkeit der im Manager aufgeführten Produkte zu verbessern und hat keinerlei Auswirkungen auf die Adressen der Websites: Nehmen Sie sich diese andere Anleitung zur Hand, um den Domainnamen zu ändern.
Webhosting umbenennen
Um auf das Webhosting zuzugreifen, um die Namensänderung vorzunehmen:
- Hier klicken, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
- Klicken Sie direkt auf den Namen, der dem betreffenden Produkt zugewiesen wurde.
- Klicken Sie auf die Schaltfläche Verwalten.
- Klicken Sie auf Namen ändern:

- Geben Sie den gewünschten Namen ein.
- Klicken Sie auf Speichern.
Diese Anleitung behandelt die ODBC-Funktionen von PHP.
Die ODBC-Funktionen von PHP werden nur auf Servern Cloud unterstützt.
Open Database Connectivity Funktionen
Es handelt sich um Funktionen, die zur Interaktion mit Datenbanken über die ODBC-Schnittstelle (Open Database Connectivity) verwendet werden, einem 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 einer externen Datenbank einfügen oder ändern
- Komplexe Abfragen an einer externen Datenbank durchführen
Die Hosting-Plattform für Ihre Websites *.perso.ch, *.users.ch, *.geneva-link.ch wird aktualisiert. Dieser Leitfaden zeigt Ihnen, wie Sie sich mit Ihrem FTP-Speicherplatz verbinden.
Änderung der Anmeldeinformationen
Die aktuelle Hosting-Plattform verwendet ein Präfix für Ihren FTP-Benutzernamen. Dieses Präfix hat folgendes Format: persoch_
Wenn Ihr Benutzername also infomaniak war, müssen Sie sich nun mit dem folgenden Benutzer über FTP verbinden: persoch_infomaniak.
Dieser Leitfaden erklärt, wie man ohne das Modul PECL SSH2 client arbeitet, das auf den Webhostings und Cloud-Servern von Infomaniak nicht verfügbar ist, und stattdessen die Bibliothek phpseclib verwendet, die in nativem PHP funktioniert, ohne dass eine spezielle Erweiterung erforderlich ist.
Vorwort
- Die Verwendung von
PECL SSH2 clientführt zu Fehlern wieNo compatible key exchange algorithms foundoderUnable to exchange encryption keysin der letzten verfügbaren Version. Phpseclibermöglicht:- Die SSH-Authentifizierung per Passwort oder privatem Schlüssel.
- Die Ausführung von Remote-Befehlen.
- 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');Diese Anleitung bezieht sich auf das Apache-Modul mod_auth_mysql, das die Authentifizierung von Benutzern und die Zugriffsberechtigung über eine MySQL-Datenbank ermöglicht.
Mit einer Shared-Hosting-Lösung
Das Modul mod_auth_mysql ist nicht verfügbar mit Shared-Hosting-Lösungen; Sie müssen einen Cloud-Server in Betracht ziehen oder PHP-Skripte und Sitzungen verwenden.
Dieser Leitfaden erklärt, wie Sie auf InnoDB bei Infomaniak zugreifen.
Verwenden Sie den MySQL-Speichermotor InnoDB
Sobald Ihr Infomaniak-Hosting Ihnen Zugriff auf MySQL / MariaDB-Datenbanken gewährt, ist InnoDB gleichzeitig verfügbar (zuvor MyISAM).
InnoDB bietet erweiterte Funktionen wie ACID-Transaktionen, Zeilenebenen-Sperren, Volltextindizes usw. Sie können diese Funktionen nutzen, indem Sie geeignete SQL-Anweisungen in Ihren Abfragen verwenden.
Diese Anleitung betrifft die Installation von PHP-Erweiterungen auf Webhosting von Infomaniak.
Verwendung von PHP-Erweiterungen Zend
- Zend Guard Loader ist eine PHP-Erweiterung, die das Ausführen von PHP-Skripten ermöglicht, die mit Zend Guard verschlüsselt wurden.
- Zend Guard Loader ist standardmäßig für PHP <= 5.6 auf allen Webhostings installiert und ist nicht für PHP-Versionen >= 5.6 verfügbar.
- Seit PHP 5.3.x wurde das Modul Zend Optimizer durch ZendGuardLoader ersetzt
- Die Erweiterung ZendOPCache erfordert einen Cloud-Server, der mit PHP 5.5 konfiguriert ist
Dieser Leitfaden betrifft YAZ, eine Softwarebibliothek, die zur Implementierung des Z39.50-Protokolls verwendet wird, ein Informationssuch- und -abrufprotokoll, das die Kommunikation zwischen verschiedenen Bibliotheksmanagementsystemen (BMS) wie PMB ermöglicht, das in Frankreich weit verbreitet ist.
Infomaniak für ein effektives Bibliotheksmanagement
Auf den Webhostings von Infomaniak wird PMB unterstützt und YAZ standardmäßig aktiviert.
Sollten Sie jedoch Fehler wie Call to undefined function yaz_connect() erhalten, müssen Sie Ports über den Manager öffnen. Der Port 210 ist der Standardport, der für die Z39.50-Kommunikation verwendet wird, zögern Sie jedoch nicht, die Dokumentation Ihrer Anwendungen zu konsultieren.
Für die alten Infomaniak-Hosting-Tarife sollte ein Angebotswechsel in Betracht gezogen werden.
Der Zugriff auf die Systembefehle who und users ist für LDAP-Benutzer auf allen Infomaniak-Servern verboten.
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, jedoch globaler mit der PHP-Direktive auto_prepend_file.
Vorwort
- Um beispielsweise die Header einer Website zu deklarieren, können Sie eine Datei
headers.phperstellen, die PHP-Funktionenheader()enthält und die zu Beginn jeder PHP-Datei eingefügt wird…- … über eine Datei
.user.ini(eigen für einen Ordner), - … oder über die Konfiguration der Website im Manager (global), wie unten beschrieben.
- … über eine Datei
- Für zusätzliche Hilfe kontaktieren Sie einen Partner oder starten Sie eine kostenlose Ausschreibung — erfahren Sie auch mehr über die Rolle des Hosting-Anbieters.
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ötigt?).
- Klicken Sie direkt auf den Namen des betreffenden Produkts:
- Klicken Sie auf Verwalten unter Erweiterte Einstellungen:

- Klicken Sie auf die Registerkarte PHP / Apache.
- Vervollständigen Sie die betreffende Zeile, indem Sie den Pfad der einzubindenden Datei eingeben.
- Klicken Sie auf die Schaltfläche am unteren Rand der Seite, um zu speichern:

Nachdem Sie diese Direktive definiert haben, werden alle PHP-Seiten auf Ihrem Server die angegebene Datei automatisch 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 erhält. 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 Kenntnis von dieser anderen RFC.
Dieser Leitfaden hilft Ihnen, wenn Sie beispielsweise ein Paket wie pymysql bereitstellen möchten und dieses eine Python-Version benötigt, die höher ist als die auf Ihrem Hosting angebotene.
Vorwort
- Anaconda ist eine kostenlose und Open-Source-Distribution der Programmiersprache Python. Diese Distribution zielt darauf ab, die Verwaltung von Paketen und die Bereitstellung zu vereinfachen.
- Es wird empfohlen, conda zu verwenden, das mit einer aktuellen Version von Python geliefert wird und im Benutzerbereich installiert wird, sodass es keine Konflikte mit dem Python-System gibt (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 Hosting-Anbieters.
Installationsprogramm 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]Hash überprüfen
uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK"
OKInstallation 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/miniconda3added / 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_3The 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_3Preparing transaction: done
Executing transaction: done
installation finished.Conda starten
uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)pymysql installieren (beispielsweise)
(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
Dieser Leitfaden erklärt, wie Sie die Konfiguration einer Node.js-Website anpassen, die auf der Infomaniak-Infrastruktur gehostet wird, um das Verhalten Ihrer Anwendung entsprechend ihrer Entwicklung, ihrer Abhängigkeiten oder Ihrer technischen Präferenzen anzupassen.
Voraussetzungen
- Installieren Sie eine Node.js-Website auf Ihrem Hosting.
- Testen Sie Ihre Änderungen lokal, bevor Sie sie in der Produktion anwenden.
- Stellen Sie sicher, dass Ihre Skripte (
start,build) in Ihrer Dateipackage.jsondefiniert sind. - Wenn Sie die Struktur Ihres Projekts ändern, denken Sie daran, den Ausführungsordner und die zugehörigen Befehle anzupassen.
- Der im Manager definierte Listening-Port muss unbedingt mit dem in Ihrem Anwendungscode verwendeten übereinstimmen.
Auf die Konfiguration zugreifen
Jede Website verfügt über ein eigenes Dashboard, um die Anwendung zu steuern (start, stop, neustarten), die Ausführungsconsole zu konsultieren, die Node.js-Versionen zu verwalten, die Domänen zu konfigurieren und die SSL-Zertifikate zu aktivieren:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak-Manager zuzugreifen (Hilfe benötigt?).
- Klicken Sie direkt auf den Namen des betreffenden Produkts.
- Sie können die Konsole öffnen, das Projekt stoppen (es wird eine Wartungsseite angewendet) oder es neu starten.
- Um auf die erweiterten Einstellungen zuzugreifen, klicken Sie auf Verwalten unter Erweiterte Einstellungen:

- Klicken Sie auf die Registerkarte Node.js, um auf die Einstellungen zuzugreifen:

Änderungen anwenden
Dazu:
- Speichern Sie die Änderungen über die Manager-Oberfläche.
- Starten Sie Ihre Anwendung neu, damit die Änderungen übernommen werden.
Nehmen Sie sich diesen anderen Leitfaden im Falle von Problemen zur Kenntnis.
Hauptbefehle
Ausführungsverzeichnis
Das Ausführungsverzeichnis gibt den Speicherort auf dem Server an, an dem die Build- und Startbefehle ausgeführt werden. Es muss auf das Stammverzeichnis Ihrer Anwendung zeigen, d.h. dort, wo sich Ihre Datei package.json befindet.
Zum Beispiel können Sie für die Projektwurzel angeben:
./oder wenn sich Ihre Anwendung in einem Unterverzeichnis namens app befindet:
./appoder wenn sie sich in einem Verzeichnis backend befindet:
./backendBuild-Befehl (optional)
Wenn Ihre Node.js-Anwendung einen Kompilierungsschritt vor der Ausführung benötigt, geben Sie einen Build-Befehl in das dafür vorgesehene Feld ein. Dieser Befehl wird automatisch vor dem Start der Anwendung ausgeführt.
Zum Beispiel können Sie angeben:
npm install && npm run buildoder, wenn Sie yarn :
yarn install && yarn buildverwenden, wenn Ihr Projekt keine Kompilierung benötigt, kann dieses Feld leer gelassen werden.
Start-Befehl
Der Start-Befehl entspricht dem Befehl, der zum Starten Ihrer Anwendung verwendet wird. Er muss identisch mit dem sein, den Sie lokal verwenden, um das Projekt auszuführen.
Zum Beispiel können Sie angeben:
node index.jsnpm startoder
yarn startDieser Befehl muss es ermöglichen, den Server oder den Einstiegspunkt Ihrer Anwendung direkt zu starten, wie er in Ihrer Entwicklungsumgebung definiert ist.
Listening Port
Ihre Anwendung muss auf einem bestimmten Port “hören”, der im Manager definiert ist. Dieser Port wird Ihrer Anwendung über eine Umgebungsvariable PORT übermittelt.
Beispiel in Ihrem Node.js-Code:
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log(`Anwendung gestartet auf Port ${port}`);
});Stellen Sie sicher, dass dieser Port in Ihrem Code berücksichtigt wird.
Node.js-Version
Sie können die Node.js-Version auswählen, die Ihre Website verwenden soll. Es wird empfohlen, eine stabile und stets unterstützte Version zu verwenden, um die Sicherheit und Kompatibilität Ihrer Anwendung zu gewährleisten.
Dieser Leitfaden bietet Verbesserungsvorschläge, um die Antwortzeit Ihres Webhostings von Infomaniak zu reduzieren.
Vorwort
- TTFB, oder *Time To First Byte*, ist eine Maßeinheit, die verwendet wird, um die Reaktionsgeschwindigkeit eines Webservers zu bewerten.
- Der TTFB misst die Zeit zwischen einer HTTP-Anfrage von einem Benutzer oder einem Browser und dem Empfang des ersten Bytes der zu besuchenden Seite.
- Diese Verzögerung ist besonders wichtig. Sie kann zu den SEO-Kriterien gehören, die von Suchmaschinen wie Google berücksichtigt werden.
- Erleichtern Sie sich das Leben! Bei Bedarf können lokale Partner, die von Infomaniak empfohlen werden, diese Schritte übernehmen. Starten Sie eine kostenlose Ausschreibung. Sie kümmern sich um alles und entlasten Sie von technischen Details.
Verbesserungsvorschläge für den TTFB
Um die Website zu beschleunigen und einen besseren TTFB-Wert zu erzielen:
- Verwenden Sie ein Content Delivery Network (CDN).
- Optimieren Sie den Code der Website.
- Optimieren Sie die Datenbankabfragen.
- Begrenzen Sie die HTTP-Anfragen.
- Integrieren Sie CSS und JavaScript in Ihre HTML-Seiten, um nicht auf externe Ressourcen zurückgreifen zu müssen.
- Verwenden Sie ein RFPL-Cachesystem (*Response First, Process Later*).
Lesen Sie den Artikel von Criticalcase (auf Englisch) für weitere Informationen.
Serverantwortzeit testen
Wenn Sie Zweifel an der Serverantwortzeit haben, können Sie eine Datei index2.html erstellen, die auf derselben Ebene wie die Datei index.html (oder .php) gespeichert wird, und so einen Optimierungstest durchführen (z. B. domain.xyz/index2.html), ohne dass die Haupt-Website/CMS berücksichtigt wird.
Wenn die Antwortzeit normal ist, bedeutet dies, dass die Verzögerungen von der Website und nicht vom Server stammen.
Um weiter zu gehen
Nehmen Sie sich die folgenden Ressourcen vor:
- Google-Empfehlungen
- GTmetrix-Empfehlungen
- Testen Sie die Antwortgeschwindigkeit Ihrer Website aus mehreren Ländern
- Testen Sie die Antwortgeschwindigkeit Ihrer Website
- Website optimieren
ACHTUNG: Diese Methode ändert die Kerndateien von Magento, um die Überprüfung der erweiterten Berechtigungen (triggers, routines) zu deaktivieren, was eine riskante Praxis in Bezug auf Sicherheit und Stabilität ist und zukünftige Updates erschwert.
Heute ist Magento (nun Adobe Commerce oder Magento Open Source) eine moderne Plattform, die eine Serverumgebung erfordert, die ihren strengen Voraussetzungen entspricht. Die aktuelle stabile Version ist oft die 2.4.8 oder eine neuere Patch-Version. Diese Versionen erfordern zwingend aktuelle Technologien wie PHP 8.2/8.3, MySQL 8.0/MariaDB 10.6 und eine dedizierte Suchmaschine wie Elasticsearch oder OpenSearch.
Für jede neue Installation oder Migration wird dringend empfohlen, die neueste stabile Version ohne jegliche manuelle Änderung des Quellcodes zu verwenden. Sie müssen einen leistungsfähigen Hosting-Typ (Cloud-Server oder VPS/Dediziert) wählen, der den Zugriff auf alle erforderlichen Systemberechtigungen für einen sicheren und stabilen Betrieb garantiert.
Vermeiden Sie unbedingt die Verwendung des folgenden alten Patches. Beachten Sie, dass dieser Patch bei einer Installation auf einem Cloud-Server unnötig ist.
Dieser Leitfaden erklärt, wie Sie die Magento-Installation patchen können, damit diese auf einem gemeinsamen Hosting von Infomaniak durchgeführt werden kann, selbst ohne Berechtigungen vom Typ triggers & routines.
Behebung von Magento 2 Installationsproblemen
Bearbeiten Sie die Datei DbValidator.php:
--- setup/src/Magento/Setup/Validator/DbValidator.php.orig 2019-04-11 17:01:45.154767893 +0200
+++ setup/src/Magento/Setup/Validator/DbValidator.php 2019-04-13 21:37:02.560386985 +0200
@@ -150,12 +150,8 @@
'ALTER',
'CREATE TEMPORARY TABLES',
'LOCK TABLES',
- 'EXECUTE',
'CREATE VIEW',
- 'SHOW VIEW',
- 'CREATE ROUTINE',
- 'ALTER ROUTINE',
- 'TRIGGER'
+ 'SHOW VIEW'
];
// check global privilegesBei SOAP/PHPfpm-Fehlern
Je nach verwendeter Magento-Version funktioniert die Funktion soap nicht korrekt und kann die folgende Fehlermeldung zurückgeben: «Uncaught SoapFault exception: [Client] looks like we got no XML document».
Das Problem liegt nicht an einer falschen Serverkonfiguration, sondern an einem schlechten Design von Magento, das den Fall der Ausführung von PHP in einer FPM-Umgebung nicht berücksichtigt. Daher enthalten die von Magento generierten SOAP-Anfragen doppelte Header (nicht konform mit der SOAP-Spezifikation) und verursachen einen Fehler.
Nehmen Sie Kenntnis von dieser Lösung (nicht von Infomaniak entwickelt).
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_childrenauf allen Hostings auf 20 festgelegt.- Obwohl es möglich ist, diesen Wert über den Infomaniak Manager zu erhöhen, wird die Grenze von
max_childrenautomatisch 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_childrenam genauesten berechnen können, 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 alle Ressourcen des Cloud-Servers nicht verwendet werden; wenn sich herausstellt, dass diese vollständig verwendet werden, hat die Erhöhung des Wertes
max_childrenkeine Wirkung (Ressourcen des Cloud-Servers ändern). - Überwachen Sie die Ressourcen Ihres Servers, falls die Ressourcen Ihres Servers erreicht sind, ist es notwendig, die Optimierung der Prozesse und Ihrer Website zu überprüfen, bevor Sie die Erhöhung des Wertes
max_childrenin Betracht ziehen. - Überprüfen Sie die PHP-Fehlerberichte aus dem Ordner
/ik-logs(Master-Process-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_childrenauswählen:
Vergessen Sie nicht, die Änderungen am Ende der Seite zu speichern.
Grenzen je nach Server
Grenze der max_children je nach Ressourcen des Cloud-Servers:
| Cloud-Server-Konfiguration | 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 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 definiert.
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/includeNehmen Sie sich diese weitere Anleitung zum Thema phpinfo zu Hilfe, um zu überprüfen, ob Ihre neue Direktive berücksichtigt wird.
Das Apache-Modul mod_userdir ist nicht verfügbar.
Das Schreiben in die Verzeichnisse /etc und /lib ist aus Sicherheitsgründen deaktiviert.