Wissensdatenbank

1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!

Dieser Leitfaden erklärt, wie Sie von neuen Versionen von PHP, MySQL und vielen anderen Paketen profitieren können, indem Sie einen Cloud-Server auf eine neue Infomaniak-Infrastruktur migrieren.

 

Vorwort

  • Die Migration ist kostenlos und erfolgt in 3 Schritten:
    1. Infomaniak stellt einen Cloud-Server der neuesten Generation mit denselben Merkmalen wie der aktuelle, zum gleichen Preis und mit derselben Vertragslaufzeit zur Verfügung.
    2. Sie haben einen Monat Zeit, um Ihre Hostings auf den neuen bereitgestellten Cloud-Server zu verschieben (siehe unten).
    3. Wenn Ihre Hostings auf den neuen Server verschoben wurden, kündigen Sie den alten Cloud-Server.
  • Die FTP-Zugänge und Datenbanken ändern sich nicht.
  • Nur die unterstützten Versionen von PHP und MariaDB sowie die IPv4- und IPv6-Adressen des Servers ändern sich auf Ebene der Hostings.
  • Die Hostnamen (Hostnamen) ändern sich nicht und werden automatisch aktualisiert, um auf die neuen IP-Adressen zu verweisen.
  • Bei diesem Vorgang werden die Statistiken zurückgesetzt.

 

Migrationsvorgang

Durch die Migration Ihrer Daten auf die neue Cloud-Infrastruktur erhöhen Sie die Leistung und Zuverlässigkeit Ihrer Websites, die auf die neuesten Technologien zugreifen:

  1. Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
  2. Klicken Sie direkt auf den Namen, der dem betreffenden Produkt zugewiesen ist.
  3. Klicken Sie auf die blaue Schaltfläche im Rahmen "Ihren Cloud-Server aktualisieren" (oder auf Verwalten):

War diese FAQ nützlich?

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.


War diese FAQ nützlich?

Dieser Leitfaden beschreibt den Header "X-Frame-Options", der verwendet wird, um Ihre Website vor Clickjacking-Angriffen zu schützen.

Der Wert ALLOW-FROM ist veraltet. Um eine bestimmte Domain zuzulassen, wird empfohlen, den Header Content-Security-Policy (CSP) mit der Richtlinie frame-ancestors zu verwenden.

 

Werte für den Header X-Frame-Options

Dieser Header weist den Browser an, ob er das Anzeigen Ihrer Seite in einem <frame> oder <iframe> zulassen soll.

  1. "DENY" : Vollständiges Verbot. Die Website kann in keinem Rahmen geladen werden, auch nicht von Ihrer eigenen Website.
  2. "SAMEORIGIN" : Erlaubt das Anzeigen im iframe nur, wenn die Eltern-Website denselben Domain wie der Inhalt hat.

Header implementieren

Über die Datei .htaccess (empfohlen für die gesamte Website):

Header set X-Frame-Options "SAMEORIGIN"

Oder über PHP (für eine spezifische Seite):

<?php
header('X-Frame-Options: SAMEORIGIN');
?>

 

Die moderne Alternative: Content-Security-Policy (CSP)

Wenn Sie eine bestimmte externe Website (z.B. domain.xyz) zulassen müssen, um Ihren Inhalt zu integrieren, verwenden Sie nicht mehr X-Frame-Options, sondern den folgenden Header in Ihrer .htaccess:

Header set Content-Security-Policy "frame-ancestors 'self' https://domain.xyz"

Diese Regel erlaubt Ihrer eigenen Website ('self') sowie domain.xyz, Sie in einem iframe anzuzeigen.


War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie einen Domainnamen direkt auf einen anderen umleiten oder wie Sie Besucher Ihrer Website automatisch zu einer anderen Seitenadresse (interne oder externe URL) weiterleiten.

 

Vorwort

  • Um den Verkehr umzuleiten, müssen Sie...
    • ... entweder direkt auf den Domainnamen (er muss von Infomaniak gehostet werden und seine DNS müssen ebenfalls die von Infomaniak sein),
    • ... oder auf den Code in Ihren Seiten (Datei .htaccess, Startseite usw.), wenn Sie eine Website haben.

 

Auf den Domainnamen einwirken

über das Web-Umleitungs-Tool

Das im Manager verfügbare Tool ermöglicht es Ihnen, einfach auf den Domainnamen (oder Subdomain) einzuwirken, um ihn auf die gewünschte Internetadresse umzuleiten.

über DNS-Änderungen oder A-Eintrag

DNS ändern des Domainnamens oder seine A/AAAA-Einträge ändern ermöglicht es, den Webverkehr zu einem anderen Anbieter umzuleiten.

 

Auf den Code der Seiten einwirken...

... über einzufügenden HTML-Code

Fügen Sie diese Codezeile zwischen den Tags <head> und </head> Ihrer Startseite (in der Regel index.html genannt) ein:

<meta http-equiv="refresh" content="5;url=INSERT-HERE-NEW-URL">

Ersetzen Sie 5 durch die gewünschte Wartezeit in Sekunden (0, damit es sofort geschieht).

Die Suchmaschine Google gibt an, dass es vorzuziehen ist, eine Umleitung vom Typ 301 auf Serverseite zu verwenden (siehe unten). Der W3C rät ebenfalls davon ab, dies zu verwenden.

... über einzufügenden PHP-Code

Wenn die Seite der Website die Erweiterung .php besitzt, fügen Sie diesen Funktionsaufruf header ganz oben in die Datei ein:

header("refresh: 5; url=INSERT-HERE-NEW-PAGE-URL");

... über die Datei .htaccess

Um absolut den gesamten Verkehr, der auf Ihre Website abzielt (unabhängig von der aufgerufenen Seite), auf eine andere Adresse umzuleiten, fügen Sie dies in die Datei .htaccess an der Wurzel Ihrer Website ein:

