Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Bytecode-Caching und integrierter Server im Detail

PHP-Bytecode-Caching und integrierter Server im Detail

小云云
小云云Original
2018-01-26 14:18:381885Durchsuche

1). Ab PHP5.0 gibt es eine integrierte Bytecode-Caching-Funktion namens Zend OPcache. Da PHP eine interpretierte Sprache ist, analysiert der PHP-Interpreter beim Ausführen eines PHP-Skripts den PHP-Skriptcode, generiert eine Reihe von Zend-Opcodes und führt dann den Bytecode aus. Dies ist bei jeder HTTP-Anfrage der Fall, was viel verbraucht von Ressourcen und verwendet Bytecodes, um vorkompilierten Bytecode zwischenzuspeichern, was die Reaktionszeit verkürzt und den Druck auf die Systemressourcen verringert.

Zend OPcache aktivieren

Standardmäßig wird Zend OPcache nicht gestartet. Wenn Sie PHP selbst kompilieren, muss der Befehl bei der Ausführung die folgenden Optionen enthalten:

--enable-opcache

Nach dem Kompilieren von PHP müssen Sie auch den Erweiterungspfad von Zend OPcache in der Datei php.ini angeben, wie unten gezeigt:

zend_extension=/path/to/opcache.so

Nachdem PHP erfolgreich kompiliert wurde, wird der Dateipfad der Zend OPcache-Erweiterung sofort angezeigt. Sie können den folgenden Befehl verwenden, um den Pfad dieser PHP-Erweiterung zu finden

php-config --extension-dir

. Verwenden Sie dann den folgenden Code, um zu bestätigen, dass die Erweiterung normal ausgeführt wird

<?php
phpinfo();

Zend OPcache konfigurieren

Empfohlene Konfiguration

opcache.validate_timestamps = 1 //在生产环境中设为'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1

Sie können die offizielle PHP-Website besuchen, um detaillierte Einstellungen anzuzeigen.

Zend OPcache verwenden

1). Die Produktionsumgebung kann opcache.validate_timestamps=0 setzen. In der Entwicklungsumgebung muss es auf 1 eingestellt werden

Eingebauter HTTP-Server

1). >

2 ). .htaccess-Dateien werden nicht unterstützt. bedeutet, dass der Controller-Modus nicht unterstützt wird. Der Front-End-Controller wird zum Weiterleiten aller HTTP-Anfragen verwendet, die über .htaccess-Dateien oder Umschreiberegeln implementiert werden müssen.

3). Sie können Router-Skripte verwenden, um die oben genannten Funktionen zu erreichen. Allerdings werden nur wenige URL-Rewriting-Regeln unterstützt. php -S localhost:8000 router.php

4).

Adresse des Verzeichnisses der PHP-Themenreihe: github.com/xx19941215/…

<?php
if (php_sapi_name() === 'cli-server') {
 //php内置服务器
} else {
 // 其他Web服务器
}
Die PHP-Themenreihe wird voraussichtlich etwa zwanzig Artikel umfassen und hauptsächlich das Grundwissen zusammenfassen, das in unserer täglichen PHP-Entwicklung leicht übersehen wird Standards und Vorschriften in der modernen PHP-Entwicklung. Einige praktische Vorschläge für die Bereitstellung und Optimierung sowie eingehende Untersuchungen zu den Eigenschaften der Javascript-Sprache.

Verwandte Empfehlungen:

Über die Verwendung des integrierten PHP-Servers

Das obige ist der detaillierte Inhalt vonPHP-Bytecode-Caching und integrierter Server im Detail. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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