【发布时间】:2010-10-06 20:07:11
【问题描述】:
我的家庭 Intranet 上有一个 Wordpress 站点,由于 IP 地址已更改,该站点遇到了问题 - 加载了索引页面,但没有加载 CSS,我无法登录到站点管理面板。
不幸的是,我在备份方面有点落后。有没有办法让 Wordpress 引用新的 IP 地址?
【问题讨论】:
我的家庭 Intranet 上有一个 Wordpress 站点,由于 IP 地址已更改,该站点遇到了问题 - 加载了索引页面,但没有加载 CSS,我无法登录到站点管理面板。
不幸的是,我在备份方面有点落后。有没有办法让 Wordpress 引用新的 IP 地址?
【问题讨论】:
要暂时能够登录,请在您的 wp-config.php 中使用此代码:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
或者你可以将它添加到你的主题的functions.php中:
update_option('siteurl','http://example.com/');
update_option('home','http://example.com/');
警告:需要更新 SQL 数据库才能使安装的插件使用新的 URL/主机名。所以如果你使用插件修改数据库是必需的。
【讨论】:
update_option,你会想在它运行后删除它,它不需要每次都触发一次。
wp-config.php 中定义两个选项只会部分覆盖siteurl 和home 选项。这将允许在不被重定向的情况下登录并更改文章 URL,但所有插件仍将指向旧主机名,因此插件中的 CSS 和 JavaScript 将失败。完全需要更新 SQL 条目。
你有两个地方可以更新这个(三个,但我们会坚持两个)。
如果您仍然可以登录到您的管理部分,为您的 URI /wp-admin/options.php 键入以下内容 - 例如,如果您的网站是http://localhost 那么您的完整 URL 将是 http://localhost/wp-admin/options.php。一旦您登录到您的站点,您应该会看到两个字段(您会看到很多字段),但您需要查找其中包含 URL 的两个字段 - 站点 URL 和博客 URL(在 WP 2.7 字段标记为“home”和“siteurl”,其他版本不确定)。
或者,您可以登录 MySQL 数据库并运行以下命令。
Select * from wp_options where option_name IN('siteurl','home');
我今天刚刚在我的一个安装中运行了这个。如果您将 option_value 设置为您的本地主机 - 您可以运行以下命令:
update wp_options set option_value='http://www.yourblogname.com' where option_name = 'siteurl';
update wp_options set option_value='http://www.yourblogname.com' where option_name = 'home';
这应该会更新您的表结构。
【讨论】:
option_name IN ('siteurl', 'home') 正如 Binny V A 下面所说的
可能WordPress.org's coverage of this issue 在撰写此处的其他答案时不可用,但到目前为止,我发现它更完整且更易于理解。
就我而言,修改wp-config.php 的方法只是部分成功。上面网页中描述的重定位方法最终成功了。
这里是WordPress.org's coverage的概要:
1 Changing the Site URL 1.1 Edit wp-config.php 1.2 Edit functions.php 1.3 Relocate method 1.3.1 Code function 1.3.2 Steps 1.4 Changing the URL directly in the database 2 Moving Sites 2.1 Altering Table Prefixes 2.2 Changing Template Files 2.3 Changing the Config file 2.4 Verify the Profile 2.5 Changing the .htaccess file 2.6 Additional items of note 2.6.1 Important GUID Note 2.7 Multi-site notes 2.8 wp-cli
【讨论】:
注意链接:https 或 http !!
在命令行中:
mysql -u root -p
在SQL中,为xxxx设置新的IP
mysql> 使用wordpress;
mysql> select * from wp_options where option_id=1;
mysql> update wp_options set option_value="http://xxxx" where option_id=1; 退出
重启服务器
【讨论】:
您必须在设置中更改“home”和“siteurl”。由于您无法打开 wordpress 的管理端,请在 phpMyAdmin(或类似的东西)中打开数据库。
选项可以在“wp_options”表中找到(wp_ 前缀可能不同)。使用此查询查找必要的设置...
SELECT * FROM `wp_options` WHERE `option_name` IN ('siteurl', 'home')
将两个选项的值更改为新 IP。
【讨论】:
我曾经遇到过这个问题。登录到您的数据库并检查您的 wp_options(如果 wp_ 是您的表前缀),然后搜索所有记录并将您的旧 ip 替换为新的。
拥有旧 IP 的可能列是“永久链接”等。抱歉,我现在看不到我博客的表结构,否则我会发布正确的列名。
【讨论】:
我之前在将站点从测试迁移到生产时遇到了这个问题。方便的是,MySQL 有一个字符串替换功能。
试试这样的:
UPDATE wp_posts SET post_content = REPLACE(post_content,"http://localhost","http://www.myblog.com")
【讨论】: