• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

PHP配置文件php.ini在哪里?(什么是php.ini?)

在本教程中,我们将讨论php.ini — PHP中的主要配置文件。从初学者的角度来看,我们将讨论它的用途、位置以及它提供的几个重要配置设置。

什么是php.ini?

无论您是 PHP 初学者还是经验丰富的开发人员,我相信您都听说过php.ini:最重要的 PHP 配置文件。 

当 PHP 运行时,它会在某些特定位置查找php.ini文件并加载它。此文件允许您配置一些您应该注意的重要设置。很多时候,您会发现需要调整php.ini文件中的设置。

另一方面,您当然可能从来不需要修改php.ini。PHP 可以使用默认php.ini文件中提供的设置愉快地运行 ,因为 PHP 附带了这些默认推荐设置。事实上,为了运行 PHP,没有必须设置的关键配置参数 。

但是,php.ini文件提供了一些您希望自己熟悉的重要设置。事实上,作为 PHP 开发人员,这是不可避免的,你迟早会遇到它。

php.ini 在哪里?

在本节中,我们将看到如何找到运行 PHP 脚本时加载的php.ini文件。这可能很棘手——php.ini文件的位置因运行 PHP 的环境而异。如果您运行的是 Windows,您可能会在系统驱动器的 PHP 安装目录中找到php.ini文件。另一方面,如果您正在运行另一个操作系统,则很难猜测php.ini文件的确切位置——有多种可能性。

这就是phpinfo() 函数来救援的地方。它会告诉你php.ini的位置,它还会输出所有重要的 PHP 配置信息。 

您可以phpinfo() 通过创建.php文件并调用该函数来运行。继续创建具有以下内容的phpinfo.php文件并将其放在文档根目录中:

<?php
phpinfo();
?>

在浏览器中加载此文件,您应该会看到phpinfo(). 查找以下部分。

PHP配置文件php.ini在哪里?(什么是php.ini?)  第1张

如您所见,有两个部分。第一个是Configuration File (php.ini) Path ,表示系统中php.ini文件的默认路径。第二个,Loaded Configuration File ,是运行 PHP 时加载php.ini文件的路径。

因此,您可以编辑Loaded Configuration File部分中指示的php.ini文件,这在大多数情况下应该可以工作。当然,如果您将 PHP 作为 Apache 模块运行,则需要重新启动 Apache 服务器以确保反映您在 php.ini 文件中所做的更改。

另一方面,如果您使用 WAMP 或 XAMPP 之类的软件来运行您的 Web 开发堆栈,则修改php.ini文件更加容易——您可以通过 WAMP 或 XAMPP UI 直接访问它。

在下一节中,我们将探讨php.ini文件中的几个重要设置。

php.ini中的重要设置

php.ini文件提供了许多配置指令,允许您修改 PHP的各种行为。事实上,当您打开php.ini文件时,您可能会被它提供的指令数量所淹没。我会尝试根据他们的行为对他们进行分组,我希望这对你来说很容易理解。

当然,我们不会遍历每一个指令,但我会尝试涵盖最重要的指令。让我们看看我们将要讨论的指令类型。

  • 错误处理指令

  • 文件上传指令

  • 安全相关指令

  • 会话指令

  • 杂项指令

错误处理指令

在本节中,我们将介绍与错误处理相关的指令,这些指令对开发过程中的调试很有用。

display_errors

该display_errors指令允许您控制在脚本执行期间是否在屏幕上显示错误。On如果您想在屏幕上显示错误以及Off如果您想禁用它,您可以将其设置为。重要的是,您永远不要在生产站点上启用此功能 - 它会降低您的站点速度,并可能为黑客提供有关您站点安全漏洞的宝贵线索。

error_reporting

该指令允许您设置错误报告级别。大多数情况下,该指令与该display_errors指令一起使用。该指令可以接受E_ALL、E_NOTICE、E_STRICT和E_DEPRECATED const蚂蚁。

如果E_ALL要显示所有类型的错误(如致命错误、警告、不推荐使用的函数等),可以将其设置为。如果要过滤掉特定错误,还可以组合不同的值。例如,如果要显示除通知以外的所有错误,可以将其设置为E_ALL & ~E_NOTICE。

error_log

