Heim Datenbank phpMyAdmin Was soll ich tun, wenn phpMyAdmin nicht im Nginx+php-fpm-Modus verwendet werden kann?

Was soll ich tun, wenn phpMyAdmin nicht im Nginx+php-fpm-Modus verwendet werden kann?

Dec 03, 2020 pm 02:34 PM
nginx php-fpm phpmyadmin

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!

Was soll ich tun, wenn phpMyAdmin nicht im Nginx+php-fpm-Modus verwendet werden kann?

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_64
php-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!

    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

    Video Face Swap

    Video Face Swap

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

    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 überprüfen Sie den Namen des Docker -Containers So überprüfen Sie den Namen des Docker -Containers Apr 15, 2025 pm 12:21 PM

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

    So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

    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 überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

    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 den Namen des Cloud -Server -Domänennamens in Nginx So konfigurieren Sie den Namen des Cloud -Server -Domänennamens in Nginx Apr 14, 2025 pm 12:18 PM

    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.

    So überprüfen Sie die Nginx -Version So überprüfen Sie die Nginx -Version Apr 14, 2025 am 11:57 AM

    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.

    So erstellen Sie Container für Docker So erstellen Sie Container für Docker Apr 15, 2025 pm 12:18 PM

    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]

    So starten Sie einen Container von Docker So starten Sie einen Container von Docker Apr 15, 2025 pm 12:27 PM

    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.

    So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

    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

    See all articles