RewriteEngine On
RewriteRule ^(.*)$ INSERT-HERE-NEW-URL/$1 [R=301]

Um die Seite zu bestimmen, die umgeleitet werden soll:

Redirect permanent /ancienne_page.html insérer ici adresse URL de destination

Redirectpermanent, Redirect permanent und Redirect 301 sind äquivalente Befehle.

Hier ist ein weiteres Beispiel für die Umleitung eines Unterteils zur Startseite (diese Anweisung hat den Vorteil, mit "Deep Links" zu funktionieren, im Gegensatz zu einer permanenten Umleitung):

RewriteEngine on
RewriteRule "old/path/url "/" [L]

Nehmen Sie sich Zeit für diesen weiteren Leitfaden zu diesem Thema.


War diese FAQ nützlich?

Dieser Leitfaden behandelt die Synchronisation von Servern über das NTP-Protokoll (Network Time Protocol) und die Konfiguration der Zeitzone auf den Servern von Infomaniak.

 

Genaues Synchronisieren von Servern über NTP

Alle Server von Infomaniak sind über das NTP-Protokoll synchronisiert. Das Unternehmen stellt seine eigenen öffentlichen Stratum-1-NTP-Server für eine flexible Nutzung zur Verfügung.

Um diese Server in Ihre Einstellungen zu integrieren, verwenden Sie den folgenden Eintrag: pool.ntp.infomaniak.ch.

Die Standardkonfiguration der Zeitzone ist UTC. Die PHP-Funktionen sind jedoch so konzipiert, dass sie je nach spezifischen Anforderungen verschiedene Zeitzonen berücksichtigen.

Um die Zeitzone in Ihren PHP-Skripten anzupassen, verwenden Sie die Funktion date_default_timezone_set('UTC').

 

MySQL: Zeitliche Besonderheiten

Die Infrastruktur von Infomaniak unterstützt Funktionen, die es ermöglichen, mit zeitlichen Daten genau und effizient zu arbeiten, wobei Zeitzonen berücksichtigt werden, was für viele moderne Anwendungen entscheidend ist:

  • MySQL verwendet eine Zeitzonen-Datenbank, um Informationen über Zeitzonen zu speichern und zu verwalten.
  • Die Tabelle mysql.time_zone enthält Daten zu den Zeitzonen, einschließlich Informationen zu den Zeitverschiebungen, den Zeitzonennamen usw.
  • Die Funktion CONVERT_TZ wird verwendet, um eine Uhrzeit von einer Zeitzone in eine andere in MySQL mit der folgenden Syntax zu konvertieren: CONVERT_TZ(dt, from_tz, to_tz), wobei:
    • dt das zu konvertierende Datum/Uhrzeit ist.
    • from_tz die Quellzeitzone ist.
    • to_tz die Zielzeitzone ist.
  • Beispiel: CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York') konvertiert die Uhrzeit 12:00:00 UTC in die Ortszeit in New York.

War diese FAQ nützlich?

Diese Anleitung hilft Ihnen bei der Behebung eines Problems mit dem CMS Prestashop v9.x bezüglich der Erstellung von PDF-Rechnungen über das Administrationspanel (Back Office), insbesondere wenn die französische Sprache verwendet wird.

 

Das Problem

Beim Versuch, eine PDF-Rechnung für eine Bestellung in französischer Sprache anzuzeigen oder herunterzuladen, gibt PrestaShop (Version 9.x) eine Fehler 500 zurück. Diese Fehlfunktion ist auf eine Inkompatibilität zwischen der PDF-Erstellungsbibliothek (TCPDF), die die Standardschriftart (helvetica) verwendet, und den Hosting-Konfigurationen zurückzuführen.

 

Eine kompatible Schriftart festlegen

Die Lösung besteht darin, die Verwendung der Schriftart freesans, die kompatibler ist, über eine benutzerdefinierte Konfigurationsdatei zu erzwingen.

Es wird dringend empfohlen, eine Datei mit dem Namen defines_custom.inc.php zu erstellen. Diese Methode ist die sicherste, da sie gewährleistet, dass die Korrektur bei den Updates des PrestaShop-Kerns nicht verloren geht.

Dazu:

  1. Greifen Sie auf Ihre PrestaShop 9.x-Installation über FTP oder den Dateimanager zu.
  2. Navigieren Sie zum Verzeichnis /config/.
  3. Erstellen Sie eine neue Datei mit dem Namen defines_custom.inc.php.
  4. Bearbeiten Sie die Datei defines_custom.inc.php und fügen Sie folgenden Inhalt hinzu:

    <?php
    /**
     * Avoid error PDF, force font 'freesans'.
     */
    define('PDF_FONT_NAME_MAIN', 'freesans');
  5. Speichern Sie die Datei und testen Sie die Erstellung einer Rechnung auf Französisch.

War diese FAQ nützlich?

Dieser Leitfaden bietet Hinweise zur Durchführung von Operationen im Zusammenhang mit einer WordPress-Website, was insbesondere ermöglicht…

  • kopieren und migrieren eine WordPress-Website von einem konkurrierenden Hosting-Anbieter zu Infomaniak,
  • ändern den Domainnamen einer WordPress-Website,
  • sichern eine gesamte WordPress-Website…

 

Vorwort

  • Je nach Kontext können Sie anstelle einer WordPress-Übertragung auch einfach…

 

Eine WordPress-Website übertragen…

… mit dem Plugin All-in-One WP Migration

  • Erfordert die Installation eines neuen, leeren WordPress (z.B. über den automatischen Infomaniak-Installer), um die alte Website darauf zu importieren.

… mit dem Plugin Duplicator

  • Erfordert die Verbindung zum Hosting per FTP, um ein Archiv .zip und eine PHP-Datei zu senden, um die alte Website neu zu installieren.

War diese FAQ nützlich?

