


Was soll ich tun, wenn phpMyAdmin nicht im Nginx+php-fpm-Modus verwendet werden kann?
Das Folgende wird von phpmyadmin in der Tutorial-Spalte eingeführt, um das Problem zu lösen, dass phpMyAdmin nicht im Nginx + PHP-FPM-Modus verwendet werden kann Wer braucht es!
Ich habe gestern eine Frage von einem Internetnutzer erhalten, der sagte, dass ich nach der Installation von nginx+php-fpm+mysql+phpMyAdmin festgestellt habe, dass phpMyAdmin nicht geöffnet werden konnte, und dass ich weiterhin 502-Fehler gemeldet habe Um anderen zu helfen, habe ich das Prinzip des Glücklichseins aus der Ferne gelesen. Die Zusammenfassung der Ideen zur Problemlösung befindet sich am Ende des Artikels Problemlösungsideen stehen ebenfalls im Mittelpunkt dieses Artikels.
Empfohlen: „phpmyadmin-Nutzungsanleitung“
Problemumgebung: CentOS6 nginx+php-fpm+mysql+phpMyAdmin wurde über yum installiert
Problembeschreibung: Nach Abschluss der Installation wird festgestellt, dass dies der Fall ist Kein Problem mit Nginx, aber phpMyAdmin kann nicht geöffnet werden, was zu einem 502-Fehler führt
nginx-1.0.15-12 .el6.x86_64
rrdtool-php-1.3.8-7.el6.x86_64php-pear-1.9.4-4.el6.noarch |
php-devel-5.3.3- 46.el6_6.x86_64 |
php-mbstring-5.3.3-46.el6_6.x86_64 |
php-mcrypt-5.3.3-3.el6.x86_64 |
php-5.3.3-46 .el6_6.x86_64 |
php-tidy-5.3.3-46.el6_6.x86_64 |
php-pecl-memcache-3.0.5-4.el6.x86_64 |
php-xmlrpc-5. 3. 3-46.el6_6.x86_64 |
php-xmlseclibs-1.3.1-3.el6.noarch |
php-common-5.3.3-46. el6_6.x86_64. 46 .el6_6.x86_64. php-cli-5.3.3-46 .6.1- 1.el6.x86_64 |
php-gd -5.3.3-46.el6_6.x86_64 |
Anhand des von Nginx gemeldeten Fehlers 502 können wir zunächst beurteilen, dass ein Problem mit Upstream vorliegt. Bevor wir Upstream erwähnen, listen wir die Nginx-Konfigurationsdatei auf (entfernen Sie die Kommentare, ich habe die Ebene des Nginx-Fehlerprotokolls von der Standardebene angehoben). zur Info) . user nginx; worker_processes 1; error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; client_max_body_size 10M; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; } Nach dem Login kopieren Da in dieser Konfigurationsdatei kein Server explizit angegeben ist, müssen Sie die in include /etc/nginx/conf.d/*.conf; enthaltene Standardserverdatei überprüfen, die /etc/nginx/conf.d / ist. default.conf, entferne die Kommentare cat /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name _; include /etc/nginx/default.d/*.conf; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } } Nach dem Login kopieren Vorläufiges Urteil, es gibt tatsächlich kein Problem mit dieser Nginx-Konfiguration, es sollte ein Problem mit PHP-FPM oder PHP selbst sein (was den Umfang des Problems einschränkt). Überprüfen Sie die Nginx-Protokolldatei (/var/log/nginx/error.log) und finden Sie die folgende Eingabeaufforderung. Es handelt sich definitiv um ein Problem mit PHP-FPM. 2015/08/14 17:05:32 [notice] 9645#0: using the "epoll" event method 2015/08/14 17:05:32 [notice] 9645#0: nginx/1.0.15 2015/08/14 17:05:32 [notice] 9645#0: built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) 2015/08/14 17:05:32 [notice] 9645#0: OS: Linux 2.6.32-504.el6.x86_64 2015/08/14 17:05:32 [notice] 9645#0: getrlimit(RLIMIT_NOFILE): 65535:65535 2015/08/14 17:05:32 [notice] 9646#0: start worker processes 2015/08/14 17:05:32 [notice] 9646#0: start worker process 9648 2015/08/14 17:05:36 [error] 9648#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101" 2015/08/14 17:09:22 [error] 9648#0: *4 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101" 2015/08/14 17:11:23 [error] 9648#0: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101" 2015/08/14 17:11:33 [info] 9648#0: *9 client closed prematurely connection while reading client request line, client: 192.168.1.228, server: 192.168.1.101 Nach dem Login kopieren Erstellen Sie eine Datei, die das kann Öffnen Sie phpinfo und prüfen Sie, ob die PHP-Datei korrekt analysiert werden kann (was den Umfang des Problems weiter einschränkt) Es wurde festgestellt, dass php-fpm die PHP-Datei normal analysieren kann und jede darin enthaltene PHP-Komponente normal angezeigt wird Überprüfen Sie die Version von phpMyAdmin, und überprüfen Sie die Dokumentation auf der offiziellen Website, um zu sehen, ob es php5.3.3 unterstützt. Es wurde festgestellt, dass das aktuelle phpMyAdmin es unterstützt, daher sollte es kein Problem mit phpMyAdmin sein Begann, das Protokoll von php- zu überprüfen. fpm (/var/log/php-fpm/error.log) und habe Folgendes gefunden: [14-Aug-2015 16:34:53] NOTICE: fpm is running, pid 9522 [14-Aug-2015 16:34:53] NOTICE: ready to handle connections [14-Aug-2015 16:43:54] WARNING: [pool www] child 9527 exited on signal 11 (SIGSEGV) after 541.401349 seconds from start [14-Aug-2015 16:43:55] NOTICE: [pool www] child 9614 started [14-Aug-2015 16:44:00] WARNING: [pool www] child 9526 exited on signal 11 (SIGSEGV) after 547.107407 seconds from start [14-Aug-2015 16:44:00] NOTICE: [pool www] child 9615 started [14-Aug-2015 17:05:36] WARNING: [pool www] child 9523 exited on signal 11 (SIGSEGV) after 1843.098829 seconds from start [14-Aug-2015 17:05:36] NOTICE: [pool www] child 9649 started Nach dem Login kopieren Dieses Protokoll Offensichtlich reicht es nicht aus, genügend Informationen bereitzustellen, um das Problem zu lösen. Ändern Sie daher einige Parameter der Protokollebene in PHP. fpm und php.ini, um die Protokollebene zu erhöhen und detaillierte Fehlerinformationen zu erhalten. Suchen Sie nach dem Protokollschlüsselwort in der Konfigurationsdatei oder ändern Sie es entsprechend der Dokumentation oder den Informationen. Einige Methoden oder Schritte sind wie folgt: /etc/php-fpm.conf-Datei, ändern Sie die Protokollebene von „Notice“ auf „Debug“. log_level = debug Nach dem Login kopieren /etc/ Die Datei php-fpm.d/www.conf leitet die Standardausgabe und Fehlerausgabe des PHP-Workers von /dev/null an das Hauptfehlerprotokoll um, das /var/log/php-fpm/ ist. error.log catch_workers_output = yes Nach dem Login kopieren /etc/php.ini-Datei error_reporting = E_ALL & ~E_DEPRECATED display_errors = On display_startup_errors = On log_errors = On track_errors = On html_errors = On Nach dem Login kopieren Starten Sie php-fpm erneut und finden Sie detaillierte Fehler im Worker: [14-Aug-2015 17:09:18] NOTICE: fpm is running, pid 9672 [14-Aug-2015 17:09:18] NOTICE: ready to handle connections [14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: "[Fri Aug 14 17:09:22 2015" [14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: "] [notice] EACCELERATOR(9673): PHP crashed on opline 30 of PMA_URL_getCommon() at /usr/share/nginx/html/libraries/url_generating.lib.php:188" [14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: "" [14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 exited on signal 11 (SIGSEGV) after 4.286828 seconds from start [14-Aug-2015 17:09:22] NOTICE: [pool www] child 9679 started [14-Aug-2015 17:11:23] WARNING: [pool www] child 9675 said into stderr: "[Fri Aug 14 17:11:23 2015" [14-Aug-2015 17:11:23] WARNING: [pool www] child 9675 said into stderr: "] [notice] EACCELERATOR(9675): PHP crashed on opline 30 of PMA_URL_getCommon() at /usr/share/nginx/html/libraries/url_generating.lib.php:188" Nach dem Login kopieren In der Fehlermeldung wird das PHP-Modul EACCELERATOR erwähnt. Stellen Sie daher zunächst fest, ob ein Problem mit vorliegt Deaktivieren Sie dieses Modul daher zunächst, indem Sie die Datei /etc/php.d/eaccelerator.ini in einen Suffixnamen ändern, z. B. mv /etc/php.d/eaccelerator.ini /etc/php.d/eaccelerator. ini~, Starten Sie dann php-fpm neu, überprüfen Sie die Ergebnisse erneut und stellen Sie fest, dass das Problem behoben wurde. Es kann sein, dass Eaccelerator mit phpMyAdmin in Konflikt steht. Wenn Sie also phpMyAdmin verwenden möchten, können Sie dieses Modul deaktivieren oder dieses Paket während der Installation überspringen. Hinweis: eAccelerator ist ein kostenloser und Open-Source-PHP-Beschleuniger, der das Caching von Inhalten optimiert und dynamisch macht, die Caching-Leistung von PHP-Skripten verbessert und den Server-Overhead von PHP-Skripten im kompilierten Zustand fast vollständig eliminiert. Es optimiert auch Skripte, um ihre Ausführungseffizienz zu beschleunigen. Verbessern Sie die Ausführungseffizienz des PHP-Programmcodes um das 1- bis 10-fache. (von bdbk) Zusammenfassung der Problemlösungsideen Artikel 0, Kommunikation ist der Schlüssel zur Fehlerdiagnose, z. B. Bereitstellungsplan, Schritte, durchgeführte Vorgänge usw. Erstens ist nginx + php-fpm + phpMyAdmin aufgrund meiner Erfahrung eine sehr zuverlässige Kombination. Ich gehe daher davon aus, dass es sich um ein individuelles Problem und nicht um ein Batch-Problem handelt Pakete, Nginx-, PHP- und phpMyAdmin-Versionen sind alle zu überprüfen. Dieser Schritt hilft dabei, zunächst anhand Ihres Wissens und Ihrer Erfahrung zu beurteilen, ob sie miteinander kompatibel sind und ob nicht behobene Fehler vorliegen. Zweitens führen Sie nginx -t aus, um zu überprüfen, ob explizite Fehler in der Nginx-Konfigurationsdatei vorhanden sind, und überprüfen Sie den Betriebsstatus von nginx Drittens führen Sie php-fpm -t aus, um zu überprüfen, ob explizite Fehler in der PHP-fpm-Konfiguration vorhanden sind Datei und überprüfen Sie den PHP-FPM-Laufstatus. Fünftens: Wenn die Protokollaufforderung offensichtlich ist, befolgen Sie die Protokollaufforderung, ändern Sie die entsprechende Konfigurationsdatei und überprüfen Sie das Problem erneut. Sechstens: Wenn weiterhin ein Problem besteht, ist dieser Schritt der kritischste Schritt zur Lösung des Problems Problem. Sie müssen die Protokollierungsstufe erhöhen. Deshalb gibt es Debug und es wird Debuggen genannt. Erhöhen Sie die Protokollierungsstufe von Nginx auf „Info“. Es gibt eine Option „--debug“. Wenn Nginx kompiliert ist, müssen Sie es nicht verwenden. Erhöhen Sie die Protokollebene von PHP, um zu debuggen. Siebentens: Nach dem Neustart von Nginx und PHP-FPM Wenn die Datei wirksam wird, öffnen Sie die Webseite erneut, um das Problem zu reproduzieren, öffnen Sie das Protokoll erneut, ändern Sie die entsprechende Konfigurationsdatei gemäß den Protokollanweisungen und überprüfen Sie sie erneut Zeit, es zu konsultieren, Google zu durchsuchen, wenn es Zeit ist, bei Google zu suchen, Fehler zu melden, wenn es weiterhin erfolglos bleibt, dann finden Sie eine andere Möglichkeit, das Problem zu lösen. Die richtige Lösung finden Sie hier: Beziehen Sie sich auf die vorhandenen erfolgreichen Versionskombinationen, ändern Sie die Versionskombinationen oder modifizieren Sie die Konfigurationsdateien, um Umgebungsunterschiede zu beseitigen, was für eine schnelle Problemlösung geeignet ist Ändern Sie die yum-Installation in eine kompilierte Installation, oder yum installiert weniger Pakete, um den Umfang des Problems mit einer minimalen Installationsmethode auf ein Minimum zu reduzieren, wodurch das Problem identifiziert und die Fähigkeit zur Lösung des Problems verbessert wird, was für Forschung und Lernen geeignet ist Eine letzte Sache noch: Solange das Problem reproduziert werden kann und nicht zufällig auftritt, wird es gut gelöst, also geraten Sie nicht in Panik, seien Sie nicht ungestüm und geben Sie nicht auf kann es sogar langsam angehen und dann ruhig damit umgehen. --Ende-- |
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn phpMyAdmin nicht im Nginx+php-fpm-Modus verwendet werden kann?. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen
