代码之家  ›  专栏  ›  技术社区  ›  andymel

Docker Windows中现有WordPress站点的副本返回302

  •  1
  • andymel  · 技术社区  · 7 年前

    我是一个wp noob,但必须修复一些现有的wp网站上的漏洞。我不想在实时环境中这样做,所以我尝试在Docker中镜像它(apache、php、mysql……都有类似的版本,比如在实时环境中)。

    • 我从他们的ftp复制了所有的php
    • 迁移了mysql数据

    当我访问这个本地站点时,我得到一个302重定向到实时站点

    在wp-config.php的开头,我添加了

    define( 'WP_HOME', 'http://localhost:8180' );
    define( 'WP_SITEURL', 'http://localhost:8180' );
    

    但还是一样。 有什么想法吗?


    下面是注释中要求的完整wp-config.php

    <?php
    /** changing the site url (https://codex.wordpress.org/Changing_The_Site_URL) */
    define( 'WP_HOME', 'http://localhost:8180' );
    define( 'WP_SITEURL', 'http://localhost:8180' );
    
    define('AUTOMATIC_UPDATER_DISABLED',true);
    define('DB_NAME', 'replaced');
    define('DB_USER', 'replaced');
    define('DB_PASSWORD', 'replaced');
    define('DB_HOST', 'db:3306');
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');
    define('AUTH_KEY',         'replaced');
    define('SECURE_AUTH_KEY',  'replaced');
    define('LOGGED_IN_KEY',    'replaced');
    define('NONCE_KEY',        'replaced');
    define('AUTH_SALT',        'replaced');
    define('SECURE_AUTH_SALT', 'replaced');
    define('LOGGED_IN_SALT',   'replaced');
    define('NONCE_SALT',       'replaced');
    $table_prefix  = 'wp_';
    define('WPLANG', 'de_DE');
    define('WP_DEBUG', true);
    
    if ( !defined('ABSPATH') )  define('ABSPATH', dirname(__FILE__) . '/');
    /** Sets up WordPress vars and included files. */
    require_once(ABSPATH . 'wp-settings.php');
    /* fixes safe_mode problems */
    define('WP_TEMP_DIR', ABSPATH . 'wp-content/');
    

    更新

    我使用xdebug跟踪正在运行的代码。由于数据库条目(选项表)“临时语言列表”,重定向转到了实时站点。它将url缓存到实时站点。 它被称为短暂的,我只是把它去掉了。现在我仍然有重定向(现在301),但我的本地网站。现在我有了一个反馈回路。

    我想接下来我会搜索并删除所有“临时”条目。 有没有更简单的方法从数据库中删除所有缓存的数据?

    1 回复  |  直到 7 年前
        1
  •  1
  •   lumonald    7 年前

    我自己也有同样的要求在本地开发一个现有的wordpress站点,所以我创建了这个存储库: https://github.com/lumonald/existing-wordpress-development-docker

    您可以禁用 .env 文件,它会自动为您查找/替换数据库中的URL。

    它负责 wp-config.php 不过,在后台,如果需要编辑,可以将其作为卷添加到wordpress容器中 docker-compose.yml

    请记住,这使用了最新版本的wordpress,但是可以在 docker-compose.yml文件 文件,如果需要,mysql版本也可以。

        2
  •  0
  •   Jaykumar Bhojwani    7 年前

    我没有使用Docker,但据我所知,下面的代码缺少文件夹名。

    define( 'WP_HOME', 'http://localhost:8180' );
    define( 'WP_SITEURL', 'http://localhost:8180' );
    

    应该是

    define( 'WP_HOME', 'http://localhost:8180/foldername/' );
    define( 'WP_SITEURL', 'http://localhost:8180/foldername/' );
    

    或者可以直接在wp_options表中更改url,将siteurl和home更改为实际的url。另外,尝试清除缓存文件夹或禁用缓存插件(如果存在)。

    我希望这能解决你的问题。

    当做

        3
  •  0
  •   andymel    7 年前

    我不知道到底是什么问题,但在停用搜索引擎优化插件的问题消失了。该网站仍然工作后,搜索引擎优化插件被再次激活。 所以我猜是某种插件缓存问题。