Dieser Leitfaden bezieht sich auf ImageMagick, eine leistungsstarke Software-Suite zur Bildbearbeitung, die auf den Webhostings und Cloud-Servern von Infomaniak verfügbar ist.

 

Einfache Installation: Um ImageMagick oder seine Erweiterungen zu installieren, wird empfohlen, Fast Installer aus Ihrem Manager zu verwenden.

 

ImageMagick und Bildbearbeitungslösungen

Mehrere Tools stehen Ihnen zur Verfügung, um Ihre visuellen Inhalte zu bearbeiten (Skalierung, Konvertierung, Wasserzeichen):

  1. ImageMagick (CLI): die Hauptsuite, die über die Befehlszeile (über SSH) verwendet werden kann; der moderne Befehl lautet magick, aber die alte Syntax convert bleibt verfügbar.
  2. PHP-Erweiterung imagick: dies ist die gängigste Lösung für Websites (WordPress usw.); sie ermöglicht die direkte Verwendung von ImageMagick in Ihren PHP-Skripten.
  3. GD-Bibliothek: eine leichtere Alternative, oft vorinstalliert, ideal für einfache Manipulationen (Miniaturen, Text auf Bild).
  4. PerlMagick: Schnittstelle, die für Perl-Skripte gedacht ist, um auf die Funktionen von ImageMagick zuzugreifen.

 

Pfade und Befehle

Auf den Infomaniak-Infrastrukturen ist ImageMagick standardmäßig installiert. Die ausführbaren Dateien befinden sich im folgenden Verzeichnis:

/usr/bin/

Hier sind die wichtigsten verfügbaren Befehle:

BefehlHauptverwendung
magick (oder convert)Bilder konvertieren, skalieren und transformieren.
identifyMetadaten einer Datei abrufen (Format, Größe usw.).
mogrifyEine Änderung direkt auf der Originaldatei anwenden.
compositeMehrere Bilder übereinanderlegen (z. B. Hinzufügen eines Logos als Wasserzeichen).

Um die Anwesenheit des Perl-Moduls Image::Magick zu testen, können Sie den folgenden Befehl verwenden:

perl -e 'use Image::Magick; print "Installed\n"';

War diese FAQ nützlich?

Diese Anleitung erklärt, was Sie als Website-Besucher tun müssen, wenn Sie einen Fehler des Typs 403 erhalten, um dieses Problem zu beheben.

 

Was ist der Fehler 403?

Der Fehlercode HTTP 403 bedeutet in der Regel, dass der Zugriff auf eine Ressource dem Client vom Server verweigert wird.

 

In welchem Fall tritt dieser Fehler auf?

Der Benutzer ist nicht authentifiziert: Der Server verlangt, dass sich der Benutzer authentifiziert, um auf die Ressource zuzugreifen. Dies kann der Fall sein für private Seiten, die eine Authentifizierung erfordern, zum Beispiel.

Der Benutzer ist authentifiziert, hat aber nicht die erforderlichen Berechtigungen: Der Server erkennt den Benutzer, gewährt ihm aber keinen Zugriff auf die angeforderte Ressource aufgrund von Berechtigungs- oder Rollenbeschränkungen. Diese Fehlerursache 403 kann ein Problem mit falschen Berechtigungen auf einem Ordner oder einer Datei sein. Für einen Ordner lautet die Fehlermeldung "403 Forbidden", für eine Datei "failed to open stream: Permission denied". In diesem Fall müssen Sie sicherstellen, dass die Berechtigungen Ihrer Ordner/Dateien korrekt sind, nämlich mindestens 644 für eine Datei und 755 für einen Ordner. Nehmen Sie Kenntnis von dieser anderen Anleitung.

Die IP-Adresse des Benutzers ist gesperrt oder eingeschränkt: Der Server kann den Zugriff auf eine bestimmte IP-Adresse aus Sicherheitsgründen, zum Schutz vor Angriffen usw. sperren. Nehmen Sie Kenntnis von dieser anderen Anleitung.

Die angeforderte Ressource existiert nicht auf dem Server: In diesem Fall gibt der Server einen Fehler 403 anstelle eines Fehlers 404 zurück, um die Offenlegung vertraulicher Informationen zu vermeiden. Wenn Sie versuchen, einfach auf Ihre Startseite oder einen Teil Ihrer Website zuzugreifen, indem Sie eine Adresse vom Typ www.domain.xyz oder www.domain.xyz/ordner/ angeben, stellen Sie sicher, dass eine Startseite mit dem Namen "index.html oder .htm oder .php" an der richtigen Stelle vorhanden ist (an der Wurzel Ihres FTP-Speicherplatzes, im Verzeichnis /web oder im Verzeichnis /ordner/). Nehmen Sie Kenntnis von dieser anderen Anleitung.

Stellen Sie außerdem sicher, dass es keine Großbuchstaben im Dateinamen gibt, alle Dateien oder Ordner müssen klein geschrieben sein, ohne Akzente oder Leerzeichen.

Fehler im Zusammenhang mit dem Skript: Wenn Sie ein Skript ausgeführt, ein Formular ausgefüllt oder eine Datei online hochgeladen haben und diese Art von Meldung erhalten:

Accès interdit!
Vous n'avez pas le droit d'accéder à l'objet demandé.
Soit celui-ci est protégé, soit il ne peut être lu par le serveur.
Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
Error 403

Die Ursache kann ein Filter sein, der die unerwünschte Verwendung von Skripten durch Spammer verhindert. Tatsächlich blockiert der Infomaniak-Virusschutz das Hochladen von Dateien über Skripte oder FTP. Das bedeutet konkret, dass, wenn ein Hacker eine als Virus identifizierte Datei über ein Formular, ein unsicheres Skript oder FTP sendet, deren Installation sofort blockiert wird, die Datei nicht auf den Server hochgeladen wird und das Hochladen einen Fehler 403 erzeugt.

 

