如何排除和修复常见的 XAMPP 和 WordPress 问题

所以您已经安装了 XAMPP 并设置了全新的 WordPress 本地安装.接下来,是时候安装那个完美的主题了.可是等等!致命错误和最长执行时间有什么关系?就在你以为你已经度过了所有困难的时候……

使用 XAMPP 开发时遇到问题是正常的,尤其是在您第一次使用它的时候.使用 XAMPP 时,安装后、安装插件、导入大型数据库以及创建本地网站的备份都是出错的机会.与任何其他服务器一样,本地 XAMPP 服务器必须针对您的特定计算机设置进行调整,以使其正常运行.

PHP 错误和端口冲突是 XAMPP 开发人员遇到的最常见的错误示例.在使用本地 WordPress 安装时,其中一些问题几乎肯定会出现,在本教程中,我将向您展示如何克服 WordPress 开发人员可能遇到的四个最常见的 XAMPP 问题.

疑难解答 XAMPP & WordPress 问题

问题1:超过PHP最大执行时间

这可能是第一次使用 XAMPP 的用户遇到的最常见的问题.尝试安装大型插件或更新 WordPress 核心,您几乎肯定会看到一条致命错误消息,告知您已超出30 秒的最大执行时间.

error message stating that the maximum execution time has been exceeded

好消息是,这是一个非常容易解决的问题.

发生的情况是,控制在 XAMPP 安装上运行的 PHP 版本的设置将脚本执行时间限制为 30 秒.但是,安装大型插件、更新 WordPress 核心或执行许多其他常见的 WordPress 操作需要超过 30 秒的时间.

要解决此问题,您需要在 XAMPP 安装的 php.ini 文件中调整单个 PHP 设置.

有两种方法可以访问这个文件.

  1. 打开XAMPP控制面板,点击Apache行中的Config,选择PHP (php.ini).这将在文本编辑器中打开文件,但可能不是您喜欢的文本编辑器.
  2. 导航到您的 XAMPP 根文件夹,打开 php 目录并查找名为 php.ini 的文件.然后使用您喜欢的文本编辑器打开该文件.

在我的 XAMPP 直接安装到 C: 目录的 Windows 笔记本电脑上,该文件位于以下地址:C:\xampp\php\php.ini.

在文本编辑器中打开 php.ini 并找到 max_execution_time 行.如果你运行的是最新版本的 XAMPP,它应该出现在文件的第 368 行.要增加执行时间,只需输入更大的数字.默认值为 30 秒,但许多共享主机环境将此限制设置为 120 秒.将此值增加到 120 应该可以防止您在使用 WordPress 网站时再次遇到此特定问题.

maximum execution time increased to 120 seconds
120 秒是共享主机提供商常用的,应该涵盖几乎所有 WordPress操作.

每当您对 php.ini 进行更改时,您都必须保存该文件,将其关闭,然后在 XAMPP 控制面板中停止并重新启动 Apache.Apache 仅在启动时读取 php.ini 中的值.因此,在 Apache 已经运行时对 php.ini 所做的任何更改都不会生效,直到 Apache 重新启动并读取新值.

重新启动 Apache,然后重新尝试导致错误出现的操作.您现在应该会看到事情按预期进行.

问题 2:超过最大文件大小

此错误可能有多种不同的原因.到目前为止,遇到此错误的最常见方法是尝试使用 WordPress 中的媒体上传器上传大于 2 MB 的图像文件时.我在 尝试使用 phpMyAdmin 导入数据库时​​也遇到了这个错误.无论您如何设法触发这个致命的 PHP 错误,修复方法都是一样的.

A WordPress error message letting us know that the maximum upload file size has been exceeded

这是另一个可以通过对 php.ini 进行一些更改来解决的问题.

返回 php.ini.这一次,查找定义 upload_max_filesize 的行.默认情况下,此值设置为 2 兆字节.将该值增加到一个数字,以适应您尝试上传的文件或数据库的大小.请记住,可接受的值是 2 的幂 的任意数字.所以可接受的值是 2 的幂:2M、4M、8M、16M、32M、64M、128M 等等.使用不同的值,例如 20M,Apache 会将有效值四舍五入到最接近的可接受值,如果您输入 20M,则为 16M.

upload_max_filesize increased to 128M

在关闭 php.ini 之前,查找定义 post_max_size 的行.该值与 upload_max_filesize 密切相关.增加一个而不增加另一个将导致两者中较小的一个被用作最大可上传文件大小.找到该行,并使用与 upload_max_filesize 相同的值.

post_max_size increased to 128M

如果您花时间仔细查看 php.ini 文件中的注释,您会发现许多设置都提供了一个 URL,您可以在其中了解有关您正在调整的设置的更多信息.花点时间访问引用的 URL 总是值得的.例如,为 post_max_size 设置提供的文档让我们知道 memory_limit 值应该至少与 post_max_size 一样大.快速查看 memory_limit 会发现默认值为 128 兆字节.除非您为 post_max_sizeupload_max_filesize 设置了高于 128M 的限制,否则您不需要调整此值.

