如何使用 nginx 通过 https 服务 phpmyadmin

How to serve phpmyadmin over https with nginx

如何正确配置nginx和phpmyadmin?我已经配置了 nginx 并且可以通过 nginx 访问 phpmyadmin 登录页面但是无法登录,当我尝试登录时它显示 Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.

我正在通过 https://example.com/phpmyadmin/

访问

这是 nginx 配置

location /myphpadminroute/{
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header host $host;
    proxy_pass_request_headers      on;

    root path_to_phpmyadmin/phpMyAdmin/;
    proxy_pass http://localhost:8080/phpmyadmin/; # apache is running on 8080
}

使用 apache url http://localhost:8080/phpmyadmin/https://localhost:8443/phpmyadmin/

时登录工作正常

我也在 nginx 中尝试使用 proxy_pass https://localhost:8443/phpmyadmin/; 但同样的错误出现了。

是nginx的配置问题还是phpmyadmin的问题我就是想不通

编辑:cookie 路径不正确 phpMyAdmin_https=utd7tbihn9qp9r4e0f0dvj6tpo; path=/phpmyadmin/; secure; HttpOnly 如果我将 nginx 路径更改为 /phpMyAdmin/ 它工作正常 我现在如何更改 phpmyadmin 中的 cookie 路径

终于可以正常工作了。

对于那些同样面临此类问题的人,诀窍是将 config.inc.php $cfg['PmaAbsoluteUri'] 中的变量设置为您的用户应该看到的 url

例如$cfg['PmaAbsoluteUri'] = https://example.com/myphpadminroute