CakeFest 2024:CakePHP官方会议

岩芯描述php.ini公司指令

此列表包括核心php.ini公司可以设置为的指令配置PHP设置。列出了由扩展处理的指令并分别在扩展文档页面中详细说明;例如,有关会话指令的信息可以在会话页面.

注意以下为:

此处列出的默认值用于以下情况php.ini公司未加载;生产和发展的价值php.ini公司可能会有所不同。

语言选项

语言和其他配置选项
姓名 违约 可更改 变更日志
短开标记 "1" INI_PERDIR公司  
精度 "14" INI_全部  
序列化精度 "-1" INI_全部 在PHP 7.1.0之前,默认值为17。
disable_functions(禁用函数) "" INI_系统只有  
禁用类 "" php.ini公司只有  
退出超时 "" INI_全部  
曝光_马力 "1" php.ini公司只有  
硬超时 "2" INI_系统 自PHP 7.1.0起提供。
zend.exception_ignore_args "0" INI_全部 从PHP 7.4.0开始提供
zend.多字节 "0" INI_全部  
zend.script_编码 无效的 INI_全部  
zend.detect_unicode 无效的 INI_全部  
zend.signal_check(信号检查) "0" INI_系统  
zend.断言 "1" INI_全部有限制  
zend.exception_string参数最大值 "15" INI_全部 自PHP 8.0.0起提供。

这里有一个简短的解释配置指令。

短开标记 布尔

告诉PHP缩写形式(<? ?>)应该允许PHP的打开标记。如果要在中使用PHP结合XML,您可以禁用此选项,以便使用<?xml?>内联。否则,你可以用PHP打印,例如:<?php回声'<?xml格式版本=“1.0”?>';?>。此外,如果禁用,则必须使用PHP打开标记的长格式(<?php?>).

注意以下为:

该指令不影响速记<?=,始终可用。

精度 整数
以浮点数显示的有效位数。-1表示增强的舍入算法将使用这些数字。
序列化精度 整数
序列化浮点数时存储的有效位数。-1表示增强的舍入算法将使用这些数字。
曝光_马力 布尔

向世界公开PHP安装在服务器上,其中包括HTTP头中的PHP版本(例如,X-Powered-By:PHP/5.3.7)。

disable_functions(禁用函数) 一串

此指令允许您禁用某些功能。这需要在以逗号分隔的函数名列表中。

仅限内部功能可以使用此指令禁用。用户定义的函数不受影响。

必须在中设置此指令php.ini公司例如,您无法设置此httpd.conf网址.

禁用类 一串
此指令允许您禁用某些类。这需要在以逗号分隔的类名列表中。 必须在中设置此指令php.ini公司例如,您无法设置此httpd.conf网址.
zend.断言 整数
设置为时1,将生成断言代码,并且已执行(开发模式)。设置为时0,将生成断言代码,但将跳过(不执行)在运行时。设置为时-1,断言代码不会生成,使断言零成本(生产模式)。

注意以下为:

如果流程以生产模式启动,zend.断言无法在运行时更改,因为没有生成断言的代码。

如果在开发模式下启动过程,zend.断言无法设置为-1在运行时。

zend.exception_string参数最大值 整数
字符串化堆栈跟踪中字符串函数参数的最大长度。范围必须介于"0""1000000".
硬超时 整数

当超时设置为最大执行时间已被命中,PHP运行时将优雅地删除资源。如果当发生这种情况时,有些东西卡住了,硬超时就会滴答作响持续设定的秒数。当达到硬超时时,PHP将不礼貌地退出。当设置为0时,硬超时将永远不会激活。

当PHP从硬超时停止时,它将如下所示:

致命错误:第0行未知中超过(终止)30+2秒的最大执行时间

zend.exception_ignore_args 布尔

从异常生成的堆栈跟踪中排除参数。

zend.多字节 布尔