Im Falle eines Fehlalarms, kontaktieren Sie den Infomaniak-Support, indem Sie die URL der Seite angeben, auf der Sie diese Fehlermeldung erhalten, um die genaue Ursache des Problems zu diagnostizieren.

Es gibt jedoch viele andere Fälle, bei denen Sie eine Meldung "403 forbidden" erhalten könnten und aus sehr unterschiedlichen Gründen (PHP-Skripte, Perl, mod_security, .htaccess, ...).


War diese FAQ nützlich?

Dieser Leitfaden erklärt die Unterschiede zwischen den Webhosting-Angeboten von Infomaniak, um Ihnen zu helfen, die beste Lösung entsprechend Ihren IT-Bedürfnissen zu wählen.

 

Wenn Sie Ihre E-Mails hosten möchten, informieren Sie sich über diesen anderen Leitfaden.

 

Webhosting Starter

Das kostenlose Webhosting

Das Webhosting Starter wird kostenlos mit jeder bei Infomaniak registrierten Domain angeboten. Es bietet 10 Mo Speicherplatz, um eine Website zu erstellen (einfache Seiten in HTML - kein PHP, keine Datenbank) auch ohne besondere Kenntnisse dank des Tools Willkommensseite.

 

Gemeinsames Webhosting

Das Spitzenangebot zum Erstellen Ihrer Websites

Diese Webhosting-Angebote sind gemeinsame Angebote (die Websites werden auf Servern gehostet, deren Ressourcen mit anderen Kunden geteilt werden). Um die Zuverlässigkeit dieser gemeinsamen Dienste zu gewährleisten, nutzen die Infomaniak-Server im Durchschnitt nur 40% der CPU-Leistung und sind mit professionellen SSD-Festplatten der neuesten Generation ausgestattet.

Das Webhosting bietet mindestens 250 Go Speicherplatz und ermöglicht das Verwalten mehrerer Websites mit mehreren Domains. Dieses Angebot umfasst alle Technologien, die normalerweise zum Erstellen professioneller Websites verwendet werden: PHP, MySQL, FTP- und SSH-Zugang, SSL-Zertifikate und einfache Installation von WordPress oder gängigen CMS usw. Es ist auch möglich, ein Node.js-Site und/oder Site Creator hinzuzufügen.

Es ist zu beachten, dass ohne jegliches Hosting auch Site Creator „autonom / standalone“ erhalten und genutzt werden kann. Informieren Sie sich über diesen anderen Leitfaden.

 

Cloud-Server

Das professionelle Webhosting

Mit einem Cloud-Server werden Ihnen die Ressourcen nicht mit anderen Kunden geteilt und Sie können die Hardware- und Softwarekonfiguration Ihres Servers nach Ihren Bedürfnissen anpassen. Ein Cloud-Server ermöglicht auch die Nutzung von Komponenten, die auf gemeinsamen Webhosting-Angeboten nicht verfügbar sind (Node.js, mongoDB, Sol, FFMPEG, usw.).

  • Ein Cloud-Server ermöglicht es Ihnen, Ihren Server einfach über dieselbe Verwaltungsoberfläche wie die Webhosting-Angebote zu verwalten - Sie verwalten die Websites auf dieselbe Weise.
  • Ein VPS ermöglicht es Ihnen, Ihren Server vollständig autonom mit der von Ihnen gewählten Windows-Version oder Linux-Distribution (Debian, Ubuntu, openSUSE, ...) zu verwalten - solide technische Kenntnisse sind erforderlich, um einen VPS zu nutzen, einschließlich VPS Lite.

 

Public Cloud (und Kubernetes Service)

Offene, erprobte und sichere IaaS-Lösung

Für Infomaniak ist es die Infrastruktur, die kDrive, Swiss Backup und den Webmail antreibt, Dienste, die von mehreren Millionen Nutzern verwendet werden. Aber Public Cloud ist für jedermann zugänglich und stellt die Ressourcen bereit, die Sie für die Entwicklung Ihrer Projekte benötigen.‍

Mit den maßgeschneiderten und individuellen Angeboten haben Sie keine Schwierigkeiten, Ihr Entwicklungsbudget zu verwalten. Keine Installationskosten. Kein Mindestbetrag. Jederzeit kündbar. Sie zahlen nur die tatsächlich genutzten Ressourcen mit Public Cloud am Ende jedes Monats, ebenso wie für Kubernetes Service.

 

Jelastic Cloud

Webhosting nach Maß mit Ihren gewünschten Technologien

Jelastic Cloud ermöglicht die Erstellung von maßgeschneiderten Entwicklungsumgebungen mit Ihren gewünschten Technologien (PHP, Java, Docker, Ruby, etc.). Es handelt sich um ein flexibles Cloud-Angebot:

  • Horizontale und vertikale Skalierung der Ressourcen.
  • Bezahlung nach tatsächlichem Ressourcenverbrauch.
  • Einfache Anpassung Ihrer Infrastruktur (Redundanz, IP, SSL, Lastverteilung usw.).

War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie ein Problem beim Importieren einer Datei .csv in eine Tabelle MySQL beheben können. Die vorgeschlagene Alternative besteht darin, die CSV-Datei Zeile für Zeile mit PHP zu lesen und die Daten in die Datenbank MySQL einzufügen.

 

Funktion "LOAD DATA LOCAL INFILE" deaktiviert

Die Funktion LOAD DATA LOCAL INFILE ermöglicht das Importieren einer CSV-Datei direkt in eine Tabelle MySQL. Diese Funktion wird jedoch häufig von Angreifern genutzt, um unbefugten Zugriff auf Websites zu erhalten, die auf Servern gehostet werden, die diese Funktion akzeptieren.

Um Sicherheitsrisiken zu vermeiden und die Daten der Kunden zu schützen, hat Infomaniak die Funktion LOAD DATA LOCAL INFILE deaktiviert. Benutzer, die ihre CSV-Dateien über phpMyAdmin importieren (ohne die Option „CSV via LOAD DATA“ zu aktivieren), sind nicht betroffen.

