如何使用 nginx 通过 https 服务 phpmyadmin
Posted
技术标签:
【中文标题】如何使用 nginx 通过 https 服务 phpmyadmin【英文标题】:How to serve phpmyadmin over https with nginx 【发布时间】:2020-12-24 15:58:56 【问题描述】:如何正确配置 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
使用http://localhost:8080/phpmyadmin/
或https://localhost:8443/phpmyadmin/
的apache url 时登录工作正常
我也尝试在 nginx 中使用 proxy_pass https://localhost:8443/phpmyadmin/;
,但出现同样的错误。
是nginx的配置问题还是phpmyadmin的问题,我就是想不通。
编辑:cookie 路径不正确 phpMyAdmin_https=utd7tbihn9qp9r4e0f0dvj6tpo; path=/phpmyadmin/; secure; HttpOnly
如果我将 nginx 路径更改为 /phpMyAdmin/
现在它工作正常我如何在 phpmyadmin 中更改 cookie 路径
【问题讨论】:
【参考方案1】:终于可以正常使用了。
对于那些也面临此类问题的人来说,诀窍是将config.inc.php
$cfg['PmaAbsoluteUri']
中的变量设置为您的用户应该看到的网址
例如$cfg['PmaAbsoluteUri'] = https://example.com/myphpadminroute
【讨论】:
以上是关于如何使用 nginx 通过 https 服务 phpmyadmin的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统中设置多版本PHP共存配合Nginx服务器使用