启用以多字节编码分析源文件。启用zend.multibyte需要使用包含特殊字符的字符编码,如SJIS、BIG5等多字节字符串数据中的字符。与ISO-8859-1兼容的编码,如UTF-8、,EUC等不需要此选项。

启用zend.multibyte需要mbstring扩展可用。

zend.script_编码 一串

除非declare(编码=…)指令出现在脚本的顶部。当ISO-8859-1编码不兼容时则必须同时使用zend.multibyte和zend.script_encoding。

文字字符串将从zend.script_encoding音译到mbstring.internal_encoding,好像mb_转换编码()会被叫来的。

zend.detect_unicode 布尔

检查BOM(字节顺序标记)并查看文件是否包含有效的多字节字符。此检测在处理__停止编译器().仅在Zend Multibyte模式下可用。

zend.signal_check(信号检查) 布尔

在关机时检查更换的信号处理程序。

退出超时 布尔

这是一个Apache1 mod_php-only指令,它在php执行超时时强制Apache子级退出。这样的超时会导致Apache1中的内部longjmp()调用,这可能会使一些扩展处于不一致的状态州。通过终止进程,任何未完成的锁或内存都将被清除。

资源限制

资源限制
姓名 违约 可更改 变更日志
内存限制 “128M” 全部输入(_A)  

这里有一个简短的解释配置指令。

内存限制 整数

这将设置脚本的最大内存量(以字节为单位)允许分配。这有助于防止写得不好耗尽服务器上所有可用内存的脚本。请注意要没有内存限制,请将此指令设置为-1.

整数使用时值以字节为单位进行测量。速记符号,如上所述在里面此常见问题解答,也可以使用。

另请参见:最大执行时间.

性能调整

性能调整
姓名 违约 可更改 变更日志
实路径缓存大小 “4M” INI_系统 在PHP 7.0.16和7.1.2之前,默认值为“16K”
实际路径缓存 "120" INI_系统  

注意以下为:

使用open_base目录使残废realpath缓存。

这里有一个简短的解释配置指令。

实路径缓存大小 整数

确定PHP要使用的realpath缓存的大小。这个在PHP打开许多文件的系统上,应该增加值,以反映执行的文件操作数量。

大小表示路径字符串中的字节总数存储,加上与缓存项关联的数据的大小。这个意味着为了在缓存中存储更长的路径,缓存大小必须更大。此值不直接控制可以缓存的不同路径。

缓存条目数据所需的大小取决于系统。

实际路径缓存 整数

缓存realpath信息的持续时间(秒)对于给定的文件或目录。对于文件很少更改的系统,考虑增加值。

数据处理

数据处理配置选项
姓名 违约 可更改 变更日志
参数分离器输出 “&” INI_全部  
参数分隔符输入 "&" INI_PERDIR公司  
variables_order(变量_顺序) “EGPCS” INI_PERDIR公司  
请求订单 "" INI_PERDIR公司  
自动全局jit "1" INI_PERDIR公司  
寄存器argc_argv "1" INI_PERDIR公司  
启用post_data_reading "1" INI_PERDIR公司  
最大后尺寸 “8M” INI_PERDIR公司  
自动重复文件 无效的 INI_PERDIR公司  
自动添加文件 无效的 INI_PERDIR公司  
默认时间类型 “文本/html” INI_全部  
默认字符集 “UTF-8” INI_全部  
输入编码(_E) "" INI_全部  
输出编码 "" INI_全部  
内部编码 "" INI_全部  

这里有一个简短的解释配置指令。

参数分离器输出 一串

PHP生成的URL中使用的分隔符分隔参数。

参数分隔符输入 一串

PHP用于将输入URL解析为变量的分隔符列表。

注意以下为:

此指令中的每个字符都被视为分隔符!

variables_order(变量_顺序) 一串