Hier ist eine alternative Methode zum Importieren von CSV-Daten in eine Tabelle MySQL. Das folgende Beispiel zeigt, wie Fehler beim Öffnen der CSV-Datei und beim Einfügen der Daten in die Datenbank korrekt behandelt werden.

Dieses Skript verwendet mysqli, um eine Verbindung zur Datenbank herzustellen, und vorbereitete Abfragen zum Einfügen der Daten. Dies gewährleistet eine bessere Sicherheit, optimale Kompatibilität mit den neuesten Versionen von PHP und eine einfache Integration in Ihr Projekt, sei es in einem bestehenden Skript oder einer neuen Datei im Verzeichnis /web:

$fileName = "data.csv";

// Connect to MySQL database using mysqli
$link = new mysqli("localhost", "username", "password", "database");

// Check database connection
if ($link->connect_error) {
   die("Connection failed: " . $link->connect_error);
}

// Open the CSV file for reading
if (($handle = fopen($fileName, "r")) !== FALSE) {

   // Read each line of the CSV file
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

       // Prepare the SQL query dynamically
       $query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
       $stmt = $link->prepare($query);

       // Check if query preparation was successful
       if ($stmt === FALSE) {
           die("Query preparation failed: " . $link->error);
       }

       // Bind parameters (assuming all columns are strings)
       $types = str_repeat('s', count($data));
       $stmt->bind_param($types, ...$data);

       // Execute the query
       if (!$stmt->execute()) {
           die("Query execution failed: " . $stmt->error);
       }

       // Close the statement
       $stmt->close();
   }

   // Close the CSV file
   fclose($handle);

} else {
   echo "Error: unable to open the file.\n";
   exit(1);
}

// Close the database connection
$link->close();
?>

 

Hilfe erhalten

Leider ist es nicht möglich, genau anzugeben, an welcher Stelle des Skripts diese Codezeilen eingefügt werden müssen.

Falls diese Methode Probleme verursacht (z. B. beim gleichzeitigen Import mehrerer CSV-Dateien ohne Fehlermeldung), könnte die Struktur der Tabellen oder die Indizierung der Felder die Ursache sein. In diesem Fall wenden Sie sich an Ihren Webmaster zur Überprüfung.

Siehe auch die offizielle PHP-Dokumentation zur Funktion fgetcsv().


War diese FAQ nützlich?

Dieser Leitfaden stellt mehrere Beispiele für die Verwendung von Varnish auf einem Infomaniak Cloud-Server vor.

 

Vorwort

 

Varnish-Konfiguration

Sobald installiert, basiert die Konfiguration von Varnish auf präzisen Regeln für das Caching und das Löschen. Stellen Sie sicher, dass der Zugriff eingeschränkt ist, um zu verhindern, dass nicht autorisierte Entitäten Ihren Cache leeren können.

Hier ist ein Beispiel für eine Konfigurationsdatei, die die häufigsten Anwendungsfälle zusammenfasst:

vcl 4.0;

# Default backend configuration
backend default {
    .host = "127.0.0.80";  # Backend IP address
    .port = "80";           # Backend port
}

# Access Control List (ACL) for purge authorization
acl purge {
    "localhost";            # Local access
    "1.2.3.4";              # Trusted home IP
    "42.42.42.0"/24;        # Trusted company range
    ! "42.42.42.7";         # Specific IP exclusion (e.g., problematic user)
}

# Handle incoming requests
sub vcl_recv {
    # Handle PURGE requests
    if (req.method == "PURGE") {
        # Check if client IP is authorized
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGE requests."));
        }
        return (purge);
    }

    # Custom PURGEALL for image directory
    if (req.method == "PURGEALL" && req.url == "/images") {
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGEALL requests."));
        }
        # Invalidate all image-related objects in cache
        ban("req.url ~ \.(jpg|png|gif|svg)$");
        return (synth(200, "Images purged."));
    }

    # Bypass cache for authorized requests (e.g., admin panels)
    if (req.http.Authorization) {
        return (pass);
    }
}

# Handle backend responses before caching
sub vcl_backend_response {
    # Set TTL for images to 1 day
    if (beresp.http.content-type ~ "image") {
        set beresp.ttl = 1d;
    }

    # Respect backend's "uncacheable" instruction
    if (beresp.http.uncacheable) {
        set beresp.uncacheable = true;
    }
}

 

Löschen über die CLI-Schnittstelle

Sobald Ihre Regeln aktiv sind, können Sie das Löschen Ihrer Website (z. B. "domain.xyz") mit dem Tool curl testen:

# Purge the homepage
$ curl -X PURGE https://domain.xyz/

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The page has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 2</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Um eine bestimmte URL zu löschen, ändern Sie einfach den Pfad der Anfrage:

# Purge a specific file
$ curl -X PURGE https://domain.xyz/some_path/some_file.html

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The file has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 4</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Oder um das gruppenweise Löschen von Bildern auszulösen, das im VCL definiert ist:

# Execute PURGEALL for images
$ curl -X PURGEALL https://domain.xyz/images

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged images</title>
</head>
<body>
    <h1>Success 200: Images purged</h1>
    <p>All images have been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 32770</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

 

Löschen aus einem CMS (PHP)

Das Cache-Management kann auch dynamisch über Ihr Backend erfolgen. In der vorherigen Konfiguration wurde eine Kontrolle über die Kopfzeile Uncacheable hinzugefügt. Ihr CMS kann diese Kopfzeile senden, um Varnish zu zwingen, eine Antwort nicht zu speichern.

So senden Sie eine programmatische Löschanfrage in PHP:

<?php
// Initialize cURL for a specific URL
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']}" // Match the target host
        ]
    ]);

    curl_exec($curl);
    
    // Check if the purge was successful (HTTP 200)
    if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
        echo "Cache purged!";
    }
    curl_close($curl);
}
?>

