Hinweis: Der folgende Artikel hilft Ihnen dabei: PHP open_basedir: So deaktivieren Sie PHP open_basedir, um die Magento-Leistung zu verbessern
Das E-Commerce-Shop-Management stellt Sie vor vielfältige Herausforderungen, um auf die Bedürfnisse Ihrer Kunden einzugehen. Und in manchen Fällen können diese Herausforderungen mit Kompromissen verbunden sein.
Ein solcher Fall ist die Sicherheit und Leistung Ihrer Website. Einerseits erwarten die meisten Online-Käufer dies von E-Commerce-Websites Laden in drei Sekunden oder weniger. Andererseits, 18 Prozent der Kunden verlassen E-Commerce-Websites Wenn der Käufer mitten in der Reise des Käufers feststellt, dass die Zahlungssicherheit der Website mangelhaft ist.
Wenn Sie als Inhaber eines Magento-Shops ein Gleichgewicht zwischen diesen Anforderungen finden, geraten Sie in eine schwierige Situation. Sie können beispielsweise PHP open_basedir verwenden, um PHP-Skripte daran zu hindern, auf Informationen außerhalb bestimmter Verzeichnisse zuzugreifen, dies geht jedoch auf Kosten der Magento-Leistung.
In dieser Anleitung erklären wir, was PHP open_basedir tut, warum Sie es besser deaktivieren sollten und wie Sie es deaktivieren.
Folgendes werden wir behandeln:
PHP open_basedir 101
PHP open_basedir ist eine PHP-Sicherheitsfunktion, mit der Sie die Verzeichnisse definieren können, auf die PHP-Skripte zugreifen können. Mit anderen Worten: Sie können damit verhindern, dass PHP-Skripte auf Dateien außerhalb der open_basedir-Pfade zugreifen.
Wenn Sie Inhaber einer Magento-Website sind, können Sie normalerweise PHP open_dir in Ihrem Magento-Installationsverzeichnis verwenden, um:
- Verhindern Sie, dass PHP-Skripte auf vertrauliche Dateien außerhalb des Verzeichnisses zugreifen, einschließlich Systemdateien und Dateien anderer auf dem Server gehosteter Websites.
- Schützen Sie den Server vor bösartiger Software wie Viren und anderer Malware, die den Verzeichniszugriff ausnutzt.
- Halten Sie Datensicherheitsstandards wie PCI-DSS für Magento ein.
So überprüfen Sie den Status von PHP open_basedir
Um zu überprüfen, ob PHP open_basedir auf Ihrem Webserver aktiviert oder deaktiviert ist, erstellen Sie eine neue Datei namens info.php mit dem folgenden Code im Stammverzeichnis Ihrer Domain:
Überprüfen Sie als Nächstes den Status von PHP open_basedir, indem Sie zu example.com/info.php gehen. In unserem Beispiel hat open_basedir keinen Wert. Mit anderen Worten, open_basedir ist deaktiviert.
PHP open_basedir Magento-Probleme aktiviert
Während Sie mit PHP open_basedir Ihren Website-Server vor überfordernden PHP-Plugins schützen können, verursacht es bei Magento oft zwei erhebliche Probleme.
Fehler: open_basedir-Einschränkung in Kraft
Magento und seine Erweiterungen versuchen normalerweise, über fopen(), file_exists() oder include() auf Dateien auf dem Server zuzugreifen. Wenn Magento die angeforderte Datei finden kann, ist alles gut.
Wenn Sie jedoch open_basedir aktiviert haben, kann es sein, dass Magento die angeforderte Datei nicht findet. In diesem Fall gibt Magento normalerweise einen Fehler oder eine Warnung zurück, wie zum Beispiel:
Warnung: fopen(): open_basedir-Einschränkung in Kraft. Datei(/tmp) liegt nicht innerhalb der zulässigen Pfade:(/var/www/vhosts/example.com:/usr/share/php)…
Schlechte Magento-Leistung
Während Sie den open_basedir-Einschränkungsfehler möglicherweise umgehen können, indem Sie die problematischen Verzeichnisse manuell zur Liste der zulässigen Verzeichnisse hinzufügen, bedeutet open_basedir für Magento normalerweise mehr Ärger als es wert ist.
Sie können den Realpath-Cache von PHP nicht nutzen, wenn open_basedir aktiviert ist. Mit dem Realpath-Cache können Sie die Pfade von Dateien, die PHP-Skripte enthalten oder auf die sie verweisen, vorübergehend speichern.
Für kleinere Websites mit einer begrenzten Anzahl von Dateien ist die Deaktivierung des Realpath-Cache möglicherweise keine große Sache. Allerdings ist Magento darauf angewiesen, dass zahlreiche Dateien über mehrere Verzeichnisse hinweg zusammenarbeiten. Infolgedessen werden Sie eine verminderte Magento-Leistung mit PHP open_basedir feststellen.
Wir haben beispielsweise einen Test durchgeführt, indem wir die Funktion lstat() zum Magento-Code hinzugefügt und überwacht haben, wie viele lstat-Aufrufe wir erhalten, wenn wir eine Produktseite mit aktiviertem und deaktiviertem open_basedir laden. Hier sind die Ergebnisse.
So deaktivieren Sie PHP open_basedir
Wie Sie PHP open_basedir deaktivieren, hängt von Ihrem Webhosting-Anbieter und Ihrer Hosting-Infrastruktur ab. Lassen Sie uns die drei gängigsten Methoden besprechen.
Bearbeiten der php.ini-Datei über cPanel
Wenn Sie Ihren Server mit cPanel verwalten, können Sie PHP open_basedir mit den folgenden Schritten deaktivieren:
1. Öffnen.
2. Öffnen Sie den Editormodus und wählen Sie Ihre Domain aus.
3. Fügen Sie ein Semikolon hinzu (;) Vor open_basedir um es zu deaktivieren. Alternativ können Sie auch hinzufügen keiner nach = um es zu deaktivieren.
4. Speichern Sie, um die Datei php.ini zu aktualisieren.
Bearbeiten der Apache-Konfigurationsdatei
Wenn Sie einen Nicht-cPanel-Host verwenden, müssen Sie möglicherweise eine Apache-Konfigurationsdatei oder httpd.conf bearbeiten. So können Sie das tun:
1. Greifen Sie über FileZilla oder ein ähnliches Programm auf die Dateien auf Ihrem Webserver zu.
2. Navigieren Sie zu /etc/httpd/conf.
3. Suchen Sie httpd.conf und zeigen Sie es an oder bearbeiten Sie es.
4. Suchen Sie den Eintrag von open_basedir und setzen Sie ihn auf:
php_admin_value open_basedir keine
Kontaktieren Sie Ihren Hosting-Anbieter
Abhängig von Ihrem Hosting-Anbieter können Sie möglicherweise nicht auf httpd.conf zugreifen oder die open_basedir-Einstellungen auf Ihrer Seite ändern.
Wenn Sie die open_basedir-Einstellungen in Ihren Konfigurationsdateien nicht finden können, müssen Sie sich an den Support Ihres Hosting-Anbieters wenden, um Hilfe zu erhalten.
In einigen Fällen nennt der Kundensupport möglicherweise Sicherheitsgründe dafür, die open_basedir-Funktionalität nicht zu deaktivieren. Wenn dies der Fall ist, sind Sie möglicherweise mit einem anderen Webhoster besser bedient, da die PHP Group selbst dies in ihren Dokumenten nicht als zuverlässige Sicherheitsfunktion ansieht.
Abschließende Gedanken: PHP open_basedir – Magento-Empfehlungen von Hostinger
Auch wenn PHP open_basedir Ihnen als Sicherheitsfunktion falschen Komfort bietet, sollten Sie sich nicht auf Kosten der Magento-Leistung darauf verlassen.
Wenn Sie sich für Hostinger Magento Enterprise Hosting entscheiden, erhalten Sie sowohl hohe Leistung als auch robuste Sicherheit. Unsere leistungsoptimierten Server befinden sich in SOC-Typ-II-geprüften Rechenzentren und verfügen über leistungsstarke Funktionen wie PCI-konforme Sicherheit, flexible Architektur usw 100 Prozent Verfügbarkeitund 24/7/365 Support.
Und in unseren Plänen ist open_basedir für eine bessere Leistung standardmäßig deaktiviert.
Schauen Sie sich unsere verwalteten Magento-Pläne an, um noch heute loszulegen.