设置EGPCS的顺序(E类环境,G公司等,P(P)成本,C类ookie,以及S公司服务器)变量分析。例如,如果variables_order设置为“SP”然后PHP将创建超球体 $_服务器$_POST(发送),但不创建$无价值,$_GET(获取),以及$_COOKIE(考基)。设置为“”表示否超球体将被设置。

警告

在CGI和FastCGI SAPI中,$_服务器也由环境中的值填充;S公司始终等于无论放置E类本指令的其他部分。

注意以下为:

的内容和顺序$请求也是受此指令的影响。

请求订单 一串

此指令描述PHP注册GET、POST的顺序和Cookie变量放入_REQUEST数组。注册已完成从左到右,新值覆盖旧值。

如果未设置此指令,variables_order(变量_顺序)用于$请求内容。

请注意,默认分布php.ini公司文件不包含这个“C”对于cookie,出于安全考虑。

自动全局jit 布尔

启用时,SERVER、REQUEST和ENV变量在第一次使用(实时),而不是在脚本启动时使用。如果这些变量不在脚本中使用,将此指令置于will导致性能提升。

警告

在编译期间检查SERVER、REQUEST和ENV变量的用法所以通过例如。可变变量不会导致其初始化。

寄存器argc_argv 布尔
告诉PHP是否声明argv和argc变量(将包含GET信息)。 另请参见命令行.
启用post_data_reading 布尔
禁用此选项会导致$_POST(发送)$文件 要填充。读取postdata的唯一方法是通过php://输入流包装器。这对于代理请求或处理以节省内存的方式处理POST数据。
最大后尺寸 整数
设置允许的发布数据的最大大小。此设置也会影响文件上传。要上载大型文件,此值必须更大上传最大文件大小. 一般来说,内存限制应该是大于最大后尺寸. 整数使用时值以字节为单位进行测量。速记符号,如上所述在里面此常见问题解答,也可以使用。 如果post数据的大小大于post_max_size,则$_POST(发送)$文件 超球体为空。这可以通过多种方式进行跟踪,例如通过$_GET(获取)变量设置为处理数据的脚本,<form action=“edit.php?processed=1”>,然后检查$_GET[“已处理”]已设置。

注意以下为:

PHP允许字节值的快捷方式,包括K(千)、M(兆)和G(千兆)。如果您使用其中任何一种。注意不要超过32位有符号整数限制(如果您使用32位版本),因为它会导致您的脚本失败。

的更改日志最大后尺寸
版本 描述
5.3.4 最大后尺寸=0不会在内容类型为application/x-www-form-urlencoded或未向PHP注册。
5.3.2 , 5.2.12 通过设置允许不受限制的帖子大小最大后尺寸到0。

自动重复文件 一串

指定自动分析的文件的名称在主文件之前。文件被包括在内,就好像它是用调用要求函数,所以包含路径(_P)使用。

特殊值没有人禁用自动重发。

自动添加文件 一串

指定自动分析的文件的名称在主文件之后。文件被包括在内,就好像它是用调用要求函数,所以包含路径(_P)使用。

特殊值没有人禁用自动附加。

注意以下为:如果脚本终止于退出(),自动附加遗嘱发生。

默认时间类型 一串

默认情况下,PHP将使用Content-type标头输出媒体类型。要禁用此功能,只需将其设置为空即可。

PHP的内置默认媒体类型设置为text/html。

默认字符集 一串

“UTF-8”是默认值,使用它的值作为的默认字符编码htm实体(),html实体代码()htmlspecialchars()如果编码参数被省略。的价值默认字符集也将用于设置默认字符集图标(iconv)函数,如果iconv.input_编码,图标转换输出编码iconv.内部编码配置选项未设置字符串函数,如果mbstring.http输入 mbstring.http_输出 mbstring.internal编码配置选项未设置。

所有版本的PHP都将使用此值作为PHP发送的默认Content-Type标头(如果标头未被覆盖)通过呼叫收割台().

设置默认字符集为空值是不推荐。