War diese FAQ nützlich?

Diese Anleitung erklärt, wie Sie die Apache-Protokolle Ihres Webhostings einsehen und herunterladen können. Diese sind insbesondere nützlich, um PHP-Fehler zu analysieren oder bestimmte Anwendungsverhalten zu diagnostizieren.

 

Vorwort

  • Die Zugriffs- und Fehlerprotokolle werden mindestens 7 Tage aufbewahrt.
  • Nach Ablauf der Aufbewahrungsfrist können ältere Einträge nicht wiederhergestellt werden, auch nicht auf Anfrage.
  • Sie können diese Dateien auch direkt auf dem Server über SSH/FTP im Ordner ik-logs an der Wurzel Ihres Hostings finden.

 

Zugriff auf Zugriffs- und Fehlerprotokolle

Um diese Protokolle anzuzeigen:

  1. Klicken Sie hier, um auf die Verwaltung Ihrer Website im Infomaniak Manager zuzugreifen (Hilfe benötigen?).
  2. Klicken Sie direkt auf den Name, der der betreffenden Website zugewiesen ist:
  3. Klicken Sie im linken Seitenpanel auf Erweitert.
  4. Klicken Sie im linken Seitenpanel auf Protokolle.
  5. Klicken Sie auf Fehler oder Zugriff, um das Fehlerprotokoll oder Zugriffsprotokoll anzuzeigen.
  6. Wählen Sie bei Bedarf einen Zeitraum aus.
  7. Klicken Sie auf das Symbol, um die Details anzuzeigen.
  8. Klicken Sie auf Per E-Mail senden, um sofort alle Einträge per E-Mail an Ihre Benutzeradresse zu erhalten.
  9. Klicken Sie, um die Daten im Format .log zu exportieren:

 

Die aktivsten IP-Adressen in den Zugriffsprotokollen identifizieren

Dazu melden Sie sich über SSH auf dem Server an (Hilfe benötigen?).

Der in SSH auszuführende Befehl lautet:

cat ik-logs/access.log | awk '{ print $2}' | sort -n | uniq -c | sort -n | tail -n 20

War diese FAQ nützlich?

Dieser Leitfaden beschreibt die spezifischen Regeln, die bei der Erstellung eines Benutzerpassworts mit mysqli_connect(), das das Zeichen „Dollar“ $ enthält, auf den Infomaniak-Plattformen zu beachten sind.

 

Vorwort

  • Wenn Sie beim Verwenden von mysqli_connect() die Fehlermeldung "Zugriff verweigert für Benutzer" erhalten und Ihr Datenbankbenutzerpasswort ein Dollarzeichen $ enthält, kann das Problem von der Funktionsweise von Zeichenketten in PHP herrühren.
  • Das Problem kann auch mit Messaging-Skripten auftreten.

 

Zu beachtende Regeln

Wenn das Sonderzeichen $ in einem Benutzerpasswort verwendet wird und diesem ein anderes Zeichen als eine Zahl folgt, ist der Variablenname ungültig und die Substitution erfolgt nicht korrekt.

Hier sind Lösungen, um dies zu beheben:

  • Setzen Sie das Passwort in einfache Anführungszeichen: '$******'
  • Stellen Sie sicher, dass eine Zahl direkt auf den Dollar folgt: "$2*****"
  • Verwenden Sie einen Backslash, um den Dollar im Passwort zu "entkommen": "\$****"

War diese FAQ nützlich?

Dieser Leitfaden beschreibt die Unterschiede zwischen den IMAP- und POP3-Protokollen in einer E-Mail-Software/E-Mail-Client (Outlook, Microsoft 365, Thunderbird, Apple Mail, eM Client usw.) und erklärt, warum es wichtig ist, diese nicht gleichzeitig für dieselbe E-Mail-Adresse zu verwenden, die von Infomaniak verwaltet wird.

 

IMAP (empfohlen)

IMAP ist das Synchronisationsprotokoll. Die Nachrichten bleiben auf dem Server und können überall abgerufen werden.

  • Mehrere Geräte: Ihre E-Mails werden zwischen Ihrem Computer, Ihrem Mobiltelefon und der Mail Web-App von Infomaniak synchronisiert.
  • Zusammenarbeit: Ideal für gemeinsame Postfächer. Wenn ein Benutzer eine Nachricht verschiebt oder löscht, ist die Änderung für alle sichtbar.
  • Sicherheit: Im Falle eines Computerausfalls bleiben Ihre Nachrichten auf dem Server gespeichert.

 

POP3 (spezifische Verwendung)

POP3 ist ein Download-Protokoll. Die Nachrichten werden auf Ihrem Computer abgerufen und in der Regel vom Server gelöscht.

  • Offline-Zugriff: Die Nachrichten werden lokal auf Ihrer Festplatte gespeichert.
  • Hauptnachteil: Sobald die Nachrichten heruntergeladen wurden, sind sie in der Mail Web-App von Infomaniak oder auf Ihren anderen Geräten nicht mehr sichtbar.
  • Risiken: Wenn Sie die Option "Kopie der Nachrichten auf dem Server behalten" verwenden, riskieren Sie doppelte Downloads und Synchronisationsfehler.

 

Wichtig: POP und IMAP niemals mischen

Die gleichzeitige Verwendung dieser beiden Protokolle für dieselbe Adresse verursacht schwere technische Konflikte:

  • Unerklärliches Verschwinden von Nachrichten auf bestimmten Geräten.
  • Wiederholte Downloads alter, bereits gelesener Nachrichten (insbesondere bei Outlook).
  • Unnötige Auslastung des Speicherplatzes.

Tipp: Bevorzugen Sie die Verwendung von IMAP in allen Ihren E-Mail-Software/E-Mail-Clients.

Nehmen Sie sich die Zeit, diese anderen Leitfäden zu lesen, um ein Konto in IMAP zu konfigurieren oder um von POP zu IMAP zu wechseln.


War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie in einem E-Mail-Programm/Client von einer POP-Konfiguration zu einer IMAP-Konfiguration für dasselbe E-Mail-Konto wechseln. Tatsächlich wird aus vielen Gründen dringend empfohlen, das IMAP-Protokoll anstelle von POP zu verwenden.

 

Vom POP-Protokoll zum IMAP-Protokoll wechseln…

Wenn Ihre E-Mail-Adresse bereits mit dem POP-Protokoll in Ihrem E-Mail-Programm/Client (Mozilla Thunderbird, Microsoft Outlook usw.) konfiguriert ist, ist es nicht möglich, direkt auf dem Konto auf das IMAP-Protokoll zu wechseln. Denn die gängigsten E-Mail-Programme/Clients ermöglichen es nicht, ein bestehendes POP3-Konto zu ändern und es stattdessen als IMAP zu definieren.

Die Lösung besteht also darin, dasselbe E-Mail-Konto, aber mit dem IMAP-Protokoll, in Ihrem E-Mail-Programm/Client hinzuzufügen und dann Ihre Nachrichten und Ordner vom POP-Konto (von Ihrem Computer) zum IMAP-Konto (auf dem Mailserver) zu verschieben.

⚠️ Achtung: Ein POP3-Konto in Ihrem E-Mail-Programm/Client bedeutet, dass Infomaniak in den meisten Fällen keine Sicherung besitzt. Daher ist es wichtig, Ihre Nachrichten auf Ihrer Seite zu sichern, bevor Sie kritische Manipulationen vornehmen.

 

… mit Microsoft Outlook

Bestimmte Outlook-Versionen wie die 2016 verhindern das einfache Hinzufügen eines zweiten Kontos, das denselben Namen (gleiche E-Mail-Adresse) hat.

sign

Um dies zu umgehen, müssen Sie das Konto aus dem Abschnitt Profile:

sign

Und von dort aus können Sie das zusätzliche Konto, in IMAP, hinzufügen:

sign
 

  1. Konfigurieren Sie das neue E-Mail-Konto mit dem IMAP-Protokoll (dasselbe Konto wie das in POP konfigurierte, aber dieses Mal in IMAP):
    sign
  2. Verschieben Sie einen Ordner nach dem anderen durch Ziehen in den Posteingang des neu konfigurierten IMAP-Kontos:
    sign
  3. Warten Sie während der Übertragung der Elemente (dies kann je nach zu übertragendem Volumen auf den Server viel Zeit in Anspruch nehmen); die Aktivität wird unten im Fenster angezeigt:

    sign

Wenn Ihr POP-Konto eine Kopie der Nachrichten auf dem Server aufbewahrte (nicht empfohlene Option in den erweiterten Einstellungen Ihres Outlook), riskieren Sie, doppelte Nachrichten zu haben.

 

… mit Apple Mail

Das Löschen des in POP konfigurierten E-Mail-Kontos löscht die darin enthaltenen Nachrichten. Es wird daher empfohlen, das POP-Konto zu deaktivieren, anstatt es zu löschen!

sign

Sobald das POP-Konto deaktiviert ist, nehmen Sie sich diesen anderen Leitfaden zur Kenntnis, um Ihre E-Mail-Adresse in Apple Mail in IMAP zu konfigurieren.

Sobald Sie fertig sind, müssen Sie nur noch die Nachrichten, die sich in Ihrer POP-Konto-Struktur befinden, in die Struktur des neuen IMAP-Kontos verschieben.


War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie IP-Adressen zur Whitelist einer Infomaniak Website hinzufügen.

 

Vorwort

  • Durch das Freigeben von IP-Adressen für xmlrpc.php können Sie auf URLs zugreifen, die standardmäßig gesperrt sind, da sie als riskant eingestuft werden.
  • Diese Art von Sperrung ist auf allen neuen Servern wirksam.
  • In Bezug auf WordPress ist seine Funktion XML-RPC standardmäßig nur über die Infomaniak-Dienste und JetPack aus Sicherheitsgründen verfügbar.

 

IP-Adressen zur Whitelist von xmlrpc.php hinzufügen

Um auf die Verwaltung der Website zuzugreifen:

  1. Klicken Sie hier, um auf die Verwaltung Ihrer Website im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
  2. Klicken Sie direkt auf den Namen, der der betreffenden Website zugewiesen wurde:
  3. Klicken Sie auf Erweiterte Einstellungen verwalten:
  4. Klicken Sie auf die Registerkarte PHP / Apache:
  5. Vervollständigen Sie die betreffende Zeile.
  6. Klicken Sie auf die Schaltfläche Speichern am unteren Rand der Seite:

War diese FAQ nützlich?

Dieser Leitfaden hilft Ihnen bei der Einrichtung des Headers "Access-Control-Allow-Origin", eines HTTP-Headers, der angibt, welche Herkunft (Domain, Protokoll und Port) auf die Ressourcen auf einem Server zugreifen kann. Dieser Header wird verwendet, um den Zugriff über verschiedene Ursprünge (CORS) von einer Webanwendung aus zu steuern.

 

Liste der autorisierten Domänen

Sie können die Herkunft einer Anfrage zur Liste der autorisierten Domänen hinzufügen, die auf die Ressourcen des Servers zugreifen dürfen, indem Sie sie zu den Werten des Headers Access-Control-Allow-Origin hinzufügen.

Um beispielsweise die Website https://domain.xyz zu autorisieren, auf die Ressourcen mit CORS zuzugreifen, muss der Header wie folgt lauten:

Access-Control-Allow-Origin: https://domain.xyz

Sie können dies über die Funktion header() von PHP einstellen, indem Sie sich an diesem Leitfaden orientieren.

Wenn Sie möchten, dass dieser Header überall angewendet wird, können Sie einen Auto-Prepend verwenden.


