在本教程中,我们将讨论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配置信息。
您可以通过创建.php文件并调用该函数来运行phpinfo()
。 继续创建具有以下内容的phpinfo.php文件,并将其放在文档根目录中:
<?php
phpinfo();
?>
在浏览器中加载该文件,您应该看到phpinfo()
的输出。 查找以下部分。
![位置](https://i-blog.csdnimg.cn/blog_migrate/e0607918bc5caa6ae43bc09b4dbd02ac.png)
如您所见,有两个部分。 第一个是配置文件(php.ini)路径 ,它表示系统中php.ini文件的默认路径。 第二个是“ 加载的配置文件” ,它是运行PHP时从中加载php.ini文件的路径。
因此,您可以编辑“ 已加载的配置文件”部分中指示的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
常量。
如果要显示所有类型的错误,例如致命错误,警告,不推荐使用的功能等,可以将其设置为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模块会在每个请求时自动启动一个会话,因此您不必在脚本中使用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开发人员,了解php.ini文件中的不同指令很重要,这将有助于您根据需要对PHP配置进行微调。
探索在CodeCanyon上创建的数千个最好,最有用的PHP脚本 。 通过低成本的一次性付款,您可以购买这些高质量的WordPress主题,并为您和您的访客改善网站体验。
翻译自: https://code.tutsplus.com/tutorials/introduction-to-the-php-configuration-file-phpini--cms-34452