Heim Backend-Entwicklung PHP7 php.ini-, php-fpm- und www.conf-Konfiguration in PHP7

php.ini-, php-fpm- und www.conf-Konfiguration in PHP7

Aug 23, 2019 pm 02:07 PM
php7

PHP7Konfiguration von php.ini, php-fpm und www.conf

php.ini wird von PHP ausgeführt Kernkonfigurationsdatei, im Folgenden sind einige gängige Konfigurationen aufgeführt

extension_dir=""

● Legen Sie den Pfad der PHP-Erweiterungsbibliothek fest

expose_php = Off

● Vermeiden Sie die Offenlegung von PHP-Informationen in HTTP-Headern

display_errors = Off

● Vermeiden Sie die Offenlegung von Fehlermeldungen, wenn PHP MySQL aufruft

log_errors = On

● Beim Schließen Aktivieren Sie das PHP-Fehlerprotokoll nach display_errors (der Pfad ist in php-fpm.conf konfiguriert)

zend_extension=opcache.so extension=mysqli.so extension=pdo_mysql.so

● Richten Sie PHPs Opcache und die dynamische MySQL-Bibliothek ein

date.timezone = PRC

● Stellen Sie die PHP-Zeitzone ein

opcache.enable=1

● Aktivieren Sie Opcache

open_basedir = /usr/share/nginx/html;

● Stellen Sie das PHP-Skript so ein, dass der Zugriff auf das Verzeichnis möglich ist (muss entsprechend der tatsächlichen Situation konfiguriert werden).

php-fpm.conf ist die Konfigurationsdatei des PHP-FPM-Prozessdienstes. Im Folgenden sind einige Gemeinsamkeiten aufgeführt Konfigurationen

error_log = /usr/local/php/logs/php-fpm.log

● Legen Sie den Pfad des Fehlerprotokolls fest

include=/usr/local/php7/etc/php-fpm.d/*.conf

● Geben Sie die Konfiguration im www ein. conf-Datei (standardmäßig festgelegt)

Die Hauptkonfigurationsinformationen von php-fpm.conf und www.conf

pid = run/php-fpm.pid

● pid Die Standardeinstellung ist var/run/php-fpm.pid im Installationsverzeichnis. Es wird empfohlen, das Fehlerprotokoll

error_log = log/php-fpm.log

● zu aktivieren, das var/log/ ist. php-fpm.log standardmäßig im Installationsverzeichnis

log_level = notice

● Fehlerstufe: Warnung (muss sofort verarbeitet werden), Fehler (Fehlersituation), Warnung ( Warnsituation), Hinweis (allgemeine wichtige Informationen), Debug (Debugging-Informationen).

emergency_restart_threshold = 60

emergency_restart_interval = 60s

● Zeigt an, dass, wenn die Die Anzahl der PHP-CGI-Prozesse mit SIGSEGV- oder SIGBUS-Fehlern innerhalb des durch Emergency_restart_interval festgelegten Werts überschreitet Emergency_restart_threshold. PHP-FPM führt einen ordnungsgemäßen Neustart durch. Diese beiden Optionen bleiben im Allgemeinen auf ihren Standardwerten.

process_control_timeout = 0

● Legen Sie das Zeitlimit für den untergeordneten Prozess fest, um das Wiederverwendungssignal des Hauptprozesses zu akzeptieren. Verfügbare Einheiten: s (Sekunden), m (Minuten), h (Stunden). , oder d (Tage) Standardeinheit: s (Sekunden).

daemonize = yes

● Der Standardwert ist „Ja“, was möglich ist Zum Debuggen in „Nein“ geändert. In FPM ist es möglich, mehrere Prozesspools mit unterschiedlichen Einstellungen auszuführen. Diese Einstellungen können für jeden Prozesspool individuell festgelegt werden.

listen = 127.0.0.1:9000

● Der Listening-Port ist die von PHP in Nginx verarbeitete Adresse. Im Allgemeinen ist der Standardwert ausreichend. Verfügbare Formate sind: „ip:port“, „port“, „/path/to/unix/socket“. Jeder Prozesspool muss festgelegt werden.

listen.backlog = -1

● Rückstand Zahl, -1 bedeutet unbegrenzt, wird vom Betriebssystem bestimmt, kommentieren Sie diese Zeile einfach aus.

listen.allowed_clients = 127.0.0.1

● Erlauben Sie den Zugriff auf die IP des FastCGI-Prozesses. Stellen Sie „any“ auf „uneingeschränkte IP“ ein. Wenn Sie nginx anderer Hosts so einstellen möchten, dass sie ebenfalls auf diesen FPM-Prozess zugreifen Kosten beim Abhören der IP-Adresse, auf die zugegriffen werden kann. Der Standardwert ist beliebig. Jede Adresse wird durch Kommas getrennt. Wenn sie nicht festgelegt oder leer ist, darf jeder Server eine Verbindung anfordern

listen.owner = www listen.group = www listen.mode = 0666

● Unix-Socket-Einstellungsoptionen, bei Zugriff über TCP, hier kommentieren. Das ist Es.

user = www group = www

● Konto und Gruppe zum Starten des Prozesses

PHP-FPM-Prozesspool-Optimierungsmethode

pm = dynamic

● Für dedizierte Server kann PM auf statisch eingestellt werden.

So steuern Sie den untergeordneten Prozess. Die Optionen sind statisch und dynamisch. Wenn „Statisch“ ausgewählt ist, wird durch pm.max_children eine feste Anzahl an untergeordneten Prozessen angegeben. Wenn dynamisch ausgewählt ist, wird dies durch die folgenden Parameter bestimmt:

pm.max_children

● Die Anzahl der im statischen Modus geöffneten PHP-FPM-Prozesse und begrenzt den maximalen Prozess von PHP- fpm im dynamischen Modus Nummer (beachten Sie hier, dass der Wert von pm.max_spare_servers nur kleiner oder gleich pm.max_children sein kann)

pm.start_servers

● Die Anzahl der anfänglichen PHP-FPM Prozesse im dynamischen Modus.

pm.min_spare_servers

● Stellen Sie sicher, dass die Mindestanzahl an Leerlaufprozessen unter diesem Wert liegt, erstellen Sie einen neuen untergeordneten Prozess

pm.max_spare_servers

● Garantieren Sie die maximale Anzahl von Leerlaufprozessen. Wenn die Anzahl der Leerlaufprozesse größer als dieser Wert ist, wird sie bereinigt

● Wenn dm auf static gesetzt ist, wird nur der Parameter pm.max_children wirksam. Das System öffnet die durch die Parameter festgelegte Anzahl von PHP-FPM-Prozessen. Ein PHP-FPM-Prozess wird wahrscheinlich 20 bis 40 MB Speicher belegen, daher sollte seine numerische Größeneinstellung entsprechend der Größe Ihres physischen Speichers festgelegt werden. Sie sollten auch auf andere Speicherbelegungen wie Datenbanken, Systemprozesse usw. achten. , um die Einstellwerte der oben genannten 4 Parameter zu bestimmen!

● Wenn dm auf dynamisch eingestellt ist, werden alle 4 Parameter wirksam. Das System startet die php-fpm-Prozesse von pm.start_servers, wenn php-fpm ausgeführt wird, und passt dann die Anzahl der php-fpm-Prozesse zwischen pm.min_spare_servers und pm.max_spare_servers entsprechend den Anforderungen des Systems dynamisch an. Der Parameter erfordert, dass der Wert von pm.start_servers zwischen pm.min_spare_servers und pm.max_spare_servers liegt.

pm.max_requests = 1000

● Legen Sie die Anzahl der bearbeiteten Anfragen fest, bevor jeder untergeordnete Prozess wiedergeboren wird.

● Die maximale Anzahl der verarbeiteten Anfragen bezieht sich darauf, wie viele Anfragen ein PHP-. Der fpm-Worker-Prozess wird verarbeitet. Nachdem eine Anfrage beendet wurde, wird der Master-Prozess eine neue erneut starten.

● Der Hauptzweck dieser Konfiguration besteht darin, Speicherverluste zu vermeiden, die durch den PHP-Interpreter oder durch das Programm referenzierte Bibliotheken von Drittanbietern verursacht werden.

ist sehr nützlich für Module von Drittanbietern, die möglicherweise Speicherlecks aufweisen. Wenn sie auf „0“ gesetzt sind, werden Anforderungen immer akzeptiert. Standardwert: 0.

pm.status_path = /status

● Die URL der FPM-Statusseite. Wenn nicht festgelegt, kann auf die Statusseite nicht zugegriffen werden: Keine >

● Die Ping-URL der FPM-Überwachungsseite. Wenn sie nicht festgelegt ist, kann auf die Ping-Seite nicht zugegriffen werden. Diese Seite wird verwendet, um extern zu erkennen, ob das FPM aktiv ist und auf Anfragen antworten kann Beginnen Sie mit einem Schrägstrich (/).

ping.path = /ping

● Wird verwendet, um die Antwort auf die Ping-Anfrage zu definieren. Der zurückgegebene Text/einfache Formattext ist HTTP 200. Standardwert: pong.

ping.response = pong

● Legen Sie das Zeitlimit für eine einzelne Anfrage fest. Diese Option kann nützlich sein, wenn die Einstellung „max_execution_time“ in der php.ini das laufende Skript aus bestimmten Gründen nicht abbricht. für „Aus“. Sie können versuchen, diese Option zu ändern, wenn 502-Fehler häufig auftreten.

request_terminate_timeout = 0

● Wenn für eine Anfrage der Timeout-Zeitraum festgelegt ist, werden die entsprechenden PHP-Call-Stack-Informationen vollständig in das langsame Protokoll geschrieben. Die Einstellung „0“ bedeutet „Aus“. '

request_slowlog_timeout = 10s

● Langsame Anforderungsprotokollierung, Verwendung mit request_slowlog_timeout

slowlog = log/$pool.log.slow

● Legen Sie das rlimit des Dateiöffnungsdeskriptorlimits fest. Standardwert: Der systemdefinierte Wert des standardmäßigen öffenbaren Handles ist 1024, der mit ulimit -n angezeigt und mit ulimit -n 2048 geändert werden kann.

rlimit_files = 1024

● Legen Sie den maximalen Grenzwert von core rlimit fest. Verfügbare Werte: „unbegrenzt“, 0 oder positive Ganzzahl.

rlimit_core = 0

● Chroot-Verzeichnis beim Start. Wenn nicht festgelegt, wird chroot nicht verwendet >● Festlegen des Startverzeichnisses, in das beim Start automatisch verwiesen wird. Das definierte Verzeichnis muss ein absoluter Pfad sein: aktuelles Verzeichnis oder /directory (beim Chrooten)

chroot =

● Leiten Sie stdout und stderr während des laufenden Prozesses zur Hauptfehlerprotokolldatei um. Wenn nicht festgelegt, werden stdout und stderr gemäß den FastCGI-Regeln umgeleitet.`

chdir =

         

● Bereinigen Sie die Umgebung

catch_workers_output = yes

variables_order

Der Variable_order-Parameter wird in einem anderen Artikel clear_env = no  https://www .php .cn/php-weizijiaocheng-429277.html

Häufige Fehler und Lösungen

Das Anforderungszeitlimit ist nicht festgelegt

● Wenn der Wert von request_terminate_timeout auf 0 oder zu lang eingestellt ist, kann dies dazu führen, dass das PHP-Skript weiterhin ausgeführt wird. Wenn alle PHP-CGI-Prozesse in der Funktion file_get_contents() hängen bleiben, kann dieser Nginx+PHP-WebServer auf diese Weise keine neuen PHP-Anfragen mehr verarbeiten und Nginx gibt „502 Bad Gateway“ an den Benutzer zurück. Das Festlegen einer

maximalen Ausführungszeit für PHP-Skripte ist notwendig, behandelt aber eher die Symptome als die Grundursache. Wenn es beispielsweise auf 30 Sekunden geändert wird und file_get_contents () langsam ist, um Webseiteninhalte abzurufen, bedeutet dies, dass 150 PHP-CGI-Prozesse nur 5 Anforderungen pro Sekunde verarbeiten können und es für WebServer auch schwierig ist, „502 Bad“ zu vermeiden Tor". Die Lösung besteht darin, request_terminate_timeout auf 10 Sekunden oder einen angemessenen Wert zu setzen oder einen Timeout-Parameter zu file_get_contents hinzuzufügen!

Unsachgemäße Konfiguration des max_requests-Parameters

● Eine unsachgemäße Konfiguration des max_requests-Parameters kann zu zeitweiligen 502-Fehlern führen:

● Legen Sie die Anzahl der bearbeiteten Anfragen fest, bevor jeder untergeordnete Prozess neu gestartet wird. Dies ist sehr nützlich für Module von Drittanbietern, die möglicherweise Speicherlecks aufweisen. Wenn sie auf „0“ gesetzt sind, werden Anfragen immer akzeptiert Variable. Standardwert: 0.

Diese Konfiguration bedeutet, dass der Prozess automatisch neu gestartet wird, wenn die Anzahl der von einem PHP-CGI-Prozess verarbeiteten Anfragen 500 erreicht.

● Aber warum müssen wir den Prozess neu starten?

● Im Allgemeinen verwenden wir in gewissem Umfang einige PHP-Bibliotheken von Drittanbietern. Wenn der PHP-CGI-Prozess nicht regelmäßig neu gestartet wird, kommt es häufig zu Speicherverlusten verursachen einen weiteren Anstieg der Speicherauslastung. Daher stellt PHP-FPM als Manager von PHP-CGI eine solche Überwachungsfunktion bereit, um den PHP-CGI-Prozess neu zu starten, der eine bestimmte Anzahl von Malen angefordert hat, um sicherzustellen, dass die Speichernutzung nicht ansteigt.

php-fpms langsames Protokoll-, Debug- und Ausnahme-Fehlerbehebungstool

● request_slowlog_timeout legt einen Timeout-Parameter fest, slowlog legt den Speicherort des langsamen Protokolls fest, tail -f / Sie können den PHP-Prozess, der zu langsam ausgeführt wird, in var/log/www.slow.log sehen.

Sie können die häufigen Probleme übermäßiger Netzwerklesung und langsamer MySQL-Abfragen erkennen. Wenn Sie den Anweisungen zur Behebung des Problems folgen, erhalten Sie eine klare Richtung.

Das obige ist der detaillierte Inhalt vonphp.ini-, php-fpm- und www.conf-Konfiguration in PHP7. 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate 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)

So installieren Sie die Mongo-Erweiterung in PHP7.0 So installieren Sie die Mongo-Erweiterung in PHP7.0 Nov 21, 2022 am 10:25 AM

So installieren Sie die Mongo-Erweiterung in PHP7.0: 1. Erstellen Sie die Mongodb-Benutzergruppe und den Mongodb-Benutzer. 2. Laden Sie das Mongodb-Quellcodepaket herunter und platzieren Sie das Quellcodepaket im Verzeichnis „/usr/local/src/“. Geben Sie das Verzeichnis „src/“ ein. 4. Entpacken Sie das Quellcodepaket. 6. Kopieren Sie die Dateien in das Verzeichnis „mongodb/“.

So lösen Sie das Problem, wenn PHP7 erkennt, dass der TCP-Port nicht funktioniert So lösen Sie das Problem, wenn PHP7 erkennt, dass der TCP-Port nicht funktioniert Mar 22, 2023 am 09:30 AM

In PHP5 können wir die Funktion fsockopen() verwenden, um den TCP-Port zu erkennen. Mit dieser Funktion können Sie eine Netzwerkverbindung herstellen und eine Netzwerkkommunikation durchführen. In PHP7 kann die Funktion fsockopen() jedoch auf einige Probleme stoßen, z. B. dass der Port nicht geöffnet werden kann, keine Verbindung zum Server hergestellt werden kann usw. Um dieses Problem zu lösen, können wir die Funktionen socket_create() und socket_connect() verwenden, um den TCP-Port zu erkennen.

Was soll ich tun, wenn das Plug-in in php7.0 installiert ist, aber immer noch angezeigt wird, dass es nicht installiert ist? Was soll ich tun, wenn das Plug-in in php7.0 installiert ist, aber immer noch angezeigt wird, dass es nicht installiert ist? Apr 02, 2024 pm 07:39 PM

So beheben Sie das Problem, dass das Plugin in PHP 7.0 nicht installiert ist: Überprüfen Sie die Plugin-Konfiguration und aktivieren Sie das Plugin. Starten Sie PHP neu, um die Konfigurationsänderungen zu übernehmen. Überprüfen Sie die Berechtigungen der Plugin-Datei, um sicherzustellen, dass sie korrekt sind. Installieren Sie fehlende Abhängigkeiten, um sicherzustellen, dass das Plugin ordnungsgemäß funktioniert. Wenn alle anderen Schritte fehlschlagen, erstellen Sie PHP neu. Weitere mögliche Ursachen sind inkompatible Plugin-Versionen, das Laden der falschen Version oder PHP-Konfigurationsprobleme.

FAQ-Leitfaden zur PHP-Serverumgebung: Häufige Probleme schnell lösen FAQ-Leitfaden zur PHP-Serverumgebung: Häufige Probleme schnell lösen Apr 09, 2024 pm 01:33 PM

Zu den gängigen Lösungen für PHP-Serverumgebungen gehört die Sicherstellung, dass die richtige PHP-Version installiert ist und relevante Dateien in das Modulverzeichnis kopiert wurden. Deaktivieren Sie SELinux vorübergehend oder dauerhaft. Überprüfen und konfigurieren Sie PHP.ini, um sicherzustellen, dass die erforderlichen Erweiterungen hinzugefügt und korrekt eingerichtet wurden. Starten oder starten Sie den PHP-FPM-Dienst neu. Überprüfen Sie die DNS-Einstellungen auf Auflösungsprobleme.

So installieren und implementieren Sie PHP7.0 So installieren und implementieren Sie PHP7.0 Nov 30, 2022 am 09:56 AM

So installieren und implementieren Sie PHP7.0: 1. Gehen Sie zur offiziellen PHP-Website, um die dem lokalen System entsprechende Installationsversion herunterzuladen. 2. Extrahieren Sie die heruntergeladene ZIP-Datei in das angegebene Verzeichnis. 3. Öffnen Sie das Befehlszeilenfenster und gehen Sie zu das Verzeichnis „E:\php7“ Führen Sie einfach den Befehl „php -v“ aus.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Apr 01, 2025 pm 03:06 PM

Ursachen und Lösungen für Fehler Bei der Verwendung von PECL zur Installation von Erweiterungen in der Docker -Umgebung, wenn die Docker -Umgebung verwendet wird, begegnen wir häufig auf einige Kopfschmerzen ...

Was ist besser, PHP8 oder PHP7? Was ist besser, PHP8 oder PHP7? Nov 16, 2023 pm 03:09 PM

Im Vergleich zu PHP7 bietet PHP8 einige Vorteile und Verbesserungen in Bezug auf Leistung, neue Funktionen und Syntaxverbesserungen, Typsystem, Fehlerbehandlung und Erweiterungen. Die Wahl der zu verwendenden Version hängt jedoch von Ihren spezifischen Anforderungen und Projektumständen ab. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt den Just-in-Time-Compiler (JIT) ein, der die Ausführungsgeschwindigkeit des Codes verbessern kann. 2. Neue Funktionen und Syntaxverbesserungen. PHP8 unterstützt die Deklaration benannter Parameter und optionaler Parameter. Durch die flexiblere Gestaltung von Funktionen werden anonyme Klassen, Typdeklarationen von Eigenschaften usw. eingeführt.

See all articles