Wordpress本地克隆无法正常工作

时间:2013-07-30 04:31:53

标签: php wordpress apache session

我正在开发Wordpress的门户网站,并且有很多插件,帖子,类别等。现在,我想平行尝试三个主题。

因此,我在本地apache的webroot中创建了另外两个文件夹副本:

/wpSandbox/ [original, working still !]
/wpSandbox2/ [copy 1]
/wpSandbox3/ [copy 2]

同样,我使用phpMyAdmin两次复制原始门户的数据库dbWordpress,然后在wp-config.php中相应地进行了更改

现在,这两个新副本(我希望它们是测试新主题的基础)无法登录管理员。

事实上,

127.0.0.1/wpSandbox2/wp-admin/ 

实际上重定向到:

127.0.0.1/wpSandbox/wp-admin/ 

并且无法使用适用于原始副本的相同凭据登录... :(

请告诉我为什么会发生这种情况,是否需要在wp-config中更改副本...?

此致

3 个答案:

答案 0 :(得分:3)

您需要使用新网址更新数据库。这就是它重定向的原因。 复制下面的代码并在phpMyAdmin中运行它(确保你更改顶部的3个变量...我将它们设置为我认为你应该设置它们,但它可能与你的数据库设置方式不同)

SET @prefix = "wp_";
SET @old = "127.0.0.1/wpSandbox";
SET @new = "127.0.0.1/wpSandbox2";

SET @sql1 = CONCAT('UPDATE ', @prefix, 'options SET option_value = REPLACE(option_value,?,?)');
SET @sql2 = CONCAT('UPDATE ', @prefix, 'posts SET guid = REPLACE(guid,?,?)');
SET @sql3 = CONCAT('UPDATE ', @prefix, 'posts SET post_content = REPLACE(post_content,?,?)');

PREPARE update1 FROM @sql1;
PREPARE update2 FROM @sql2;
PREPARE update3 FROM @sql3;

EXECUTE update1 USING @old, @new;
EXECUTE update2 USING @old, @new;
EXECUTE update3 USING @old, @new;

DEALLOCATE PREPARE update1;
DEALLOCATE PREPARE update2;
DEALLOCATE PREPARE update3;

要点:https://gist.github.com/doitlikejustin/6091841

关于此代码/ Gist的一些信息...我一直在移动WordPress网站。这只是我编写的一些SQL,因此更新数据库所花费的时间更少,您不必担心手动更新URL。它会自动更新WP选项表和WP帖子表。

答案 1 :(得分:1)

重定向问题是因为原始wordpress设置中的siteurl。在wp-config.php添加这些行。您可能需要更改网址以满足您的需求。

define('WP_HOME','http://127.0.0.1/wpSandbox2');
define('WP_SITEURL','http://127.0.0.1/wpSandbox2');

答案 2 :(得分:0)

更新as_options set option_value =“{new_wp_url}”其中option_name ='siteurl'; 更新as_options set option_value =“{new_wp_url}”其中option_name ='home'; UPDATE as_posts SET guid = REPLACE(guid,'{old_url}','{new_url}') UPDATE as_posts SET post_content = REPLACE(post_content,'{old_url}','{new_url}')

下面是您可以运行的SQL查询,用于将值更改为wordpress站点的新URL。

UPDATE {wp_table_prefix}_options set option_value="{new_url}" where option_name='siteurl';
UPDATE {wp_table_prefix}_options set option_value="{new_url}" where option_name='home';
UPDATE {wp_table_prefix}_posts SET guid = REPLACE(guid, '{old_url}', '{new_url}');
UPDATE {wp_table_prefix}_posts SET post_content = REPLACE(post_content, '{old_url}', '{new_url}');
  • {wp_table_prefix} 替换为您的wordpress表格前缀。
  • {{new_url}} 替换为您的新wordpress网站网址。
  • {{old_url}} 替换为旧的wordpress网站网址。在这种情况下为127.0.0.1/wpSandbox

之后,您可以运行SQL查询并在新的wordpress网址上访问新的wordpress网站。一切都应该正常。

我经常使用上面的SQL,到目前为止我一直在为我工作。如果您有任何问题,请告诉我们。基本上上面的SQL查询等同于上面提供的@doitlikejustin代码。

相关问题