详解php.ini文件
Php.ini文件位置在哪里,怎么找到php.ini
Php.ini文件位置在哪里,怎么找到 php.ini
Php.ini 文件不是经常用到的,突然有一天,你需要修改它了,却不知道他躲在哪里,怎么破? 一般情况下,它会呆在php的安装目录里。
方法 /步骤
1. 1 在你自己的网站目录里,新建一个php文件,写入如下代码 <?php echo phpinfo(); ?> 保存,然后在浏览器访问该页面,会看到详细的php配置信息,你要找的php.ini文件位置也已经展示给你了。 END
注意事项
用该方法找p.ini文件位置,在linux和windows下都是绝招哦。
PHP文件包含漏洞详解
PHP文件包含漏洞详解(1)一、什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的。
涉及到的危险函数:include(),require()和include_once(),require_once()Include:包含并运行指定文件,当包含外部文件发生错误时,系统给出警告,但整个php文件继续执行。
Require:跟include唯一不同的是,当产生错误时候,include下面继续运行而require停止运行了。
Include_once:这个函数跟include函数作用几乎相同,只是他在导入函数之前先检测下该文件是否被导入。
如果已经执行一遍那么就不重复执行了。
Require_once:这个函数跟require的区别跟上面我所讲的include和include_once是一样的。
所以我就不重复了。
php.ini配置文件:allow_url_fopen=off 即不可以包含远程文件。
Php4存在远程&本地,php5仅存在本地包含。
二、为什么要包含文件?程序员写程序的时候,不喜欢干同样的事情,也不喜欢把同样的代码(比如一些公用的函数)写几次,于是就把需要公用的代码写在一个单独的文件里面,比如 share.php,而后在其它文件进行包含调用。
在php里,我们就是使用上面列举的那几个函数来达到这个目的的,它的工作流程:如果你想在 main.php里包含share.php,我将这样写include(“share.php”)就达到目的,然后就可以使用share.php中的函数了,像这个写死需要包含的文件名称的自然没有什么问题,也不会出现漏洞,那么问题到底是出在哪里呢?有的时候可能不能确定需要包含哪个文件,比如先来看下面这个文件index.php的代码:if ($_GET[page]) {include $_GET[page];} else {include ”home.php”;}很正常的一段PHP代码,它是怎么运作的呢?上面这段代码的使用格式可能是这样的:/m4r10/php/index.php?page=main.php或者/m4r10/php/index.php?page=downloads.php结合上面代码,简单说下怎么运作的:1.提交上面这个URL,在index.php中就取得这个page的值($_GET[page])。
零点起飞学PHP之错误处理
7.1.2 环境错误
环境错误通常是指PHP运行的环境和相关服务关联的 问题,例如PHP程序需要使用的相关模块没有被正确 加载、服务器没有启动、数据库配置错误等等。由于 我们使用的是集成开发环境,因此这些问题出现的概 率是比较小的,集成环境的制作者已经替我们做了大 量的工作。但是如果是初次自己搭建一个环境来运行, 通常情况下会非常的吃力。环境错误所涉及的编程语 言之外的知识比较多,因此本书我们不做详细讲解。
2.使用error_reporting() 函数
【示例7-8】演示不使用error_reporting函数设置时候将0作 为除数,未定义的变量作为被除数后的运行结果。 从运行结果我可以看出有一条变量为定义的提示和一条0作 为除数的警告。下面我就通过设置错误报告来使警告不再 提示,代码如下: 01 <?php 02 error_reporting(E_ALL&~E_WARNING); 03 echo '$a/0='.$a/0; 04 ?> 从运行结果可以看到,警告信息已经不再显示,而提示信 息还在显示,这就演示了使用error_reporting函数可以使得 PHP的错误报告非常灵活。
第7章 错误处理
错误在编程的过程中通常是无法避免的。我们在前面 的学习过程中也碰到了多处错误。PHP系统可以帮助 我们就提示以及修正一些错误。我们也可以自己定义 一些抛出和处理错误方法。本章将详细讲解错误发送 的原因和种类以及处理这些错误的方法。
7.1 错误发生的原因
错误发生的原因有多种,他们按照特点可以分为大的 四类,分别是语法错误、环境错误、逻辑错误和运行 时错误。本节就来介绍这些错误。
256
512 1024 2048 4096
PHP的ini_set函数用法
PHP的ini_set函数⽤法PHP ini_set⽤来设置php.ini的值,在函数执⾏的时候⽣效,脚本结束后,设置失效。
⽆需打开php.ini⽂件,就能修改配置,对于虚拟空间来说,很⽅便。
函数格式:string ini_set(string $varname, string $newvalue)不是所有的参数都可以配置,可以查看⼿册中的列表。
常见的设置:@ ini_set('memory_limit', '64M');'menory_limit':设定⼀个脚本所能够申请到的最⼤内存字节数,这有利于写的不好的脚本消耗服务器上的可⽤内存。
@符号代表不输出错误。
@ini_set('display_errors', 1);‘display_errors’:设置错误信息的类别。
@ini_set('session.auto_start', 0);‘session.auto_start’:是否⾃动开session处理,设置为1时,程序中不⽤session_start()来⼿动开启session也可使⽤session,如果参数为0,⼜没⼿动开启session,则会报错。
@ini_set('session.cache_expire', 180);‘session.cache_expire’:指定会话页⾯在客户端cache中的有限期(分钟)缺省下为180分钟。
如果设置了session.cache_limiter=nocache时,此处设置⽆效。
@ini_set('e_cookies', 1);‘e_cookies’:是否使⽤cookie在客户端保存会话ID;@ini_set('e_trans_sid', 0);‘e_trans_sid’:是否使⽤明码在URL中显⽰SID(会话ID),默认是禁⽌的,因为它会给你⽤户带来安全危险: 1.⽤户可能将包含有效的sid的URL通过email/irc/QQ/MSN等途径告诉其他⼈。
php.ini的extension的写法
php.ini的extension的写法
在PHP中,php.ini文件用于配置PHP的各种选项和扩展。
要在php.ini文件中启用或配置PHP扩展,需要使用extension或extension_dir来指定扩展或扩展目录的路径。
启用扩展:
要启用特定的PHP扩展,可以按照以下方式编辑php.ini文件:
使用绝对路径:
extension=/path/to/your_extension.so
使用相对路径(相对于extension_dir):
extension=your_extension.so
扩展目录:
如果需要指定扩展的目录,可以使用extension_dir来设置:
extension_dir=/path/to/your_extension_directory
这会告诉PHP解释器去指定的目录查找扩展文件。
注意事项:
在编辑php.ini文件之后,需要重启Web服务器(如Apache、Nginx等)以使更改生效。
扩展文件的具体路径可能因操作系统、PHP版本和安装方式而异。
在启用或配置扩展时,请确保你正在编辑当前PHP使用的php.ini文件。
可以使用phpinfo()函数查看当前PHP的配置文件路径。
请替换示例中的路径和文件名为实际的扩展路径和名称。
open_basedir写法
open_basedir写法什么是open_basedir?open_basedir是一个PHP配置选项,用于限制文件系统的访问范围。
它是一种安全机制,可以防止恶意用户通过访问文件系统中敏感文件来进行攻击。
通过设定一个基础目录,只允许PHP脚本在该目录下访问文件和目录,从而防止对其他目录的访问。
如何配置open_basedir?配置open_basedir很简单,只需在php.ini文件中设置相应的选项值。
以下是一步一步的配置过程:1. 找到php.ini文件首先,你需要找到你的PHP安装目录中的php.ini文件。
该文件是PHP 的主配置文件,用来设置各种选项和参数。
2. 打开php.ini文件使用文本编辑器,如Notepad++或Sublime Text,打开php.ini文件。
3. 搜索open_basedir选项在php.ini文件中,使用文本搜索功能,查找open_basedir选项。
你可以在搜索框中输入"open_basedir"来定位到该选项。
4. 配置open_basedir值一旦找到open_basedir选项,你需要设置它的值。
可以使用绝对路径或相对路径。
如果你希望使用多个目录,则可以使用冒号或分号分隔它们。
例如,如果你想将open_basedir设置为/var/www/html目录,你可以通过以下方式配置:open_basedir = "/var/www/html"如果你想同时允许多个目录,你可以使用类似如下方式配置:open_basedir = "/var/www/html:/tmp:/usr/share/php"5. 保存php.ini文件在你完成了open_basedir的配置后,保存php.ini文件。
6. 重启web服务器为了使配置生效,你需要重新启动你的web服务器。
你可以通过命令行或者控制面板来完成这一步。
ini文件编写方法
ini文件编写方法一。
ini 文件是一种常见的配置文件格式,在很多软件和系统中都有广泛应用。
要编写一个好的 ini 文件,首先得搞清楚它的基本结构。
1.1 ini 文件通常由节(Section)和键值对(Key-Value Pair)组成。
节就像是一个个分类的文件夹,而键值对则是在这些文件夹里存放的具体信息。
比如说,[Settings] 这就是一个节的名称。
1.2 键值对呢,就是像“Key=Value”这样的形式。
比如说“FontSize=12”,“FontSize”是键,“12”就是值。
二。
在编写 ini 文件时,有一些要点得特别注意。
2.1 命名要清晰明了。
节名和键名都得让人一眼就能看出它是干啥的。
别整那些让人摸不着头脑的名字,不然回头自己都搞不清楚。
2.2 格式要规范。
每行一个键值对,别乱糟糟的,不然读起来就跟一团乱麻似的。
2.3 注释也很重要。
有时候给自己或者别人留个注释,说明一下这个键值是干啥用的,为啥这么设置,能省不少事儿。
三。
再来说说怎么修改和读取 ini 文件。
3.1 有很多编程语言都能处理 ini 文件。
比如说 Python 就有专门的库来读取和修改 ini 文件,用起来挺方便的。
3.2 但不管用啥方法,都得小心谨慎,别一不小心把重要的配置给改坏了,那可就麻烦大了。
编写 ini 文件虽然不算特别复杂,但也得用心去做,才能让它发挥应有的作用。
就像盖房子,基础打牢了,房子才能结实。
可别马马虎虎,不然到时候出了问题,就得返工,费时又费力!。
php 设置临时内存大小的方法
php 设置临时内存大小的方法
在PHP中,你可以使用`memory_limit`这个指令来设置临时内
存大小。
以下是几种方法可以设置临时内存大小:
1. 在php.ini文件中设置:在php.ini文件中找到`memory_limit`行,并将其设置为所需的内存大小。
例如,设置为128MB:
`memory_limit = 128M`。
请注意,修改php.ini文件可能需要
重启Web服务器才能生效。
2. 在PHP脚本中设置:在需要增加内存限制的PHP脚本中,
可以使用`ini_set()`函数来设置内存限制。
例如,将内存限制设置为256MB:`ini_set('memory_limit', '256M');`。
这样设置的内存限制只适用于当前脚本运行期间。
3. 在.htaccess文件中设置:如果你的Web服务器允许
在.htaccess文件中覆盖PHP配置,你可以在.htaccess文件中添
加以下指令:`php_value memory_limit 256M`。
这样会将内存
限制设置为256MB。
4. 在命令行中设置:如果你通过命令行运行PHP脚本,可以
使用`-d`参数来设置内存限制。
例如,设置内存限制为512MB:`php -d memory_limit=512M script.php`。
无论你选择哪种方法,都需要确保设置一个合理的内存限制,以免导致内存不足或过度消耗服务器资源。
ini的限制 小节
ini的限制小节ini配置文件(Initialization Initialization)是一种常见的配置文件格式,广泛应用于各类软件和系统的配置管理中。
ini文件采用键值对的方式存储配置信息,通常以 .ini 为文件扩展名。
ini的限制主要包括以下方面:1. 语法约束:ini文件的语法相对简单,主要由节(Section)和键值对(Key-Value)组成。
节用方括号括起来,键值对由键和值组成,中间用等号或冒号分隔。
键和值之间不能有空格或特殊字符。
同时,ini文件不支持注释功能,即不可以在文件中添加注释。
2. 键的唯一性:在一个节中,键是唯一的,重复的键会被后面的键值对覆盖。
这意味着无法通过ini文件来存储具有相同键的多个配置信息,因为后续的配置会覆盖前面的配置。
3. 不支持复杂数据类型:ini文件中的值只支持字符串类型,不支持其他复杂的数据类型,如数字、布尔值、日期等。
如果需要存储这些类型的数据,需要在读取和写入ini文件时进行类型转换。
4. 不支持嵌套结构:ini文件是一种扁平结构,不支持嵌套的节或键值对。
这就意味着无法存储层级较深的配置信息,对于复杂的配置需求,ini文件的表达能力有限。
5. 文件大小限制:ini文件的大小没有明确的限制,但由于存储的是纯文本配置信息,文件越大读取和解析的时间也会相应增加,对于大规模的配置管理可能不太适用。
总结:ini配置文件在使用上存在一些限制,包括语法约束、键的唯一性、不支持复杂数据类型、不支持嵌套结构和文件大小限制等。
了解这些限制能够帮助我们更好地使用ini文件进行配置管理,同时也可以考虑其他配置文件格式以满足更复杂的配置需求。
php文件包含目录配置open_basedir的使用与性能详解
php⽂件包含⽬录配置open_basedir的使⽤与性能详解1.open_basedir介绍open_basedir 将php所能打开的⽂件限制在指定的⽬录树中,包括⽂件本⾝。
当程序要使⽤例如fopen()或file_get_contents()打开⼀个⽂件时,这个⽂件的位置将会被检查。
当⽂件在指定的⽬录树之外,程序将拒绝打开。
本指令不受安全模式打开或关闭的影响。
2.open_basedir设置⽅法1.在php.ini 加⼊open_basedir="指定⽬录"2.在程序中使⽤ini_set('open_basedir', '指定⽬录');但不建议使⽤这种⽅法3.在apache的httpd.conf中的Directory配置php_admin_value open_basedir "指定⽬录"httpd.conf中的VritualHostphp_admin_value open_basedir "指定⽬录"4.nginx fastcgi.conffastcgi_param PHP_VALUE "open_basedir=指定⽬录"⽤open_basedir指定的限制实际上是前缀,不是⽬录名。
也就是说 open_basedir=/home/fdipzone 也会允许访问/home/fdipzone_abc,如果要将访问限制为⽬录,请使⽤斜线结束路径名,例如:open_basedir=”/home/fdipzone/”如果要设置多个⽬录,window使⽤;分隔⽬录,linux使⽤:分隔⽬录。
3.使⽤open_basedir限制⽬录访问⾸先创建⼀个VirtualHost,设置open_basedir 为/home/fdipzone/sites//<VirtualHost *:80>ServerAdmin webmaster@localhostDocumentRoot /home/fdipzone/sites/ServerName php_admin_value open_basedir "/home/fdipzone/sites//"<Directory "/home/fdipzone/sites/">allow from all Options + Indexes</Directory></VirtualHost>在上⼀层⽬录 /home/fdipzone/sites/ 中创建⼀个test.txt⽂件,在中创建php执⾏以下代码<?phpecho file_get_contents('../test.txt');>因为test.txt不在限定的⽬录范围内,因此php提⽰警告Warning: file_get_contents(): open_basedir restriction in effect. File(../test.txt) is not within the allowed path(s):(/home/fdipzone/sites//) in /home/fdipzone/sites//index.php on line 34.设置open_basedir的性能分析open_basedir开启后会影响I/O,因为每个调⽤的⽂件都需要判断是否在限制⽬录内。
INI文件的结构结构
一、INI文件的结构:; 注释[小节名]关键字=值INI文件允许有多个小节,每个小节又允许有多个关键字,“=”后面是该关键字的值。
值的类型有三种:字符串、整型数值和布尔值。
其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值用0表示。
注释以分号“;”开头。
二、定义1、在Interface的Uses节增加IniFiles;2、在Var变量定义部分增加一行:myinifile:Tinifile;然后,就可以对变量myinifile进行创建、打开、读取、写入等操作了。
三、打开INI文件Filename:=ExtractFilePath(Paramstr(0))+’program.ini’;myinifile:=Tinifile.Create(filename);四、读取关键字的值针对INI文件支持的字符串、整型数值、布尔值三种数据类型,TINIfiles类提供了三种不同的对象方法来读取INI文件中关键字的值。
vs:=myinifile.Readstring(’小节名’,’关键字’,缺省值); string类型vi:=myinifile.Readinteger(’小节名’,’关键字’,缺省值);integer类型vb:=myinifile.Readbool(’小节名’,’关键字’,缺省值); boolean类型五、写入INI文件myinifile.writestring(’小节名’,’关键字’,变量或字符串值); string类型myinifile.writeinteger(’小节名’,’关键字’,变量或整型数值);integer类myinifile.writebool(’小节名’,’关键字’,变量或True或False);boolean类型0当这个INI文件不存在时,上面的语句还会自动创建该INI文件。
六、删除关键字myinifile.DeleteKey(’小节名’,’关键字’);七、小节操作增加一个小节可用写入的方法来完成,删除一个小节可用下面的对象方法:myinifile.EraseSection(’小节名’);另外Tinifile类还提供了三种对象方法来对小节进行操作:my inifile.readsection(’小节名’,TStrings变量);可将指定小节中的所有关键字名读取至一个字符串列表变量中;myinifile.readsections(TStrings变量);可将INI文件中所有小节名读取至一个字符串列表变量中去。
php之php.ini详细配置
php之php.ini详细配置配置⽂件(php.ini)在 PHP 启动时被读取。
对于服务器模块版本的 PHP,仅在 web 服务器启动时读取⼀次。
对于 CGI 和 CLI 版本,每次调⽤都会读取。
php.ini的搜索路径如下(按顺序):SAPI 模块所指定的位置(Apache 2 中的PHPIniDir指令,CGI 和 CLI 中的-c命令⾏选项,NSAPI 中的php_ini参数,THTTPD 中的PHP_INI_PATH环境变量)。
PHPRC环境变量。
在 PHP 5.2.0 之前,其顺序在以下提及的注册表键值之后。
⾃ PHP 5.2.0 起,可以为不同版本的 PHP 指定不同的php.ini⽂件位置。
将以下⾯的顺序检查注册表⽬录:[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z],[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]和[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x],其中的 x,y 和 z 指的是 PHP 主版本号,次版本号和发⾏批次。
如果在其中任何⽬录下的IniFilePath有键值,则第⼀个值将被⽤作php.ini的位置(仅适⽤于windows)。
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]内IniFilePath的值(Windows 注册表位置)。
当前⼯作⽬录(对于 CLI)。
web 服务器⽬录(对于 SAPI 模块)或 PHP 所在⽬录(Windows 下其它情况)。
Windows ⽬录(C:\windows或C:\winnt),或--with-config-file-path编译时选项指定的位置。
如果存在php-SAPI.ini(SAPI 是当前所⽤的 SAPI 名称,因此实际⽂件名为php-cli.ini或php-apache.ini等),则会⽤它替代php.ini。
SAPI 的名称可以⽤来测定。
docker的官方PHP镜像如何修改php.ini配置
docker的官⽅PHP镜像如何修改php.ini配置
在docker官⽅PHP镜像的配置⽂件路径在:/usr/local/etc/php/conf.d ⽂件夹,严格意义上讲,并没有php.ini,⽽是把配置打散在该⽂件夹⾥的各个⽂件⾥。
所以我们要改配置,只要在此⽬录下找到对应⽂件,或者新建⼀个配置⽂件,即可完成原来php.ini的配置修改。
就拿我的来讲,修改PHP的上传配置。
1、新建⽂件: error.ini,内容:
复制代码代码如下:
log_errors = On
error_log = log/php_error_log
error_reporting=E_ALL&~E_NOTICE
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
2、然后再对应dockerfile,追加代码:COPY error.ini /usr/local/etc/php/conf.d (如果你不⽤dockerfile的话,只要保证error.ini这个⽂件被复制到镜像⾥的/usr/local/etc/php/conf.d ⽬录即可)
PS:这⾥error.ini和dockerfile在同⼀个⽬录
3、重新编译dockerfile,即可完成。
php.ini_配置详细选项
sybct.timeout integer 配置 Sybase-CT 的 query 操作时间限制。默认值为无限制。
sybct.hostname string 配置 Sybase-CT 可连接机器名称。默认值不设限
ifx.allow_persistent boolean 配置是否允许 Informix 数据库持续连接 (persistent connections),会影响函数。
ifx.max_persistent integer 配置每个处理程序最多保持几个 Informix 持续连接。
ifx.max_links integer 配置每个处理程序最多开几个 Informix 连接,包括持续连接。
ifx.default_host string 配置 Informix 默认连接的服务器名称,供ifx_connect()或ifx_pconnect()函数使用。
SMTP string 在 Windows 系列操作系统中,用来指定 SMTP 服务器,供 mail 函数使用。参数 string 为 SMTP 服务器名字。
sendmail_from string 配置 "From: " 字符串供 Windows 系列操作系统使用 mail 函数。
sendmail_path string 配置 sendmail 程序的放置路径。例如 /usr/sbin/sendmail。
pgsql.max_persistent integer 配置每个处理程序最多保持几个 Postgres 持续连接。
pgsql.max_links integer 配置每个处理程序最多开几个 Postgres 连接,包括持续连接。
sybase.allow_persistent boolean 配置是否允许 Sybase 数据库持续连接 (persistent connections),会影响函数。
php-fpm.conf配置文件中文说明详解及重要参数说明
php-fpm.conf配置⽂件中⽂说明详解及重要参数说明php-fpm⼯作流程php-fpm全名是PHP FastCGI进程管理器php-fpm启动后会先读php.ini,然后再读相应的conf配置⽂件,conf配置可以覆盖php.ini的配置。
启动php-fpm之后,会创建⼀个master进程,监听9000端⼝(可配置),master进程⼜会根据fpm.conf/www.conf去创建若⼲⼦进程,⼦进程⽤于处理实际的业务。
当有客户端(⽐如nginx)来连接9000端⼝时,空闲⼦进程会⾃⼰去accept,如果⼦进程全部处于忙碌状态,新进的待accept的连接会被master放进队列⾥,等待fpm⼦进程空闲;这个存放待accept的半连接的队列有多长,由 listen.backlog 配置。
php-fpm全局配置说明配置⾥⾯的所有相对路径,都是相对于php的安装路径。
除了有php-fpm.conf配置⽂件外,通常还有其他的*.conf配置⽂件(也可以不要,直接在php-fpm.conf配置)⽤于配置进程池,不同的进程池可以⽤不同的⽤户执⾏,监听不同的端⼝,处理不同的任务;多个进程池共⽤⼀个全局配置。
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf 载⼊其他的配置⽂件。
php-fpm全局配置参数中⽂说明:pid = /opt/remi/php56/root/var/run/php-fpm/php-fpm.pid#pid进程⽂件,默认为none。
error_log = /opt/remi/php56/root/var/log/php-fpm/error.log#错误⽇志位置,默认:安装路径 #INSTALL_PREFIX#/log/php-fpm.log。
如果设置为syslog,log就会发送给syslogd服务⽽不会写进⽂件⾥。
syslog.facility = daemon#把⽇志写进系统log,linux还不够熟悉,暂时不⽤理会。
ini文件用法
ini文件用法
INI文件是一种配置文件,通常用于存储应用程序或系统的配置信息。
INI文件由节(section)、键(key)和值(value)组成,通常采用“分节分条”的组织方式。
以下是INI文件的基本用法:
创建INI文件:首先需要创建一个INI文件,可以在文本编辑器中手动创建,也可以使用编程语言中的相关函数或库来创建。
添加节:在INI文件中,节是用来组织配置信息的区域,每个节都以方括号([])括起来。
可以在INI文件中添加多个节,以便对配置信息进行分类管理。
添加键和值:在每个节中,可以添加多个键值对。
键和值之间使用等号(=)分隔,并使用分号(;)表示注释。
例如,[section1] key1=value1; key2=value2。
读取INI文件:读取INI文件可以使用编程语言中的相关函数或库来实现。
根据INI文件的格式,逐行读取文件内容,并解析节、键和值。
修改INI文件:可以直接编辑INI文件来修改配置信息,也可以使用编程语言中的相关函数或库来读取和修改配置信息。
修改完成后,保存INI文件即可。
删除INI文件:如果不再需要INI文件,可以直接将其删除。
需要注意的是,删除INI文件可能会影响到应用程序或系统的正常运行。
需要注意的是,INI文件的语法比较简单,容易受到一些安全风险的影响。
因此,在读取和修改INI文件时,需要特别注意文件的来源和内容的合法性,以避免安全漏洞。
PHP中的ini_set函数介绍
PHP中的ini_set函数介绍ini_set(是PHP中的一个内置函数,用于在运行时更改PHP配置选项的值。
它允许开发人员在不需要直接修改php.ini文件的情况下动态地更改PHP的设置。
这对于调试代码、解决错误和优化性能非常有用。
ini_set(函数的语法如下:bool ini_set ( string $varname , string $newvalue )其中,$varname是要更改的配置选项的名称,$newvalue是要为配置选项设置的新值。
函数返回一个布尔值,表示是否成功更改了配置选项的值。
ini_set(函数具有以下特点和用途:1. 动态配置选项:ini_set(函数允许在代码中动态更改PHP配置选项的值。
这样,您可以根据需要调整脚本的行为,而无需重启服务器或修改php.ini文件。
2. 错误处理:使用ini_set(函数可以在代码中处理错误。
例如,您可以使用"error_reporting"配置选项将错误报告级别设置为E_ALL,以便在开发环境中查看所有类型的错误。
3. 调试代码:通过更改"display_errors"配置选项,您可以在代码中显示错误消息和警告。
这对于调试代码和查找潜在的问题非常有用。
5. 性能优化:有些PHP配置选项可以影响脚本的性能。
ini_set(函数可以用来调整这些选项的值,以优化和提高脚本的执行速度。
需要注意的是,ini_set(函数的更改只在当前脚本执行期间有效,并且仅能修改PHP配置选项的可更改范围。
有些配置选项是只读的,不能通过ini_set(函数更改。
此外,一些服务器可能限制了可配置选项的范围,因此不能直接使用ini_set(更改一些配置选项的值。
以下是一些常见的使用场景和示例:1.调整错误报告级别:ini_set("error_reporting", "E_ALL");该示例将错误报告级别设置为显示所有类型的错误,用于调试和开发阶段。
ini文件写法
ini文件写法摘要:一、ini文件的概述1.ini文件的概念2.ini文件的作用3.ini文件的组成部分二、ini文件的写法1.创建ini文件的基本结构2.设置键值对3.注释的使用4.格式规范三、ini文件的读取1.读取ini文件的方法2.解析ini文件的内容3.获取和处理键值对四、ini文件的常见应用场景1.配置文件的存储和读取2.应用程序的参数设置3.开发中的数据存储和读取正文:ini文件是一种配置文件格式,常用于存储和读取应用程序的配置信息。
它的组成部分主要包括节(section)、键(key)和值(value)。
在ini文件中,节用方括号[]括起来,键和值用等号=连接。
此外,ini文件允许使用注释,注释以分号;开始,直到行末尾。
ini文件的写法比较简单。
首先,需要创建一个基本的文件结构,包括文件名和扩展名.ini。
然后,根据需要设置键值对,例如:```[section1]key1=value1key2=value2[section2]key3=value3```在ini文件中,可以使用注释来对配置信息进行说明。
注释以分号;开始,直到行末尾,例如:```; 这是一个注释[section1]key1=value1key2=value2```要读取ini文件,可以使用编程语言提供的相应方法。
例如,在Python 中,可以使用configparser库来实现ini文件的读取。
首先,需要安装configparser库,然后按照以下步骤进行操作:```pythonimport configparser# 创建一个ConfigParser对象config = configparser.ConfigParser()# 读取ini文件config.read("example.ini")# 获取和处理键值对print(config.get("section1", "key1")) # 输出:value1print(config.getint("section1", "key2")) # 输出:2```ini文件在实际应用中有很多场景,如存储和读取配置信息、设置应用程序参数、开发过程中的数据存储和读取等。
php.ini中date.timezone设置详解
php.ini中date.timezone设置详解
date.timezone设置php5默认date.timezone为utc,改为date.timezone = PRC即可解决时间相差⼋⼩时的问题,但我在php的官⽅⽂档中看了半天也没找到这个参数啊
虽然知道这个参数表⽰“中华⼈民共和国”的意思,但官⽅⽂档中并没有这样的参数,只有Asia/Shanghai、Asia/Hong_Kong 等这些参数啊,为何这⾥可以设置为RPC,哪位给指点指点,这个参数究竟是在哪⼉?官⽅⽂档中看来看去的确并没有此参数啊,不解。
⼀般都设成Asia/Shanghai
使⽤xampp时间不久,今天为了纠正php获取函数是获取服务器时间。
因为php5.1.0开始,php.ini⾥加⼊了date.timezone这个选项,默认情况下是关闭的。
显⽰的时间都是格林威治标准时间,和北京时间差了正好8个⼩时。
⽹上找到的⽅法:
修改php.ini⽂件,查找 ;date.timezone = ,把前⾯的分号去掉在 “=”后⾯加上时区。
⽐如:Asia/Chongqing (重庆),Asia/Shanghai (上海),Asia/Urumqi (乌鲁⽊齐),Asia/Macao (澳门),Asia/Hong_Kong (⾹港),Asia/Taipei (台北),PRC
例
;date.timezone =
改成:
date.timezone = Asia/Shanghai
⽅法很简单。
可是在xampp下,把php/php.ini⽂件改来改去都没⽤。
后来⽹上搜了才发现,该死的xampp,把php.ini放在apache/bin下⾯,修改这个⾥⾯的php.ini才有⽤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
php.ini中文注释版; PHP还是一个不断发展的工具,其功能还在不断地删减; 而php.ini的设置更改可以反映出相当的变化,; 在使用新的PHP版本前,研究一下php.ini会有好处的;;;;;;;;;;;;;;;;;;;; 关于这个文件;;;;;;;;;;;;;;;;;;;;; 这个文件控制了PHP许多方面的观点。
为了让PHP读取这个文件,它必须被命名为; 'php.ini'。
PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC ; 指明的路径;编译时指定的路径。
; 在windows下,编译时的路径是Windows安装目录。
; 在命令行模式下,php.ini的查找路径可以用-c 参数替代。
; 该文件的语法非常简单。
空白字符和用分号';'开始的行被简单地忽略(就象你可能; 猜到的一样)。
章节标题(例如: [Foo])也被简单地忽略,即使将来它们可能; 有某种的意义。
;; 指示被指定使用如下语法:; 指示标识符= 值; directive = value; 指示标识符是*大小写敏感的* - foo=bar 不同于FOO = bar。
;; 值可以是一个字符串,一个数字,一个PHP 常量(如:E_ALL or M_PI), INI 常量中的; 一个(On, Off, True, False, Yes, No and None) ,或是一个表达式; (如: E_ALL & ~E_NOTICE), 或是用引号括起来的字符串("foo").;; INI 文件的表达式被限制于位运算符和括号。
; | bitwise OR; & bitwise AND; ~ bitwise NOT; ! boolean NOT;; 布尔标志可用1, On, True or Yes 这些值置于开的状态。
; 它们可用0, Off, False or No 这些值置于关的状态。
;; 一个空字符串可以用在等号后不写任何东西表示,或者用None 关键字:;; foo = ; 将foo置为空字符串; foo = none ; 将foo置为空字符串; foo = "none" ; 将foo置为字符串'none';; 如果你值设置中使用常量,而这些常量属于动态调入的扩展库(不是PHP 的扩展,就是; Zend 的扩展),你仅可以调入这些扩展的行*之后*使用这些常量。
;; 所?*?php.ini-dist 文件里设定的值与内建的默认值相同(这是说,如果php.ini; 没被使用或者你删掉了这些行,默认值与之相同)。
;;;;;;;;;;;;;;;;;;;;; 语言选项;;;;;;;;;;;;;;;;;;;;;engine = On; 使PHP scripting language engine(PHP 脚本语言引擎)在Apache下有效。
short_open_tag = On; 允许<? 标识(这种简单表示)。
否则仅有<?php and <script> tags 将被识别。
asp_tags = Off; 允许ASP-style tagsprecision = 14; 浮点类型数显示时的有效位数y2k_compliance = Off; 是否打开2000年适应(可能在非Y2K适应的浏览器中导致问题)output_buffering = Off; 输出缓存允许你甚至在输出正文内容之后发送header(标头,包括cookies)行; 其代价是输出层减慢一点点速度。
你可以使用输出缓存在运行时打开输出缓存,; 或者在这里将指示设为On 而使得所有文件的输出缓存打开。
output_handler = ; 你可以重定向你的脚本的所有输出到一个函数,; 那样做可能对处理或以日志记录它有用。
; 例如若你将这个output_handler 设为"ob_gzhandler",; 则输出会被透明地为支持gzip或deflate编码的浏览器压缩。
; 设一个输出处理器自动地打开输出缓冲。
implicit_flush = Off; 强制flush(刷新)让PHP 告诉输出层在每个输出块之后自动刷新自身数据。
; 这等效于在每个print() 或echo() 调用和每个HTML 块后调用flush()函数。
; 打开这项设置会导致严重的运行时冲突,建议仅在debug过程中打开。
allow_call_time_pass_reference = On; 是否让强迫函数调用时按引用传递参数。
这一方法遭到抗议,; 并可能在将来版本的PHP/Zend里不再支持。
; 受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。
; 你被鼓励尝试关闭这一选项并确认你的脚本仍能正常工作,以保证在将来版本的语言里; 它们仍能工作。
(你将在每次使用该特点时得到一个警告,而参数将按值而不是按引用; 传递)。
; Safe Mode 安全模式safe_mode = Offsafe_mode_exec_dir =safe_mode_allowed_env_vars = PHP_; ?Setting certain environment variables; ?may be a potential security breach.; 该指示包含用逗号分隔的前缀列表。
安全模式中,用户仅可以替换; 以在此列出的前缀开头的环境变量的值。
; 默认地,用户将仅能设定以PHP_开头的环境变量,(如: PHP_FOO=BAR)。
; 注意: 如果这一指示为空,PHP 将让用户更改任意环境变量!safe_mode_protected_env_vars = LD_LIBRARY_PATH; 这条指示包含一个用逗号分隔的环境变量列表,那是最终用户将不能用putenv () 更改的。
; 这些变量甚至在safe_mode_allowed_env_vars 设置为允许的情况下得到保护。
disable_functions =; 这条指示让你可以为了安全的原因让特定函数失效。
; 它接受一个用逗号分隔的函数名列表。
; 这条指示*不受* 安全模式是否打开的影响。
; 语法高亮模式的色彩。
; 只要能被highlight.string = #DD0000ment = #FF8000highlight.keyword = #007700highlight.bg = #FFFFFFhighlight.default = #0000BBhighlight.html = #000000; Misc 杂项expose_php = Off; 决定PHP 是否标示它装在服务器上的事实(例如:加在它—PHP—给Web服务; 发送的信号上)。
; (我个人的意见,在出现什么power-by的header的时候,把这关掉。
); 它不会有安全上的威胁, 但它使检查你的服务器上是否安装了PHP成为了可能。
;;;;;;;;;;;;;;;;;;;; Resource Limits ;;;;;;;;;;;;;;;;;;;;max_execution_time = 30 ; 每个脚本的最大执行时间, 按秒计memory_limit = 8388608 ; 一个脚本最大可使用的内存总量(这里是8MB);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Error handling and logging ;; 出错控制和登记; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 错误报告是按位的。
或者将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告; E_ERROR - 致命**运行时错; E_WARNING - 运行时警告(非致命**错); E_PARSE - 编译时解析错误; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的,;也可能是有意的行为造成的。
(如:基于未初始化的变量自动初始化为一个;空字符串的事实而使用一个未初始化的变量); E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命**错); E_COMPILE_ERROR - 编译时致命**错; E_COMPILE_WARNING - 编译时警告(非致命**错); E_USER_ERROR - 用户产生的出错消息; E_USER_WARNING - 用户产生的警告消息; E_USER_NOTICE - 用户产生的提醒消息; 例子:; error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒; error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒display_errors = On ; 显示出错误信息(作为输出的一部分); 在最终发布的web站点上,强烈建议你关掉这个特**,并使用; 错误日志代替(参看下面)。
; 在最终发布的web站点继续让display_errors 有效可能; 暴露一些有关安全的信息,例如你的web服务上的文件路径、; 你的数据库规划或别的信息。
display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中; 的错误也不会被显示。
; 强烈建议保持使display_startup_errors 关闭,; 除了在改错过程中。
log_errors = Off ; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的)); 正如上面说明的那样,强烈建议你在最终发布的web站点以日志记录错误; 取代直接错误输出。
track_errors = Off ; 保存最近一个错误/警告消息于变量$php_errormsg (boolean);error_prepend_string = "" ; 于错误信息前输出的字符串;error_append_string = "" ; 于错误信息后输出的字符串;error_log = filename ; 记录错误日志于指定文件;error_log = syslog ; 记录错误日志于系统日志syslog (NT 下的事件日志, Windows 95下无效)warn_plus_overloading = Off ; 当将‘+’用于字符串时警告;;;;;;;;;;;;;;;;;; Data Handling ;;;;;;;;;;;;;;;;;;variables_order = "EGPCS" ; 这条指示描述了PHP 记录; GET, POST, Cookie, Environment and Built-in 这些变量的顺序。