【问题标题】:Wordpress Migration - 500 Internal Server ErrorWordpress 迁移 - 500 内部服务器错误
【发布时间】:2017-02-05 10:32:49
【问题描述】:

下午好!这是我第一次来论坛,我来这里是因为我有一个关于迁移我在 Wordpress 中制作的网站的问题。

首先,请注意,我建立了托管在 Hostinger 上的网站,但在临时区域中,仅用于测试。 http://www.sitepf.esy.es

在此区域中,网站正常打开并运行。但是,当尝试将站点转移到我的主域 http://www.piscinafacil.com.br 时,它会显示以下错误:500 - Internal Server Error.

我的主要区域与附加域在同一个测试站点帐户 Hostinger 中。

为了将站点迁移到另一个域,我将旧站点和mysql数据库组成,然后通过ftp发送站点,创建一个新的mysql数据库,通过phpMyAdmin导入文件“sql.gz”然后更改数据库wp-config.php 中的设置。

在 phpMyAdmin 中也检查了 siteurl 字段将指向所需的地址 (piscinafacil.com.br),一切正常。

尝试输入 piscinafacil.com.br 地址时,显示错误 500 - Internal server error。

可能出了什么问题? 谢谢你的帮助

编辑: 我的php日志错误:

[27-Sep-2016 17:54:17 UTC] PHP Warning:  file_exists(): open_basedir restriction in effect. File(/home/u588888949/public_html/wp-content/uploads/2016/09) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1611
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home/u588888949/public_html/wp-content/uploads/2016) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home/u588888949/public_html/wp-content/uploads) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home/u588888949/public_html/wp-content) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home/u588888949/public_html) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home/u588888949) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/home) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616
[27-Sep-2016 17:54:17 UTC] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs) in /home/u113554601/public_html/wp-includes/functions.php on line 1616

【问题讨论】:

  • 很难用这些信息来判断。检查服务器上的错误日志,它会告诉你为什么它会抛出 500 错误。
  • 如果您无权访问您的服务器日志,那么您需要向您的主机询问您的错误日志,并从中确定实际错误是什么。没有这个,任何试图回答的人都只会陷入黑暗。另外我建议删除 phpmyadmin 标签,这与 phpmyadmin 无关
  • 感谢您的回答...日志错误已添加到问题中

标签: php mysql wordpress


【解决方案1】:

很难说无法访问您的服务器,但似乎 wordpress 文件位于错误用户的文件夹中。您的服务器似乎有一个限制,它只允许 php 文件系统访问一组特定的文件夹:

/home/u588888949/public_html 是存储文件的位置
/home/u113554601 是您的 php 脚本可以访问的文件夹

您可能需要修改 PHP 服务器配置以添加对 /home/u588888949 文件夹的访问权限。

【讨论】:

  • 谢谢,我相信即使你说话,错误也与此有关。但是,u588888949 名称用于位于旧站点(另一个主机帐户)上的文件夹。当我这样做时,它会在新文件夹 u113554601 中寻找文件? (当前主机帐户,我正在尝试上传网站)?
【解决方案2】:

这是我建议的一种完全不同的替代方法:

在您的测试站点 (http://www.sitepf.esy.es/) 上,安装此插件:

https://wordpress.org/plugins/duplicator/

接下来,生成一个 Duplicator 包(通过 wp-admin 仪表板上的插件菜单)。

生成包后,将两个包文件(installer.php 和存档/zip 文件)下载到您的 PC。接下来,将这两个文件上传到您希望迁移/创建站点的站点 (http://www.piscinafacil.com.br/) 的 Web 根目录。接下来,在浏览器中打开以下链接:

http://www.piscinafacil.com.br/installer.php

并按照屏幕上的说明进行操作。您的网站应该已经创建并且一切正常。

【讨论】:

    【解决方案3】:

    500 错误通常与 .htaccess 相关,它不会随您的新服务器路径更新。但这也可能是数据库问题。导出数据库时,请确保打开 .sql 文件并用新域名查找/替换旧域名。还要寻找任何旧路径(例如,它们看起来像这样 - /home/something/public_html/...)。也应该用新的替换它们。

    【讨论】:

      【解决方案4】:

      当我想将一个 WP 站点移动到另一个主机或域时,我总是这样做:

      1.- 将新域设置为新的wordpress站点(安装自己的Db和新的wordpress文件)

      2.- 验证新域使用默认模板加载页面

      3.- 仅通过 FTP 复制和粘贴旧站点中的“WP-content”文件夹。

      4.- 然后通过 phpMyAdmin 将旧站点的数据库导入新数据库。

      5.- 该站点现在必须在新域中运行

      先决条件:

      • 必须从所有 WP 站点(所有文件)备份并从您的数据库备份(以 SQL 和 Zip 格式...以防万一)

      • 必须创建新站点文件夹

      • 必须安装最新的 Wordpress 版本。

      【讨论】:

      • 谢谢! @oscar-ubillús 我按照这些步骤操作,但同样的错误仍然存​​在。该站点正在尝试访问具有我要转移的站点名称的文件夹。如何继续解决此错误?
      • 尝试更改网站的根路径,也许这个选项会有所帮助(由 phpMyadmin 执行):inmotionhosting.com/support/website/wordpress/…
      【解决方案5】:

      感谢您发布错误日志。现在很清楚现在的问题是什么,但问题的具体原因可能是其中之一。你知道你使用的是什么网络服务器吗? (apache / nginx)。

      如果是 apache,你应该查看 .htaccess 文件,如果是 nginx,你应该查看你的虚拟主机。在这些目录中,您需要设置 open_basedir 以包含存储文件的目录。

      看起来您的 open_basedir 当前设置为

      /home/u113554601:/tmp:/var/tmp:/opt/php-5.5/pear:/usr/local/bin:/etc/pki/tls/certs
      

      注意/home后面的子目录,是错误的

      /home/u588888949 替换/home/u113554601 将是正确的解决方案,但看起来有些脚本正在尝试访问/ 和/home,这可能会出现问题。请不要试图将/ 添加到 open_basedir,因为从服务器安全的角度来看这是非常危险的

      如果更正 open_basedir 列表仍然导致问题,请发布更新的错误日志。

      如果您有权访问 .htaccess 或 vhosts,那么您可以直接对其进行编辑,但您可能正在使用诸如 cPanel 之类的控制面板。在大多数此类控制面板中,您都可以在 Web 界面中修改这些值。

      【讨论】:

      • 您好,Darren H. @darren 感谢您的回复,现在我可以理解我遇到的一些问题了。我正在使用 Hostinger 服务,而 phpMyAdmin 无法在“open_basedir”中进行必要的更改。我在这个问题上很外行,所以你不知道告诉你什么网络服务器正在使用,这将是相同的 phpMyAdmin 我会改变吗?抱歉无知,但真的不知道从哪里开始。我正在发送屏幕图片...postimg.org/image/5ucyznh4v 再次感谢您的回复至少我“清除”了这个错误可能是什么。
      • phpMyAdmin是一个与数据库交互的接口,与服务器本身无关,完全独立。为了帮助我们推断出找到开放基本目录设置的最佳方法,您能否告诉我们您是如何找到错误日志的
      • 再次感谢 Darren H. @darren 好的,我再次为我对这个主题的无知表示歉意。我在访问 Wordpress 错误日志文件夹时发现的日志错误:/u113554601/.logs/php_error.txt
      • 啊哈,我明白了问题...您实际上并不想设置 open_basedir,它已经设置正确!发生的事情是,当您使用 wordpress 安装程序时,它已将您的绝对路径写入您的文件,而不仅仅是使用相对路径。因此,当您将文件复制到新帐户时,它仍在尝试访问旧帐户中的文件。您应该在错误日志的路径中编辑您的functions.php 文件以说明新的主目录。将您找到的任何 u588888949 实例替换为 u113554601
      • 如果这确实解决了您的问题,那么我将编辑答案以解决它,因为它实际上是与我最初发布的完全不同的解决方案,结果证明是不正确的
      【解决方案6】:

      检查您网站主文件夹(域重定向到的位置)上的 .htaccess 文件,了解在 # Begin wordpress 之前输入的行。

      他们可能试图以旧方式强制执行操作,即当您的网站位于子文件夹中时。这些行可能是这样的(也会有其他行,但这些行会导致问题):

      # RewriteBase /subfolder/
      # RewriteRule . /subfolder/index.php [L]
      

      现在,当您为站点配置顶级域时,这些行会强制所有请求转到 ghost 子文件夹,因此会出现错误。这也发生在我的案例中,我浪费了一天时间重新安装整个站点并尝试了几个优化/清理插件,却发现问题出在.htaccess 上,而我的 wordpress 安装很好。

      这些行可能是由我们用来安装 wordpress 站点的 cpanel 上的 installatron 或类似应用程序输入的;有人应该告诉他们停止这样做,因为 wordpress 本身会在 # BEGIN Worpress 评论之后插入相同的行。

      使用# 将它们注释掉或删除它们,保存 .htaccess,然后您的所有页面都应该可以正常加载。我从https://stackoverflow.com/a/23631313/4355695 得到了这个解决方案。

      【讨论】:

        【解决方案7】:

        在我的情况下 wp-admin 文件夹有密码。所以我刚刚删除了 wp-admin 文件夹中的 .htaccess 文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-19
          • 1970-01-01
          • 2012-05-30
          • 2015-09-21
          • 2010-10-04
          • 2014-04-02
          相关资源
          最近更新 更多