Wissensdatenbank

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

Dieser Leitfaden erklärt, wie man PHP-Umgebungsvariablen mit den Webhostings verwendet, die mit php-fpm funktionieren.

 

Vorwort

  • PHP-Umgebungsvariablen sind Systemvariablen, die zur Speicherung von Informationen über HTTP-Anfragen und Umleitungen verwendet werden.
  • Sie werden in der Regel auf Webservern verwendet, um Details zu vorherigen Anfragen oder durchgeführten Umleitungen zu speichern.
  • Diese Variablen können Informationen wie vorherige URLs, HTTP-Methoden oder andere mit der Navigation des Clients auf dem Webserver verbundene Daten enthalten.

 

Verwendung von Umgebungsvariablen

Um PHP-Umgebungsvariablen zu verwenden:

  1. Definieren Sie die PHP-Umgebungsvariablen in einer Datei .htaccess:
    • SetEnv EXAMPLEVARIABLE hello
  2. In Ihrer PHP-Datei entspricht der Name der aufzurufenden Variable demselben Variablennamen, der in der Umgebungsvariablen definiert wurde:
    • <?php getenv('EXAMPLEVARIABLE');

In diesem Beispiel wird das angezeigte Ergebnis hello.

 

Weiter mit Umgebungsvariablen

Es ist möglich, Umgebungsvariablen direkt über den Manager für Ihre gesamte Website zu konfigurieren:

  1. Hier klicken, um auf die Verwaltung Ihrer Website im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
  2. Klicken Sie direkt auf den Namen der betreffenden Website:
  3. Klicken Sie auf Verwalten unter Erweiterte Einstellungen:
  4. Klicken Sie auf die Registerkarte PHP / Apache:
  5. Unten auf der Seite klicken Sie auf den Pfeil , um den Abschnitt Umgebungsvariablen zu erweitern.
  6. Klicken Sie auf das Symbol Hinzufügen.
  7. Geben Sie die Variable und ihren Wert ein.
  8. Klicken Sie auf die Schaltfläche, um zu speichern:

War diese FAQ nützlich?

Diese Anleitung erklärt, wie Sie die PHP-Einstellungen für Webhosting direkt über die Befehlszeile konfigurieren, wenn Sie PHP-Skripte mit PHP CLI (Command Line Interface) ausführen.

 

Vorwort

  • Diese Art der Konfiguration kann nützlich sein, wenn Sie bestimmte Parameter vorübergehend für ein bestimmtes Skript oder eine PHP-Sitzung ändern müssen.
  • Diese Änderungen gelten nur für die Ausführung des aktuellen Skripts und ändern nicht die globale PHP-Konfiguration.

 

PHP CLI-Einstellungen ändern

Um beispielsweise die Parameter vorübergehend für ein bestimmtes Skript zu ändern, ohne die globale PHP-Konfiguration des Servers zu ändern, folgen Sie der untenstehenden Methode: Mit der PHP CLI-Umgebung können Sie mehrere PHP-Parameter gleichzeitig angeben, indem Sie sie durch Leerzeichen trennen.

Verwendung des Parameters -d

Wenn Sie PHP über die Befehlszeile ausführen, können Sie den Parameter -d verwenden, um PHP-Konfigurationen anzugeben. Dadurch können Sie die PHP-Parameter für diese spezifische Ausführung ändern. Zum Beispiel, um die maximale Ausführungszeit auf 90 Sekunden, den Speicherbegrenzer auf 256 MB und die sichere Modus deaktivieren, können Sie dies wie folgt tun:

php -d max_execution_time=90 -d memory_limit=256M -d safe_mode=Off -f test.php

War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie die PHP-Version ändern, die in der Befehlszeile (PHP CLI) auf einem Webhosting von Infomaniak verwendet wird.

 

Vorwort

  • Dieser Leitfaden ist nützlich, wenn Sie temporär Parameter für ein bestimmtes Skript oder für eine PHP-Sitzung anpassen müssen, die in der Befehlszeile (CLI) ausgeführt wird.
  • Um die allgemeine PHP-Version zu ändern, die von Ihrem Hosting auf dem Webserver (FPM/Apache) über den Infomaniak-Manager verwendet wird, konsultieren Sie diesen anderen Leitfaden.

 

Standard-PHP-Version in der Befehlszeile

Wenn Sie den Befehl php (in der Regel über /usr/bin/php) ausführen, wird die Standardversion von PHP verwendet, die auf dem Server konfiguriert ist. Diese Version kann sich im Laufe der Zeit aufgrund von Plattform-Updates ändern.

Um die genaue Version zu erfahren, die derzeit auf Ihrem Hosting aktiv ist, führen Sie Folgendes aus:

php -v