问题 3:修复 Apache 端口冲突

另一个在使用 XAMPP 时很常见的错误消息是 XAMPP 控制面板中的通知,指出 Apache 需要使用的端口 443 和 80 已被另一个应用程序使用.

A message from the XAMPP control panel letting us know Skype is using ports 443 and 80

对于上图中的错误消息,这是一个非常简单的修复.有问题的应用程序是 Skype.如果您看到相同的消息,请完全关闭 Skype 并重新启动 XAMPP 以解决问题.Skype 是端口阻塞场景的常客,很容易识别和修复.不幸的是,事情并不总是那么简单.如果退出 Skype 不能解决问题,您可以尝试的其他方法是:

  • 停止万维网发布服务,这是一个预装在许多 Windows 计算机上的实用程序.要阻止它,请打开 管理工具 >在 Windows 控制面板中的服务,查找应用程序,选择它,然后单击停止.
  • 使用 Windows 防火墙强制端口保持畅通.通过打开 Windows 控制面板并导航到 Windows 防火墙 > 来执行此操作.高级设置.然后添加一个新的入站规则,强制端口 80 和 443 保持畅通.

这两个修复在我们之前的设置 XAMPP 教程中有更详细的介绍,因此我们不会在这里重复所有细节.相反,请查看该教程以尝试这些端口清除修复.

有时解除对 80 端口的阻塞可能特别具有挑战性.或者,您可能需要使用端口 80 的任何应用程序来继续使用它.在那罐中,您可以将 XAMPP 配置为在端口 8080 而不是端口 80 上工作.

要进行此更改,请打开 XAMPP 控制面板,但不要启动 MySQL 或 Apache.相反,点击 Apache 行中的 Configure 并选择 Apache (httpd.conf) 选项.

XAMPP control panel, selecting Config and then Apache httpd.conf
选择配置和Apache httpd.conf

或者,您可以导航到 C:\xampp\apache\conf\httpd.conf 以打开文件.

打开文件后,找到显示 Listen 80 的行并将其更改为 Listen 8080.接下来,找到显示 ServerName localhost:80 的行并将该值更改为 ServerName localhost:8080.保存更改并关闭文件.

完成这些更改后,重新启动 XAMPP 并启动 Apache 和 MySQL.端口 80 不应再使用.相反,您应该会看到 Apache 现在在端口 443 和 8080 上运行.

要使此更改生效,您还需要做两件事:

  1. 使用 http://localhost:8080/ 而不是 http://locahost/ 来访问所有由 XAMPP 提供支持的网站.
  2. 如果您在更改端口之前已经在本地安装了任何 WordPress 站点,则需要手动更新 wp-config.php 中的 WP_HOMEWP_SITEURL 定义以反映新的域前缀.
Define your site and home url as localhost:8080 in wp-config
当然,您会使用本地安装 WordPress 的目录,而不是"你的WordPress网站".

问题 4:无法添加或导入其他菜单项

如果您的网站菜单包含超过 90 项,则有两个问题.

  1. 您可能需要认真重新考虑您的网站导航.没有多少网站有充分的理由拥有这么多菜单项.
  2. 您会发现,当您尝试添加其他菜单项时,您将无法添加.此外,如果您尝试导入包含 90 多个项目的现有菜单的 WordPress 网站,则某些项目将从菜单中删除.

这是另一个由 php.ini 文件中包含的 PHP 设置引起的问题的示例.所以让我们继续打开它.

打开文件后,查找设置 max_input_vars 限制的行.

Screenshot of php.ini showing the max_input_vars definition

此项目的默认值为 1000.要确定您需要用于容纳所有计划的巨型怪物菜单项的值,请取您需要的菜单项数,乘以 11,然后再加上 9产品.因此,如果您需要容纳 120 个菜单项,则需要将限制增加到至少 1329 (120 * 11 + 9).

如果你很好奇,可以很好地解释为什么这个公式有效在 StackOverflow 上可用.

更新此值以反映计划菜单项的数量后,保存文件,关闭它,然后重新启动 Apache.在 Apache 重新启动之前,更改不会生效.

总结

XAMPP 提供了一种在 Windows 机器上运行本地服务器环境的简单方法,允许您在本地测试和开发,而不是在实时站点上安装 WordPress.它还可以为您节省大量时间,因为您不必在每次测试主题和插件时都安装和卸载 WordPress.

但有时使用 XAMPP 可能会有点让人头疼(只需在 Google 上搜索人们搜索问题修复程序的次数!).但是,这样做也让您有机会了解更多有关 WordPress、Apache、phpMyAdmin 和 PHP 的信息,而如果您将所有开发都限制在实时 Web 服务器上,您可能无法学到.

您在使用 XAMPP 和 WordPress 时遇到了哪些其他挑战?你是怎么解决的?

标签:

1
订阅评论
提醒
0 评论
内联反馈
查看所有评论