phpMyAdmin 502 网关错误 [CentOS7, nginx]

Posted

技术标签:

【中文标题】phpMyAdmin 502 网关错误 [CentOS7, nginx]【英文标题】:phpMyAdmin 502 bad gateway [CentOS7, nginx] 【发布时间】:2021-07-24 16:47:11 【问题描述】:

我正在学习centos7和nginx。我可以使用 cerbot SSL 显示 index.html。 我安装了 phpmyAdmin 然后我打开 https://mywebsite.com/phpMyAdmin/ 我收到 502 Bad Gateway 错误 有人可以教我正确的方法吗?

这是我的日志。

2021/05/01 17:23:08 [error] 15816#15816: *103 connect() failed (111: Connection refused) while connecting to upstream, client: 125.xxx.xxx.xx, server: mywebsite.com, request: "GET /phpMyAdmin/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "mywebsite.com"

2021/05/01 17:23:09 [error] 15816#15816: *103 open() "/var/www/html/favicon.ico" failed (2: No such file or directory), client: 125.xxx.xxx.xx, server: mywebsite.com, request: "GET /favicon.ico HTTP/1.1", host: "mywebsite.com"

这是我的 nginx.conf

http 
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

server 
    listen  443 ssl;
    server_name     mywebiste.com;


    root /var/www/html;

location / 
index index.php index.html index.htm;


location ^~ /blog 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://127.0.0.1:2368;
  

location ~ \.php$ 
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;


这是我的 /etc/nginx/conf.d/default.conf 服务器

    location /phpMyAdmin 
        alias /usr/share/phpMyAdmin/;
        try_files $uri $uri/ /index.php;

        location ~ ^/phpMyAdmin/(.+\.php)$ 
            alias /usr/share/phpMyAdmin;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;
            include fastcgi_params;
            fastcgi_intercept_errors on;
            allow XXX.XXX.XX.XX;  # 
            deny  all;            # 
        
         


更新(我做了亲爱的qwsj回答,之后这是我的更新。)

我在 /usr/share/phpMyAdmin 安装了 phpmyadmin

ln -s /usr/share/phpMyAdmin /var/www/html/mywebisite/phpmyadmin

我打开 https://mywebisite/phpmyadmin/

错误日志说 “/var/www/html/mywebisite/phpmyadmin/”的目录索引被禁止,

【问题讨论】:

【参考方案1】:

在错误日志upstream: "fastcgi://127.0.0.1:9000" 中,但在配置中您使用的是 unix 套接字(mb 您没有重新加载/重启?)。

检查 php-fpm 配置(变量listen),套接字/var/run/php-fpm.sock/var/run/php-fpm/php-fpm.sock 的真实路径是什么?

另外,在此之后,检查 php-fpm 的监听权限,用户必须与 nginx 配置(nginx.conf)中的用户相同。 PHP-FPM 池配置 例如:

listen.owner = nginx
listen.group = nginx

Nginx 配置例如:

user nginx;

UPD:请检查 SELinux 状态,需要禁用它:

[root ~]# sestatus
SELinux status:                 enabled
...

将 SELinix /etc/selinux/configSELINUX=enforcing 更新为 SELINUX=disabled。在此之后,需要重新启动。 重启后:

[root ~]# sestatus
SELinux status:                 disabled
[root ~]#

我的测试配置:

    location /phpMyAdmin 
        root /usr/share;
        index index.php index.html index.htm;
        location ~ ^/phpMyAdmin/(.+\.php)$ 
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_intercept_errors on;
        
    

不要创建符号链接ln -s /usr/share/phpMyAdmin /var/www/html/mywebisite/phpmyadmin,它不需要

【讨论】:

亲爱的@qwsj 非常感谢你帮助我。我做了你教我的。事情变得更好^^和错误改变了。你能看看我的更新吗? 亲爱的@qwsj 非常非常感谢!!!有效!我真的很感谢你帮助了我。非常感谢!

以上是关于phpMyAdmin 502 网关错误 [CentOS7, nginx]的主要内容,如果未能解决你的问题,请参考以下文章

作为提供者的 502 错误网关错误

Nginx 声明“502 错误网关”

Yarp 反向代理 - 响应 502 错误网关

使用 ngrok 的 502 错误网关

Android studio Bintray 502 网关错误

来自 .net C# 的 WebService 调用出现错误:(502) 网关错误