php.ini-, php-fpm- und www.conf-Konfiguration in 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
ping.response = pong
request_terminate_timeout = 0
request_slowlog_timeout = 10s
slowlog = log/$pool.log.slow
rlimit_files = 1024
rlimit_core = 0
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 =
catch_workers_output = yes
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 einermaximalen 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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/“.

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.

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.

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

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 ...

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 ...

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.
