迁移后 Wordpress 不断重定向到 install-php
Posted
技术标签:
【中文标题】迁移后 Wordpress 不断重定向到 install-php【英文标题】:Wordpress keeps redirecting to install-php after migration 【发布时间】:2012-04-07 07:15:44 【问题描述】:这是我的情况。 我已按照 wordpress codex 页面上关于将站点移动到另一台服务器的确切说明进行操作。 这是我采取的步骤。
-
导出我的数据库副本
在新服务器中新建数据库
导入我之前导出的数据库
通过 Ftp 上传我的 Wordpress 文件的副本
使用此script 将我所有的本地 url 更改为新的
根据新服务器修改我的wp-config.php文件(我没有忘记表前缀。虽然它有一些大写字符)
然后,当我尝试在新位置打开我的网站时,它只会将我定向到 wp-admin/install.php 现在只是为了使场景更清晰:目标文件夹(在实时服务器上)是 public_html 文件夹中的子目录,其中已经安装了另一个 wordpress(我这样说是为了以防万一)
我的 .htaccess 看起来像这样
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subDirectoryName/
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /subDirectoryName/index.php [L]
</IfModule>
# END WordPress
我已尝试通过 phpMyadmin 检查和修复我的表,但那里似乎一切正常,对问题没有影响。
我还尝试清空实时服务器上的数据库并完成安装。它安装没有问题,一切正常,但是,我没有用另一个干净的安装。但我认为这至少排除了 wp-config 文件的任何问题。 我正在使用 Wordpress 3.3.1 版
所以我想我剩下的一个大问题是: 为什么迁移后 wordpress 无法识别我的安装?
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:在我的情况下,我在我的网站上发布了帖子并将帖子链接添加到按钮。后来我更新了帖子的标题和链接,但保留了导致此错误的按钮的旧链接。
为了解决这个问题:我从仪表板转到数据库,找到了一个名为 wp_posts
的表,并删除了我最近的帖子条目。
【讨论】:
【参考方案2】:发生这种情况是由于以下问题:
-
缺少文件
数据库连接细节问题
网站网址问题
.htaccess 文件问题
网络服务器故障
插件阻止的资源
超出查询限制
数据库权限不足
PHP 扩展
参考:https://www.scratchcode.io/wordpress-keeps-redirecting-to-wp-admin-install-php/
【讨论】:
这个答案是完全错误的。这些都不会导致原始问题中描述的问题。 @eltomito 我遇到了同样的问题,并使用第二点“数据库连接详细信息问题”解决了。 您能否在描述中更具体一些?因为数据库连接细节问题对我来说听起来真的很模糊。 @eltomito 会做【参考方案3】:一般来说,当 Wordpress 在数据库的预期位置(表)中找不到站点信息时,似乎会发生这种情况。它认为尚未创建任何站点,因此它开始执行安装过程。
这种情况意味着:
-
Wordpress 能够连接到数据库。如果没有,它会说有错误并拒绝安装或执行任何其他操作
与
-
它没有在它所连接的数据库的预期位置找到它正在寻找的东西。
需要明确的是,当您看到此症状时,1) 和 2) 都会发生。
可能的原因:
错误的数据库。您正在处理多个项目,并且将错误的数据库名称、数据库主机或表前缀复制并粘贴到 wp-config 文件中。所以现在,您在不知不觉中破坏了另一个客户的网站,同时还在苦恼为什么这个网站根本无法运行。
错误的数据库前缀。您可以通过为每个站点使用不同的前缀将多个 Wordpress 站点放在一个数据库中。确保数据库中的表具有与您在 wp-config.xml 中输入的相同的前缀。所以,如果 wp-config 说: $table_prefix = 'wp_'; 检查数据库中的表是否称为“wp_options”等,而不是“WP_options”、“mysite_options”或类似名称。
数据库中的数据已损坏。也许你在导入 sql 转储时搞砸了,你导入了一个截断的文件,一个属于其他项目的文件,或者其他什么。
【讨论】:
我仍在调试这样的问题,但这已经帮助了我很多——特别是不准确的表前缀......由于某种原因,wp-config 中的设置与使用的不同在 mysql 表中。非常感谢!【参考方案4】:我遇到了与 OP 相同的问题 - Wordpress 在迁移后不断重定向到 install-php。
问题是我的数据库表被命名为prefix_tablename
,而我在wp-config
中错过了$table_prefix
的下划线。
$table_prefix = 'myprefix';
应该是
$table_prefix = 'myprefix_';
【讨论】:
另外值得注意的是,有时在移动数据库文件时,您的前缀可能会从大小写变为仅小写。前缀区分大小写。 救了我的命,不要这么想,但很明显,谢谢! 好吧,我更改了表前缀,它不再进行安装,但现在它重定向到我要从中迁移的子域站点。【参考方案5】:我今天遇到了这个问题并开始在互联网上搜索。就我而言,我的数据库中没有表。我忘了在在线服务器上导入表格。我做到了,一切正常。
【讨论】:
【参考方案6】:如果您安装时不使用默认前缀,请不要忘记表前缀。
【讨论】:
【参考方案7】:这个问题可能有很多原因。
我的建议是在 wp-config.php 中开启 WP_DEBUG
define('WP_DEBUG', true);
【讨论】:
【参考方案8】:我在 woocommerce 的单个产品页面中使用 br 标签时遇到了这个问题。 我试图编辑模板,突然一切...... 那是一场噩梦。 我的客户可能会杀了我。尽量不要在任何地方使用这个 br 标签。
【讨论】:
【参考方案9】:我遇到了同样的问题,我通过将数据库用户权限更改为完全读写来解决它。
【讨论】:
怎么样?准确的说【参考方案10】:当我尝试将服务器设置安装到本地主机时,我已经在本地主机中配置了配置文件和数据库——我被重定向到 install.php。
wp
检查:1 转到 yourTableName_options 移至 'option_id'-'1' 将 'yousite url' 更改为 'localhost/youLocalSiteFolderName'
移动到 'option_id' - '37' 将 homw 值更改为 'localhost/youLocalSiteFolderName'
检查:2 移至“wp_config”文件检查:$table_prefix = 'yourNew_Prefix_';
希望对你有帮助
【讨论】:
【参考方案11】:我尝试了所有这些解决方案,然后才意识到我在我的实时环境中启用了 PHP 中的 opcache。 Wordpress 没有读取 wp-config 的缓存版本。
【讨论】:
【参考方案12】:已解决:wp-config.php 设置
我遇到了类似的问题。移动文件并创建新数据库后,我得到了 install.php。似乎安装屏幕显示找到正确的数据库表存在问题。
我通过更改以下设置来解决问题:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'HikeforLife_dev11');
/** MySQL database username */
define('DB_USER', 'HikeforLife_dev11');
$table_prefix = 'wphk_';
【讨论】:
谢谢WebPro!我被带到了一个突然有一个空白 config.php 文件的 Wordpress 站点,而表前缀是我错误地重建的一件事。将其与实际表前缀匹配,并停止重定向到安装。让我免去了长时间的头痛。【参考方案13】:这发生在我将现有网站复制到 WP Engine 并忘记做 WP Engine 要求的一件事后:
将要复制的网站的 WordPress 核心安装更新到最新版本。
那么问题来了:
我从另一台服务器复制到 WP Engine 的旧网站的版本为 4.0。但是,当您将现有站点复制到 WP Engine 时,您不会复制 WordPress 核心文件,您只会复制 wp-content
的内容和现有数据库的状态(或快照)。因此,我现有站点的数据库状态是运行 WP 4.0 的安装。然而,当您在 WP Engine 上创建新的 WordPress 安装时,该安装是使用最新版本的 WordPress 创建的,当时恰好是 4.0.1 版,因此意味着目标上的核心文件( WP Engine)适用于 4.0.1 安装,但我要导入 WP Engine 的数据库快照适用于 4.0 版。因此,当我通过导入旧站点的数据库副本来覆盖默认的 WP Engine 数据库时,我收到了安装脚本的重定向错误。
所以要修复它,我刚刚登录到 WP Engine 上站点的 WordPress 管理站点,确保重置文件权限(通过单击蓝色按钮),您有时必须在 WP Engine 上执行此操作,并且然后重新安装了 WordPress 核心,它基本上更新了您的数据库,以便内部数据库状态用于 WordPress 4.0.1 安装,并且核心文件也与版本匹配。
我花了一段时间才弄清楚发生了什么。
【讨论】:
【参考方案14】:我遇到了类似的问题。不过,上面的建议都没有帮助我。
最终我意识到我的生产环境中的 Wordpress MySQL 用户没有被分配足够的权限。
【讨论】:
为了清楚起见GRANT select, insert, update, delete on ``wordpress-db``.* TO 'wordpress-user'@'localhost';
【参考方案15】:
好吧,我终于解决了这个问题。惊喜,惊喜 这是我表前缀中的大写字母。我在我的 wp-config 文件 wp_C5n 中有这种方式,但由于某种原因,大多数表都有前缀 wp_c5n。但不是所有的。所以 id 所做的就是我将 wp_config 文件中的表前缀更改为全小写,然后通过 phpMyadmin 手动查看所有表以查看是否还有大写表。那里大约有 3 个。它们在 usermeta 表和选项表内。现在终于一切正常了。 通过 wordpress codex 快速搜索,但没有找到任何提及不使用大写字符的内容。
【讨论】:
非常有帮助的一点,为什么插件会生成大写字母?! 我多年来一直在运行 Wordpress 网站,直到今天才经历过这种情况,果然我在数据库表的前缀名称中输入了大写字母。不敢相信。感谢您的回答:+1: 是的,是大写的。我的主机自动将前缀更改为小写。谢谢你的帖子! 非常有帮助的答案。我的情况有点不同,但这让我检查了前缀,果然,我有一个错字。 ++【参考方案16】:我会检查两件事:
首先,我会检查数据库中配置的 url。检查 wp_options 表以及“siteurl”和“home”选项的值,如果您的域发生更改,您可能需要更新它们。
另一个选项是您的 Apache 服务器无法获取 .htaccess。检查 httpd.conf 文件中的“AllowOverride”选项是否为“all”。
希望对你有帮助。
【讨论】:
嗯... siteurl 很好。我什至在全新安装时从 wp_options 表中复制了 url。很遗憾,这不是问题所在。关于 httpd.conf 文件。我不确定我是否可以访问它。但是当我使用全新安装进行测试时,我尝试删除 .htaccess 文件并更新永久链接以查看 wordpress 会生成哪种 .htaccess 文件,它生成了我在上面发布的那个。 这对我有帮助。现在我可以登录了。然后转到登录页面。但是我所有的其他页面都说 404 not found.以上是关于迁移后 Wordpress 不断重定向到 install-php的主要内容,如果未能解决你的问题,请参考以下文章
将 wordpress 从域迁移到另一个域 - 但 URL 仍重定向到旧域
html 将WordPress管理员重定向到临时页面。适用于WP安装的迁移/迁移/迁移