在生产网站上,您需要确保 PHP 不会向客户端浏览器显示任何错误。相反,您可以在某处记录错误,以便以后在您的站点出现问题时可以参考它们。该error_log指令允许您设置将记录错误的文件的名称。您需要确保此文件可由 Web 服务器用户写入。

文件上传指令

在本节中,我们将看到几个重要的指令,它们允许您在 PHP 表单中启用文件上传功能。

file_uploads

这是一个布尔指令,允许您启用 HTTP 文件上传。如果您将其设置为On,您可以使用表单中的文件字段,并且用户将能够从他们的计算机上传文件。另一方面,如果将其设置为Off,则完全禁用文件上传。

upload_max_filesize

如果您在您的网站上启用了文件上传功能并且您在上传文件时遇到困难,那么您应该首先检查该指令。它允许您设置可以上传的文件的最大大小。

默认情况下,它设置为 2MB,因此用户不能上传大于 2MB 的文件。您可以根据自己的需要微调此值——通常您会希望增加此限制以允许上传更大的文件。

post_max_size

此设置允许您设置表单中 POST数据的最大大小。当用户使用 POST 方法提交表单时,总的 POST 数据大小不应超过您在此指令中设置的值。

这应该大于您在upload_max_filesize指令中设置的值,因为文件上传是通过 POST 请求处理的。

安全指令

在本节中,我们将看到一些与安全相关的重要指令。

allow_url_fopen

allow_url_fopen默认情况下禁用该指令。但是当它被启用时,它允许在 PHP 文件函数中包含远程文件。这意味着您的 PHP 文件可以包含来自其他服务器的代码。启用此功能时要小心——如果您的代码受到注入攻击,远程文件包含将使恶意用户更容易劫持您的服务器。

allow_url_include

该allow_url_include指令类似于allow_url_fopen 指令,但它允许在include函数中包含远程文件。它允许您在include、include_once、require和require_once函数中包含远程文件。

如果你想启用这个指令,你需要确保你也启用了这个allow_url_fopen指令。

会话指令

当您使用 PHP 时,会话管理是最重要的方面之一。在本节中,我们将介绍几个重要的会话指令。

session.name

该session.name指令允许您设置会话cookie的名称。默认情况下,它设置为PHPSESSID,但您可以使用此指令将其更改为其他内容。

session.auto_start

如果将session.auto_start指令的值设置为1,PHP 中的会话模块会在每次请求时自动启动会话,因此您不必session_start在脚本中使用该函数。

session.cookie_lifetime

该session.cookie_lifetime指令允许您设置会话 cookie 的生命周期。默认设置为 0 秒,表示关闭浏览器时删除会话 cookie。这是一个非常有用的设置,它允许您设置“记住我”类型的功能,允许您的用户从他们在您网站上离开的地方继续。

杂项指令

在最后一节中,我们将看到几个在 PHP 脚本执行上下文中很重要的其他指令。

memory_limit

该memory_limit指令允许您限制脚本允许使用的最大内存量。

你想根据你的要求微调这个指令,你不应该把它设置得太高以避免服务器上的内存中断——如果你让它们写得不好或有错误的脚本会耗尽你服务器上的所有内存!

max_execution_time

该max_execution_time指令设置脚本在终止之前允许运行的最长时间。默认为 30 秒,如果需要,您可以根据需要将其增加到合理的限制。

与memory_limit指令类似,您不应将其设置得太高以避免服务器出现问题。

max_input_time

该max_input_time指令允许您设置允许脚本解析来自 GET 或 POST 的传入表单数据的最长时间。

如果您的网站上有提交大量数据的表单,您可能希望增加此指令的值。

结论

在一篇文章中涵盖所有指令是不可能的,但我已尝试涵盖重要的指令。如果您想了解任何特定指令,请随时发布您的疑问,我很乐意为您提供帮助!


文章目录
  • 什么是php.ini?
  • php.ini 在哪里?
  • php.ini中的重要设置
    • 错误处理指令
      • display_errors
      • error_reporting
      • error_log
    • 文件上传指令
      • file_uploads
      • upload_max_filesize
      • post_max_size
    • 安全指令
      • allow_url_fopen
      • allow_url_include
    • 会话指令
      • session.name
      • session.auto_start
      • session.cookie_lifetime
    • 杂项指令
      • memory_limit
      • max_execution_time
      • max_input_time
  • 结论