War diese FAQ nützlich?

Dieser Leitfaden beschreibt die Sicherheitsmaßnahmen, die im Rahmen der Infomaniak-E-Mail-Angebote implementiert wurden, um missbräuchliche und ungewöhnliche Nutzungen einer E-Mail-Adresse zu erkennen.

 

Einleitung

  • Für den Versand von E-Mails an eine große Anzahl von Empfängern ist das Newsletter-Tool am besten geeignet.
  • Auf schriftliche Anfrage, die begründet und authentifiziert ist, können diese Sicherheitsregeln für eine bestimmte, kostenpflichtige E-Mail-Adresse geändert werden.
  • Diese Maßnahmen schützen Sie vor einer missbräuchlichen Nutzung Ihres Computers oder Ihres Kontos.
  • Berechnung der Quoten (gleitendes Fenster): Die Limits (siehe unten) werden nicht um Mitternacht zurückgesetzt, sondern in Echtzeit über ein Zeitfenster von 24 Stunden berechnet; jede gesendete Nachricht „belegt“ einen Platz in Ihrem Kontingent und wird automatisch 24 Stunden nach dem Versand freigegeben.
    • Wenn Sie morgens Nachrichten versenden und um 11 Uhr Ihr Limit erreichen, werden Ihre Versandrechte am nächsten Morgen schrittweise freigegeben, sobald jede Nachricht ihr 24-Stunden-Alter erreicht hat.
  • 1 Nachricht, die an 2, 42 oder 99 Personen in CC/BCC gesendet wird, zählt als 2, 42 bzw. 99 Nachrichten.

 

Versandlimits pro 24 Stunden

⚠ Anzahl der möglichen ausgehenden E-Mails pro 24 Stunden:

kSuitekostenlos200
 Standard500
 Business500
 Enterprise500
 my kSuite200
 my kSuite+500
E-Mail-DienstStarter: max. 1 Adresse.200
 Premium: min. 5 Adressen.500
WebhostingVersand ohne Authentifizierung (PHP Mail())50
 Versand mit Authentifizierung*

* Die maximale Anzahl hängt vom E-Mail-Abonnement ab, zu dem die verwendete Adresse gehört.

 

Weitere E-Mail-Beschränkungen


War diese FAQ nützlich?

Dieser Leitfaden beschreibt die Dateiübertragungsprotokolle, die auf den Webhosting und Cloud-Server von Infomaniak akzeptiert werden, wenn Sie sich mit den ProFTPD-Servern verbinden.

 

Vorwort

  • Mit einem Starter-Hosting (einfache Webseite) ist nur eine FTP -Verbindung auf Port 21 (ohne SSL/TLS) möglich.
  • Beim Erstellen einer Website über ein Apache / PHP-Hosting ist der Zugriff auf Dateien über verschiedene Protokolle (FTP, SFTP, SSH) möglich.
  • Mit einer Node.js-Website sind nur SSH / SFTP möglich, um auf Ihre Umgebung zuzugreifen.

 

FTP (File Transfer Protocol)

FTP-Verbindungen im Modus "aktiv" und "passiv" werden unterstützt (wechseln Sie zwischen den beiden, um ein mögliches Problem zu beheben).

Infomaniak öffnet die passiven Ports auf seiner Seite [PassivePorts 42000 44000], aber nur für Verbindungen zu seinem FTP-Server. Der passive FTP-Modus erfordert die Verwendung von entfernten Ports, die vom entfernten Server definiert werden, sowie von lokalen Ports, die je nach verwendetem FTP-Software/Client variieren können.

Der passive Modus ist hauptsächlich nützlich, wenn sich die FTP-Software/der -Client hinter einer Firewall oder einem NAT-Router befindet, die/der aktive FTP-Verbindungen blockiert. In der Infomaniak-Infrastruktur sind jedoch aktive FTP-Verbindungen erlaubt, was bedeutet, dass der passive Modus in der Regel nicht erforderlich ist.

Was PHP betrifft, ist es standardmäßig nicht möglich, diese Konfiguration zentral zu verwalten. Daher ist es für Infomaniak nicht praktikabel, alle Ports zu öffnen, um alle entfernten Konfigurationen zu unterstützen, da dies weder praktisch noch sicher wäre.

Insgesamt unterstützt die Infrastruktur keine ausgehenden FTP-Verbindungen im passiven Modus zu 100 %. Für eine reibungslosere Dateiübertragung wird empfohlen, den aktiven FTP-Modus zu verwenden oder moderne Technologien wie SFTP zu erkunden (siehe unten).

 

SFTP (SSH File Transfer Protocol)

SFTP-Verbindungen garantieren eine hohe Sicherheit bei der Dateiübertragung. Stellen Sie sicher, dass SSH auf Ihrer SFTP-Software/Ihrem -Client aktiviert ist und verwenden Sie den Port 22 für die Verbindung: sftp://*****.

 

FTPES (Sicheres FTP mit TLS/SSL)

Verwenden Sie FTPES für sichere Dateiübertragungen mit Port 21 und SSL/TLS-Verschlüsselung. Mit der Software Filezilla z. B. wählen Sie "Explicit FTP over TLS" aus, um Ihren FTPES-Software/Client zu konfigurieren: ftpes://*****.

 

FTPaccess

Der Zugriff auf die FTPaccess-Konfiguration ist verfügbar.

 

Nicht unterstützt

Öffentlicher/Anonymer Benutzer

Es ist nicht erlaubt, sich als öffentlicher oder anonymer Benutzer anzumelden. Sie müssen über ein gültiges Benutzerkonto verfügen, um auf Ihren Webspace zuzugreifen.

FTPs (Sicherer FTP auf einem benutzerdefinierten Port)

Das FTPs-Protokoll wird nicht unterstützt, was bedeutet, dass der Port 2121 für diese Art von Verbindung nicht geöffnet ist.


War diese FAQ nützlich?