输入编码(_E) 一串

此设置用于多字节模块例如mbstring和iconv。默认值为空。

输出编码 一串

此设置用于多字节模块例如mbstring和iconv。默认值为空。

内部编码 一串

此设置用于多字节模块例如mbstring和iconv。默认值为空。如果为空,默认字符集使用。

路径和目录

路径和目录配置选项
姓名 违约 可更改 变更日志
包含路径(_P) “.;/path/to/php/pear” INI_全部  
open_base目录 无效的 全部输入(_A)  
doc_root 无效的 INI_系统  
用户目录(_D) 无效的 INI_系统  
用户_ ini.cache_ttl "300" INI_系统  
用户输入文件名 “.user.ini” INI_系统  
扩展目录 “/path/to/php” INI_系统  
延伸 无效的 php.ini公司只有  
zend_扩展 无效的 php.ini公司只有  
cgi.check_shebang_line公司 "1" INI_系统  
cgi.discard_p路径 "0" INI_系统  
cgi.fix_pathinfo文件 "1" INI_系统  
cgi.力直接 "1" INI_系统  
cgi.nph "0" INI_系统  
cgi.重定向状态 无效的 INI_系统  
cgi.rfc2616_标题 "0" INI_全部  
fastcgi.模拟 "0" INI_系统  
fastcgi.测井 "1" INI_系统  

这里有一个简短的解释配置指令。

包含路径(_P) 一串

指定目录列表,其中要求,包括,fopen(),文件(),读取文件()文件获取内容()函数查找文件。格式与系统类似路径环境变量:目录列表在Unix中用冒号分隔,在Windows中用分号分隔。

PHP在查找时会分别考虑include路径中的每个条目要包含的文件。它将检查第一条路径,如果找不到检查下一个路径,直到找到包含的文件或返回时带有E_警告或一个E_ERROR(错误). 您可以在运行时使用设置包含路径().

示例#1 Unix include_path

include_path=“.:/php/includes”

示例#2 Windows include_path

include_path=“.;c:\php\includes”

使用.include路径中允许relative包含当前目录。然而,显式使用效率更高包括'./文件'而不是让PHP总是检查当前每个include的目录。

注意以下为:

ENV公司变量也可以在.ini文件中访问。因此,可以使用以下命令引用主目录${登录}${用户}.

环境变量在服务器API之间可能会有所不同,因为这些环境可能会有所不同。

示例#3使用${USER}env变量的Unix include_path

include_path=“.:${USER}/pear/php”

open_base目录 一串

将PHP可以访问的文件限制为指定的目录树,包括文件本身。

当脚本尝试访问文件系统时,例如使用包括,或fopen(),文件的位置已选中。当文件位于指定的目录树之外时,PHP将拒绝访问它。所有符号链接都已解析,因此无法避免此限制带有符号链接。如果文件不存在,则符号链接不能解析并将文件名与(解析的)进行比较open_base目录.

open_base目录影响的不仅仅是文件系统功能;例如如果MySQL数据库配置为使用mysqlnd公司驾驶员,加载数据输入将受到open_base目录.PHP的许多扩展功能都使用open_base目录就这样。

特殊值.指示脚本的工作目录将用作基本目录。然而,这与工作目录一样有点危险脚本的chdir().

httpd.conf网址,open_base目录可以关闭(例如,对于某些虚拟主机)同样的方式作为带有“php_admin_value open_basedir没有人".

在Windows下,用分号分隔目录。全部其他系统中,用冒号分隔目录。作为阿帕奇人模块,open_base目录父目录中的路径现在是自动继承。

使用指定的限制open_base目录是一个目录名,而不是前缀。

默认设置是允许打开所有文件。

注意以下为:

open_basedir可以在运行时拧紧。这意味着如果open_basedir设置为/网址:www/在里面php.ini公司脚本可以将配置严格到/网址:www/tmp/在运行时使用ini_set()。列出多个目录时可以使用路径_分离器作为分隔符的常量无论操作系统如何。