Um die Stabilität Ihrer Skripte zu gewährleisten, wird empfohlen, eine explizite Version (php7.4, php8.0, php8.1, usw.) zu verwenden oder Ihre Variable PATH anzupassen, um auf das Verzeichnis der gewünschten Version zu zeigen (z. B. /opt/php8.1/bin).

 

PHP-Version in der CLI ändern

Es gibt zwei Hauptdateien, die verwendet werden können, um die PHP-Version zu konfigurieren, die automatisch in Ihrer SSH-Sitzung geladen wird:

 

1. Verwendung von ~/.bashrc (empfohlen)

Die Datei .bashrc wird von Bash beim Öffnen eines interaktiven Shells (nicht-login) gelesen, d. h. in den meisten Fällen, wenn Sie eine normale SSH-Sitzung öffnen oder Befehle über Bereitstellungstools ausführen.

  1. Erstellen Sie die Datei ~/.bashrc, falls sie nicht existiert, und öffnen Sie sie dann:

    touch ~/.bashrc
    nano ~/.bashrc
  2. Fügen Sie die folgende Zeile hinzu, um die gewünschte PHP-Version anzugeben (Beispiel: PHP 8.1):

    export PATH="/opt/php8.1/bin:$PATH"
  3. Laden Sie Ihre Umgebung neu:

    source ~/.bashrc
  4. Überprüfen Sie die derzeit verwendete Version:

    php -v
    which php

    Sie sollten einen Pfad wie /opt/php8.1/bin/php sehen.

 

2. Verwendung von ~/.profile (Alternative)

Die Datei .profile wird nur gelesen, wenn die Shell im Login-Modus gestartet wird (z. B. bei einer ersten SSH-Verbindung). Wenn Ihre Umgebung .bashrc nicht automatisch lädt, können Sie die PHP-Version direkt darin festlegen.

  1. Erstellen Sie die Datei ~/.profile, falls sie nicht existiert, und öffnen Sie sie dann:

    touch ~/.profile
    nano ~/.profile
  2. Fügen Sie die folgende Zeile hinzu:

    export PATH="/opt/php8.1/bin:$PATH"
  3. Laden Sie Ihre Umgebung neu:

    source ~/.profile

 

3. Laden Sie .bashrc aus anderen Profilen

Um sicherzustellen, dass die Konfiguration in allen Arten von Sitzungen (Login und Non-Login) geladen wird, wird empfohlen, in Ihren Dateien ~/.bash_profile und ~/.profile die folgende Zeile einzufügen:

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

So wird Ihre in .bashrc definierte PHP-Konfiguration immer angewendet, unabhängig davon, wie die SSH-Sitzung geöffnet wird.

 

Einmalig eine bestimmte Version ausführen

Wenn Sie ein Skript mit einer bestimmten PHP-Version ausführen möchten, ohne Ihre Umgebung zu ändern, können Sie direkt das entsprechende Binärprogramm aufrufen:

/opt/php8.1/bin/php mon_script.php
/opt/php8.2/bin/php -v

 

Nach diesen Schritten wird die gewählte PHP-Version automatisch bei jeder neuen Sitzung geladen, und Ihre CLI-Skripte werden mit der gewünschten Version ausgeführt.


War diese FAQ nützlich?

Diese Anleitung erklärt, wie Sie die PHP-Version ändern, die für die Websites Ihres Webhostings von Infomaniak verfügbar ist.

 

Vorwort

  • Es ist möglich, von einer alten und potenziell unsicheren PHP-Version zu einer aktuellen Version zu wechseln, aber ein Rückwechsel zu dieser unsicheren Version wird aus Sicherheitsgründen nicht mehr möglich sein.
  • Die Änderung ist sofort und endgültig.
  • Lesen Sie diese Anleitung, wenn Sie Informationen zur Konfiguration der in SSH verwendeten PHP-Version suchen.
  • Es kann notwendig sein, Ihr Hosting im Voraus zu aktualisieren, um auf die neuesten von Infomaniak angebotenen PHP-Versionen zugreifen zu können.

 

PHP-Version für eine Website ändern

Sie können die PHP-Version, die für eine gesamte Website verwendet wird, ganz einfach ändern:

  1. Hier klicken, 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 ist.
  3. Klicken Sie auf Weitere Informationen.
  4. Klicken Sie auf Bearbeiten:
  5. Wählen Sie die gewünschte PHP-Version aus.
  6. Klicken Sie unten auf der Seite auf Speichern, um die Änderung zu speichern:

War diese FAQ nützlich?

Dieser Leitfaden erklärt, wie Sie auf einem Webhosting von Infomaniak die Unterstützung bestimmter Dateitypen (z. B. .inc) durch PHP aktivieren, damit sie wie eine Datei .php behandelt werden.

 

