Inhaltsverzeichnis
1.Open_basedir-Einführung
2. open_basedir-Einstellungsmethode
3. Verwenden Sie open_basedir, um den Verzeichniszugriff einzuschränken.
4 .Leistungsanalyse der Einstellung von open_basedir
Heim Backend-Entwicklung PHP-Tutorial Über die Verwendung und Leistungsanalyse von open_basedir in der Verzeichniskonfiguration von PHP-Dateien

Über die Verwendung und Leistungsanalyse von open_basedir in der Verzeichniskonfiguration von PHP-Dateien

Jun 08, 2018 pm 06:03 PM
php 性能

1.Open_basedir-Einführung

open_basedir Beschränken Sie die Dateien, die PHP öffnen kann, auf den angegebenen Verzeichnisbaum , einschließlich der Datei selbst. Wenn ein Programm eine Datei beispielsweise mit fopen() oder file_get_contents() öffnen möchte, wird der Speicherort der Datei überprüft. Wenn sich die Datei außerhalb des angegebenen Verzeichnisbaums befindet, weigert sich das Programm, sie zu öffnen.

Dieser Befehl wird durch das Ein- oder Ausschalten des abgesicherten Modus nicht beeinflusst.

2. open_basedir-Einstellungsmethode

1. Fügen Sie

open_basedir="指定目录"
Nach dem Login kopieren

2 zu php.ini hinzu .Verwenden Sie

ini_set('open_basedir', '指定目录');
Nach dem Login kopieren

im Programm, aber es wird nicht empfohlen, diese Methode zu verwenden

3. Verzeichniskonfiguration in Apaches httpd.conf

php_admin_value open_basedir "指定目录"
Nach dem Login kopieren
Nach dem Login kopieren

VritualHost in httpd.conf

php_admin_value open_basedir "指定目录"
Nach dem Login kopieren
Nach dem Login kopieren

4.nginx fastcgi.conf

fastcgi_param PHP_VALUE "open_basedir=指定目录"
Nach dem Login kopieren

Der mit open_basedir angegebene Grenzwert ist eigentlich das Präfix, nicht ein Verzeichnisname.
Das heißt, open_basedir=/home/fdipzone ermöglicht auch den Zugriff auf /home/fdipzone_abc. Wenn Sie den Zugriff auf ein Verzeichnis beschränken möchten, verwenden Sie bitte einen Schrägstrich, um den Pfadnamen zu beenden, zum Beispiel: open_basedir=“ /home/fdipzone/“

Wenn Sie mehrere Verzeichnisse einrichten möchten, verwendet Windows; zum Trennen von Verzeichnissen und Linux verwendet: zum Trennen von Verzeichnissen.

3. Verwenden Sie open_basedir, um den Verzeichniszugriff einzuschränken.

Erstellen Sie zunächst einen VirtualHost.
Setzen Sie open_basedir auf /home/fdipzone/sites/in.fdipzone .com/

<VirtualHost *:80>
    ServerAdmin webmaster@localhost    DocumentRoot /home/fdipzone/sites/in.fdipzone.com    ServerName in.fdipzone.com    php_admin_value open_basedir "/home/fdipzone/sites/in.fdipzone.com/"
    <Directory "/home/fdipzone/sites/in.fdipzone.com">
        allow from all Options + Indexes    </Directory></VirtualHost>
Nach dem Login kopieren

Erstellen Sie eine test.txt-Datei im oberen Verzeichnis /home/fdipzone/sites/, erstellen Sie PHP in in.fdipzone.com und führen Sie den folgenden Code aus

<?phpecho file_get_contents(&#39;../test.txt&#39;);?>
Nach dem Login kopieren

Weil test .txt liegt nicht im eingeschränkten Verzeichnisbereich, daher gibt PHP eine Warnung aus
Warnung: file_get_contents(): open_basedir-Einschränkung in Kraft Datei(../test.txt) liegt nicht innerhalb der zulässigen Pfade. : ( /home/fdipzone/sites/in.fdipzone.com/) in /home/fdipzone/sites/in.fdipzone.com/index.php in Zeile 3

4 .Leistungsanalyse der Einstellung von open_basedir

Nachdem open_basedir aktiviert wurde, wirkt sich dies auf die E/A aus, da für jede aufgerufene Datei beurteilt werden muss, ob sie sich im eingeschränkten Verzeichnis befindet.

Programm testen, dieselbe Datei im eingeschränkten Verzeichnis 10.000 Mal lesen

<?php// 记录开始时间$starttime = getMicrotime();// 读取10000次文件for($i=0; $i<10000; $i++){
    file_get_contents(&#39;test.txt&#39;);
}// 记录结束时间$endtime = getMicrotime();

printf("run time %f ms\r\n", ((float)($endtime)-(float)($starttime))*1000);function getMicrotime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>
Nach dem Login kopieren

Open_basedir-Test schließen
Laufzeit 137,237072 ms

Open_basedir-Test öffnen
Laufzeit 404,207945 ms

Nach dem Öffnen von open_basedir wird die Ausführungszeit geschlossen 3 mal.

Zusammenfassung: Die Verwendung von open_basedir kann die Verzeichnisse und Dateien einschränken, die das Programm ausführen kann, und die Systemsicherheit verbessern. Dies beeinträchtigt jedoch die E/A-Leistung und führt zu einer Verlangsamung der Systemausführung. Daher ist es notwendig, Sicherheit und Leistung entsprechend den spezifischen Anforderungen abzuwägen.

In diesem Artikel wird die Verwendung und Leistungsanalyse von open_basedir erläutert, einer PHP-Datei mit der Verzeichniskonfiguration. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erklärung zur Lösung für Cookie-Verlust beim domänenübergreifenden Ajax-Zugriff

Über key_len in MySQL erklären Erklären Sie die Berechnungsmethode

Wie man mit Curl IP und Quelle für den Zugriff über PHP simuliert

Das obige ist der detaillierte Inhalt vonÜber die Verwendung und Leistungsanalyse von open_basedir in der Verzeichniskonfiguration von PHP-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

See all articles