注意以下为:

使用open_basedir将设置实路径缓存大小0因此使残废realpath缓存。

注意安全

open_base目录只是一个额外的安全网,这绝不可能全面,因此在需要安全性时不能依赖。

doc_root 一串

PHP在服务器上的“根目录”。仅在以下情况下使用非空。如果PHP不是用FORCE_REDIRECT编译的应该如果您在任何web下都将PHP作为CGI运行,请设置doc_root服务器(IIS除外)。另一种方法是使用cgi.力直接下面的配置。

用户_ ini.cache_ttl 整数

用户输入文件名 一串

用户目录(_D) 一串

PHP用户主目录上使用的目录的基本名称文件,例如公共html.

扩展目录 一串

PHP应该在什么目录下查找动态可加载扩展名。建议指定绝对路径。另请参见:启用dl,dl().

延伸 一串

它在PHP启动时动态加载可加载的扩展。

zend_扩展 一串

动态可加载Zend扩展的名称(例如XDebug)在PHP启动时加载。

cgi.check_shebang_line公司 布尔

控制是否CGI公司PHP检查行开始具有#!(shebang)在运行脚本的顶部。如果脚本支持同时作为独立脚本和通过PHPCGI公司.PHP输入CGI公司mode跳过此行并忽略其内容,如果此指令已打开。

cgi.discard_p路径 布尔

如果启用此选项,PHP CGI二进制文件可以安全地放在web树和用户将无法绕过.htaccess安全性。

cgi.fix_pathinfo文件 布尔

提供真实的 路径信息/传输的路径支持CGI公司.PHP以前的行为是设置传输的路径脚本文件名不要摸索什么路径信息是。有关的详细信息路径信息,请参阅CGI公司规范。将其设置为1将导致PHPCGI公司固定其路径以符合规范A设置为零会导致PHP像以前一样工作。它由打开违约。您应该修复脚本以使用脚本文件名而不是传输的路径.

cgi.力直接 布尔

cgi.force_redirect对于作为CGI公司在大多数web服务器下。左侧未定义,PHP默认情况下启用此选项。你可以把它关掉自己动手风险.

注意以下为:

Windows用户:使用IIS时,此选项必须对于OmniHTTPD或Xitami,同样适用。

cgi.nph 布尔

如果启用cgi.nph,它将强制cgi始终发送状态:200每个请求。

cgi.重定向状态 一串

如果cgi.force_redirect已启用,并且您没有在下运行Apache或Netscape(iPlanet)web服务器,您可以需要设置PHP将查找的环境变量名知道可以继续执行。

注意以下为:

设置此变量可以导致安全问题,先知道你在做什么.

cgi.rfc2616_标题 整数

告诉PHP在发送HTTP响应时要使用的标头类型代码。如果设置为0,PHP将发送»RFC 3875Apache和其他web服务器支持的“状态:”标头。当此选项设置为1,PHP将发送»RFC 2616符合标题。

如果启用了此选项,并且您正在CGI环境中运行PHP(例如PHP-FPM)您不应该使用标准的RFC 2616样式的HTTP状态响应头,您应该而是使用他们的RFC 3875等价物,例如代替标头(“HTTP/1.0 404未找到”);您应该使用标题(“状态:404未找到”);

将其设置为0,除非您知道自己在做什么。

fastcgi.模拟 一串

IIS下的FastCGI(在基于WINNT的操作系统上)支持模拟调用客户端的安全令牌。这允许IIS定义运行请求的安全上下文。Apache下的mod_fastcgi目前不支持此功能(03/17/2002)如果在IIS下运行,则设置为1。默认值为零。

fastcgi.测井 布尔

使用FastCGI时打开SAPI日志记录。默认值为以启用日志记录。

文件上传