Vorwort

  • Früher musste die folgende Zeile in einer Datei .htaccess hinzugefügt werden:
    • AddType application/x-httpd-php .inc
    • Dadurch wurde verhindert, dass der Inhalt der Datei beim Zugriff über den Browser als Text angezeigt wurde, anstatt korrekt von PHP interpretiert zu werden.
  • Jetzt können Sie die Dateierweiterungen über das Feld FPM Erweiterungen im Manager Ihres Hostings verwalten.

 

Verwalten der von PHP unterstützten Erweiterungen

Um die Unterstützung für einen bestimmten Dateityp hinzuzufügen:

  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 wurde.
  3. Klicken Sie auf Verwalten unter Erweiterte Einstellungen:
  4. Klicken Sie auf die Registerkarte PHP / Apache.
  5. Bearbeiten Sie das Feld FPM Erweiterungen, um die gewünschte Ergänzung vorzunehmen.
  6. Klicken Sie auf die Schaltfläche am unteren Rand der Seite, um zu speichern:

War diese FAQ nützlich?

Diese Anleitung erklärt, wie man GnuPG / PGP mit PHP auf einem Infomaniak Cloud-Server verwendet, nachdem die native Erweiterung veraltet ist (es werden "reine PHP"-Alternativen oder moderne Wrapper bevorzugt).

 

Vorwort

  • Die Systemerweiterung PHP_GnuPG wird von der PHP-Community nicht mehr unterstützt und ist daher auf neueren Umgebungen nicht mehr verfügbar.
  • Zwei Hauptalternativen in "Pure PHP" (installierbar über Composer) ermöglichen es, Ihre Daten weiterhin sicher zu signieren oder zu verschlüsseln.
  • Falls erforderlich, können lokale Partner, die von Infomaniak referenziert werden, diese Schritte übernehmen: starten Sie eine kostenlose Ausschreibung; sie kümmern sich um alles, sodass Sie von den technischen Details entlastet werden — erfahren Sie auch mehr über die Rolle des Hosting-Anbieters.

 

Option 1: Crypt_GPG (Empfohlen)

Diese Bibliothek fungiert als Wrapper: Sie kommuniziert direkt mit dem auf Ihrem Cloud-Server installierten Binärprogramm gpg. Dies ist die leistungsfähigste und stabilste Lösung.

Um sie zu installieren, melden Sie sich per SSH an und führen Sie diesen Befehl im Stammverzeichnis Ihres Projekts aus:

# Install the PEAR Crypt_GPG package via Composer
composer require pear/crypt_gpg

Beispiel für die Verschlüsselung einer Nachricht (objektorientierter Ansatz):

<?php
require_once 'vendor/autoload.php';

try {
    // Initialize the GPG object
    $gpg = new Crypt_GPG();

    // Set the recipient email (must match a public key already imported on the server)
    $gpg->addEncryptKey('contact@example.com');

    $message = "This is a secret message.";
    
    // Encrypt the data
    $enveloppe = $gpg->encrypt($message);
    
    echo $enveloppe;
} catch (Exception $e) {
    // Handle potential encryption errors
    echo "Error: " . $e->getMessage();
}

 

Option 2: OpenPGP.php (Unabhängig)

Diese Bibliothek ist vollständig in PHP geschrieben. Ihr größter Vorteil ist, dass sie nicht vom Binärprogramm gpg des Servers abhängt, was eine vollständige Portabilität Ihres Codes zwischen verschiedenen Umgebungen garantiert.

# Install the OpenPGP.php library
composer require singpolyma/openpgp-php

Beispiel für die grundlegende Struktur:

<?php
require_once 'vendor/autoload.php';

// Use the library classes to handle OpenPGP packets 
// directly in PHP without system calls to the GPG binary.
// Example: $msg = OpenPGP_Message::parse(OpenPGP::unarmor($data));

War diese FAQ nützlich?

Diese Anleitung behandelt die ODBC-Funktionen von PHP.

 

Die ODBC-Funktionen von PHP werden nur auf Cloud-Server 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 für den 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

War diese FAQ nützlich?

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 client führt zu Fehlern wie No compatible key exchange algorithms found oder Unable 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 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');

War diese FAQ nützlich?

Diese Anleitung zeigt, wie Sie die Direktive error_reporting() auf Ihrer Website ändern.

 

Fehlerberichte aktivieren

Geben Sie die folgenden 2 Informationen in Ihrer Datei .user.ini an:

display_errors=on
error_reporting=E_ALL & ~E_NOTICE & ~E_STRICT

Wenn Ihr Browser weder Fehler noch Warnungen anzeigt, gibt es keine.

 

PHP-Fehleranzeige deaktivieren

Für WordPress bearbeiten Sie die Datei wp-config.php und ersetzen Sie die Zeile:

define('WP_DEBUG', false);

durch:

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

Andernfalls können Sie den folgenden Code in die Datei .user.ini einfügen:

display_errors=off

War diese FAQ nützlich?