【问题标题】:Wordpress/nginx wp-admin stuck in refresh loopWordpress/nginx wp-admin 卡在刷新循环中
【发布时间】:2018-09-03 20:58:53
【问题描述】:

我对这个问题束手无策。我会非常感谢一些指导。

我的单个 wordpress 站点通过预构建的 Vultr.com 应用程序操作系统在 nginx 上运行。几个星期以来,wp-admin 和 wp-login.php 表单只是在使用正确的凭据时刷新而不是登录。

当导航到...时

example.com/wp-admin

它重定向到...

/wp/wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp%2Fwp-admin%2F&reauth=1

使用 正确 凭据登录只会刷新表单。使用不正确的凭据登录会触发不正确的密码错误,这表明该站点可以正常连接到数据库。

另外值得注意的是,网站的其余部分都很好,只是访问管理区域有问题。

我尝试了一长串教程并解决了以下问题:

1) 我打开了 WP 调试器,但登录表单没有产生任何错误。

2) 该站点在启用 Cloudflare 的 HTTPS 上运行。我已禁用 Cloudflare 并添加了 define( 'FORCE_SSL_LOGIN', false );define( 'FORCE_SSL_ADMIN', false ); 到 wp-config.php

3) 我已禁用所有插件无济于事。

4) 我尝试在 wp-config.php 中禁用 define('ADMIN_COOKIE_PATH', '/');

5) 我已确保 wp-login 和 wp-admin 的权限为 644。

6) 我已确保整个文件系统归 nginx:nginx 所有,这是在快速 php 文件中使用 <?php exec('whoami'); ?> 确定的。

7) 我已确保 site_url 和 wp_home 参数对于域是最新的。 Wordpress 位于 /wp 的子目录中。因此,在 wp-config.php 中定义如下;

define('WP_HOME', 'https://www.example.com'); 定义('WP_SITEURL', WP_HOME . '/wp');

8) 我已确保上述两个字段在数据库中的 wp_options 表中也匹配。

9) 我已经直接从数据库中的 wp_users 表中删除了 session_tokens。

10) 通过在开发工具上检查表单本身,我检查了表单的 POST 实际上指向 https://www.example.com/wp/wp-login.php,而不是不正确的域。

我修改了很多其他的东西都无济于事,一轮又一轮的刷新……文件的内容是:

wp-config.php -> https://pastebin.com/K2M93xPX

nginx.conf -> https://pastebin.com/7KxSV8a5

wordpress_https.conf -> https://pastebin.com/uYydcE7K

提前感谢任何可能提供帮助的人。我对 nginx 的了解已经深入,但我没有想法。

【问题讨论】:

  • 您是否尝试清除所有 cookie 并通过匿名窗口通过链接 /wp-admin/index.php /wp-login.php 登录?并尝试在 wp-config.php 这个 define('WP_SITEURL', WP_HOME . '/wp' ); 中提交该行,它会自动将 example.com 更改为 example.com/wp ,即重定向 wp-login.php 到 wp/wp-login.php 如果上述解决方案将没有帮助,请编辑您的消息并提供/var/log/nginx/wordpress_https_error.log /var/log/nginx/wordpress_https_access.log 寻找错误和技术。
  • 您好 Nik,感谢您的回复。是的,已清除 cookie 并尝试隐身。 wordpress 安装在 var/www/html/wp 中,因此 wp_home 被设置为这样。我将很快编辑带有错误日志和访问日志的消息。再次感谢!
  • 你的 wp-config.php 文件在哪里?在var/www/html/wpvar/www/html 中?

标签: php wordpress nginx


【解决方案1】:

现已修复!

我尝试了多种方法:

1) 将 /var/www/html/wp 文件夹中 wordpress 的整个子目录安装拉到其父级,因此所有内容都在 nginx 的根目录中。

2) 将 CloudFlare 从灵活 SSL 更改为完整(严格)并在服务器上重新安装原始证书/密钥。

这些步骤中的任何一个或多个步骤都已解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多