文件上载配置选项
姓名 违约 可更改 变更日志
文件上载(_U) "1" INI_系统  
上传tmp_dir 无效的 INI_系统  
最大输入目标电平 64 INI_PERDIR公司  
最大输入变量 1000 INI_PERDIR公司  
上传最大文件大小 “2百万” INI_PERDIR公司  
最大文件上传数 20 INI_PERDIR公司  

这里有一个简短的解释配置指令。

文件上载(_U) 布尔

是否允许HTTP文件上传。另请参见上传最大文件大小,上传tmp_dir,以及最大后尺寸指令。

上传tmp_dir 一串

执行以下操作时用于存储文件的临时目录文件上传。必须可由任何用户PHP写入正在以身份运行。如果未指定,PHP将使用系统的默认值。

如果此处指定的目录不可写,PHP将回退到系统默认的临时目录。如果open_base目录那么是开着的必须允许将系统默认目录上载到成功。

上传最大文件大小 整数

上载文件的最大大小。

最大后尺寸必须大于此值。

整数使用时值以字节为单位进行测量。速记符号,如上所述在里面此常见问题解答,也可以使用。
最大文件上传数 整数

允许同时上载的最大文件数。提交时未填写上传字段数到这个极限。

通用SQL

常规SQL配置选项
姓名 违约 可更改的 变更日志
sql.safe_模式 "0" INI_系统 从PHP 7.2.0开始删除

这里有一个简短的解释配置指令。

sql.safe_模式 布尔

如果启用,则指定默认值的数据库连接函数将使用这些值代替任何用户提供的参数。有关详细信息关于默认值,请参阅相关连接的文档功能。

警告

此功能已经远离的截至PHP 7.2.0。

特定于Windows

Windows特定配置选项
姓名 违约 可更改 变更日志
windows.show_crt_警告 "0" INI_全部  

这里有一个简短的解释配置指令。

windows.show_crt_警告 布尔

此指令在启用时显示Windows CRT警告。

添加注释

用户贡献的笔记9条注释

西蒙·佩莱加塔
3年前
使用auto_prepend_file时要小心。

当set_exception_handler()设置的自定义异常处理程序处理未捕获的异常时,它会中断每个脚本的执行。

但是,如果带有未处理异常的脚本已自动添加前缀或包含在自动添加前缀的脚本中,则主脚本仍将继续运行。

这可能会导致几个问题:当我们认为抛出异常会自动中断当前应用程序时,整个代码块都会运行。
webmail dot co dot za的diamondeagle
4年前
关于upload_tmp_dir设置和UNC路径的注意事项:

在Windows OS和IIS FastCGI上使用PHP时,如果需要使用网络驱动器上文件夹的UNC路径进行upload_tmp_dir设置,则必须在UNC路径的前面使用三个\字符。

Windows和PHP使用第一个斜杠作为转义符,因此如果您只使用两个斜杠,那么它将传递一个只有一个反斜杠的UNC路径。这对UNC路径无效,并且在上传文件时会遇到很多问题,比如说“PHP缺少一个临时文件夹”的错误。

对的:
upload_tmp_dir=“\\path\to\your\folder”

