Wie man den Fehler Function putenv() was disabled in PrestaShop 1.7, 8.x, 9.x behebt

Fehler Function putenv() was disabled by the domain protection module kann in den am wenigsten erwarteten Momenten überraschen – besonders nachdem der Shop lange Zeit einwandfrei funktioniert hat. In diesem Beitrag erkläre ich, woher dieses Problem kommt und wie man es schnell löst.

Was ist putenv() eigentlich?
putenv() ist eine eingebaute PHP-Funktion, die zur Festlegung von Umgebungsvariablen während der Ausführung eines Skripts dient. PrestaShop nutzt sie unter anderem bei der Verwaltung von Lokalisierung und Übersetzungen – ruft sie auf, wenn das Locale für die Sprache des Shops festgelegt wird. Ohne diese Funktion kann der Shop zwar noch funktionieren, aber in den Logs beginnen Warnungen zu erscheinen, und in einigen Konfigurationen können Fehler direkt auf der Website sichtbar sein – was natürlich auf einer Produktionsumgebung inakzeptabel ist.

Woher kommt dieser Fehler?
Das Problem ist typisch für Shared Hosting mit [domain protection] Mechanismus Domänenschutz (engl. domain protection). Dieser Mechanismus isoliert einzelne Domains auf der Ebene des Betriebssystems voneinander, was eine gute Sicherheitspraxis ist – aber gleichzeitig blockiert er bestimmte PHP-Funktionen, einschließlich [putenv()]. putenv(). Der beliebteste Fall ist das Hosting Cyber Folks sowie Hostido, das ab einem bestimmten Zeitpunkt diese Option automatisch bei jeder neu hinzugefügten Domain oder Subdomain aktiviert hat. Das Ergebnis? Der Shop funktionierte problemlos, du hast eine Subdomain hinzugefügt oder die Domain umgeleitet – und plötzlich began er, Warnungen auszuspucken.
Warnung
Wenn der Fehler direkt auf der Shop-Website angezeigt wird (und nicht nur in den Logs), deaktiviere dringend die PHP-Fehleranzeige in der Serverkonfiguration oder der Datei config/defines.inc.php – sichtbare Fehler auf der Frontend sind ein ernstes Image- und Sicherheitsproblem.
Die vollständige Warnmeldung sieht so aus:
User Warning: Function putenv() was disabled by the domain protection module. Disable domain protection for this domain in the Server Panel to use this function.

Wie man das Problem löst – DirectAdmin Panel (Cyber Folks oder Hostido)
Die Lösung ist sehr einfach und erfordert keine Änderungen am Shop-Code. Es genügt, die Domain-Trennung im Hosting-Panel zu deaktivieren.
  1. Melden Sie sich im Panel an DirectAdmin – normalerweise verfügbar unter beispieldomäne.de:2222 oder beispieldomäne.de:2223
  2. Gehen Sie zum Abschnitt Domain-Einstellungen
  3. Finden Sie die Domain Ihres Shops in der Liste
  4. Ändern Sie die Option Domain-Trennung z JA auf NEIN
  5. Änderungen speichern
Erfolg
Nach der Deaktivierung der Domain-Trennung sollte der Fehler sofort verschwinden, ohne dass ein Server-Neustart oder PrestaShop-Cache-Rebuild erforderlich ist.
błąd Function putenv() - wyłączenie

błąd Function putenv() - wyłączenie
Was ist, wenn ich ein anderes Hosting-Panel habe?
Nicht jedes Hosting nutzt DirectAdmin. Unten habe ich zusammengestellt, wo Sie diese Option in anderen beliebten Panels finden:
Hosting-PanelWo Sie die Einstellung finden
DirectAdmin (Cyber Folks)Domain-Einstellungen – Domain-Trennung – NEIN
cPanelPHP Selector oder ModSecurity – überprüfen Sie deaktivierte PHP-Funktionen
PleskDomains – PHP-Einstellungen – Deaktivierte Funktionen
HestiaCPKeine integrierte Domain-Trennung – überprüfen Sie die PHP-FPM-Konfiguration in /etc/php/X.X/fpm/pool.d/
Eigener Server (VPS/Dedicated)Datei php.ini oder php-fpm.conf – Direktive disable_functions

Alternative Lösung – eigener Server oder kein Panel-Zugriff
Wenn Sie Zugriff auf die Datei php.ini oder die PHP-FPM-Konfiguration haben, überprüfen Sie, ob putenv nicht auf der Liste der blockierten Funktionen steht:
disable_functions = putenv, ...
Löschen putenv aus dieser Liste entfernen und PHP-FPM neu starten:
systemctl restart php8.1-fpm
Notiz
Passen Sie die Versionsnummer im obigen Befehl an die von Ihrem Shop verwendete PHP-Version an. Sie können dies im Hosting-Panel oder durch die Datei überprüfen phpinfo().

Lohnt sich die Sorge um diesen Fehler?
Ja. Obwohl der Shop trotz dieser Warnung oft scheinbar normal funktioniert:
  • Der Fehler kann auf der Seite für Kunden sichtbar sein (je nach PHP-Fehleranzeige-Konfiguration)
  • In einigen PrestaShop-Versionen kann die falsche Einstellung des Gebietsschemas zu Problemen bei der PDF-Rechnungserstellung oder E-Mail-Übersetzungen führen
  • Angesammelte Warnungen in den Protokollen erschweren die Diagnose tatsächlicher Probleme
Hinweis
Nach jedem Hinzufügen einer neuen Domain oder Subdomain zum Hosting von Cyber Folks gehen Sie sofort in die Domain-Einstellungen und überprüfen Sie die Separationsoption – sie wird standardmäßig automatisch aktiviert und es ist besser, sie zu deaktivieren, bevor der Shop Fehler zu generieren beginnt.
Haben Sie weitere Fragen zur PrestaShop-Konfiguration oder zu Hosting-Problemen? Hinterlassen Sie unten einen Kommentar.

Hinterlassen Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Warenkorb

Schließen

Ihr Warenkorb ist leer.

Einkaufen beginnen

Seitenleiste