不正确:
upload_tmp_dir=“\\path\to\your\folder”
msn网站上的朱利奥亨里克
26天前
当upload_max_filesize指令设置为小于文件大小时,PHP不会捕获文件大小。例如,我想向用户发送一条消息,告诉用户该文件已超出某个应用程序允许的上载大小,但是upload_max_filesize指令不允许这样做。如果我不想允许上载大于2MB的文件,但upload_max_filesice指令设置为10M,如果用户发送15MB文件,则不会显示消息,因为$_FILES['arquivo']['size']等于0。要显示消息,我必须增加upload_max_filesize,但是,这表示存在安全缺陷。另外,我应该将upload_max_filesize增加多少到无穷大?
我不知道用户要上传的文件的大小。
例子:
$file=$_FILES['file'];
开关($file){
案例($file['size']>(2097152):
echo“此文件超过2MB!”;
断裂;
例如,在upload_max_filesize设置为10M的情况下,如果用户上传一个15M的文件,PHP什么也不做(不显示消息),因为$arquivo['size']是int(0)。
如果不是这样,同样的事情也会发生。
也许我不知道如何编码,但我试过几种方法。
费尔南多·巴索在gmail dot com上的dot-br
7年前
这可能有助于防止有人使用utf-8以外的字符集维护旧应用程序。

根据文档,如果使用`header()`,则可以覆盖默认字符集。

假设php.ini将default_charset设置为“UTF-8”,但您需要一个遗留字符集,如ISO-8859-1。

尽管如此,

<?php标头('内容类型:text/html;字符集=ISO-8859-1');?>

不会覆盖字符集,只需添加它和结果
是这样的响应头(注意两个字符集):

内容类型:“text/html;Charset=ISO-8859-1;Charset=UTF-8”

我觉得很奇怪,默认的字符集是小写的`c`
而不是使用大写字母“C”的自定义字符集。

解决的办法是使用所有小写字母覆盖字符集
对于单词“charset”:

<?php标头('内容类型:text/html;charset=ISO-8859-1');?>

然后,响应头中的双字符集消失了,只剩下单个自定义字符集。
leo在korfu dot cz
17年前
“如果发布数据的大小大于post_max_size…”

似乎一种更优雅的方式是在post_max_size和$_SERVER['CONTENT_LENGTH']之间进行比较。请注意,后者不仅包括上传文件的大小和发布数据,还包括多部分序列。狮子座
gunters-dot org的dougal
8年前
如果您同时使用“include_path”指令和“open_basedir”,则文件搜索将在本地文件之前先到达include路径*。但如果未使用“open_basedir”,则首先会找到本地文件。例如,假设您在“/var/www/myfile.php”中有代码,它可以:

<?php(电话)
要求一次(_O)('配置.php');
?>

此外,假设有一个本地文件“/var/www/config.php”,还有一个文件“/war/local/php/config/php”。

接下来,如果您的php.ini有:

include_path=/var/local/php/

通常,这将首先查找“/var/www/config.php”,如果找不到,则尝试使用“/var/local/php/config/php”。

但是如果你在php.ini中也有这个:

open_basedir=/var/www/:/var/local/php/

然后,require将颠倒搜索顺序,并加载“/var/local/php/config.php”,即使本地“config.php”文件存在。

此外,如果include_path包含不在open_basedir中的目录,则可能会导致致命错误。例如,将指令更改为:

open_basedir=/var/www/:/var/local/includes/php/

现在require将首先从include_path中找到“/var/local/php/config.php”,尝试包含它,但由于open_basedir的限制,无法包含它。
安东·班尼科夫
3年前
我在php.ini中遇到了“open_basedir=”字符串问题。此字符串是在Apache2的VirtualHost Directory指令中写入的,并成功重写了相同的php.ini设置!这发生在维斯塔普身上,但我认为,这是一种常见的方式。祝你好运!
安德烈·多特·沃特(andre dot wetter)在梅尔科·多特ch
3年前
如果使用Microsoft IIS Windows并希望对多个目录使用open_basedir限制,则必须在IIS的主配置xml文件(C:\Windows\System32\inetsrv\config\applicationHost.config)中将其设置为单引号。在IIS 10中工作正常。

带有单引号和的多个文件;对于windows:
“C:\php\php-cgi.exe |-d open_basedir='C:\Windows\Temp\;d:\mywebsite1\'”

只有一个目录在没有单引号的情况下可以正常工作:
“C:\php\php-cgi.exe |-d open_basedir=d:\mywebsite1\”

在我的IIS主配置xml文件中,每个网站有两个要设置的节点,定义必须相等:
配置\位置\系统.webServer\处理程序\add
configuration\system.webServer\fastCgi
到顶部