技术日志

记录分享邓杰律师从事网络技术工作点点滴滴。

位置:首页>资讯动态>技术日志

windows环境下,php.ini如何配置?

点击复制标题网址

——温馨提示——

已复制到剪贴板,可粘贴到下一处。


时间:2023-08-01   访问量:1146

编者按:所有的PHP源码网站都必须配置环境,不论是使用集成环境还是自己手动搭建,可能很少有人关注过php.ini里面配置的这些东西到底有什么作用,很多站长在设置php.ini文件时,都是网上找一个教程,然后人家说哪里增加哪里删除按步骤进行,但是这里面的设置还真有两处会引起网站安全问题。有人会说就一个php.ini文件怎么可能会有安

        以windows系统上安装PHP为例,将php.ini-development文件,复制一份并将其重命名为php.ini并打开进行逐项配置。(https://www.php.net/manual/zh/ini.php

        1、查找到hort_open_tag = Off将其改为short_open_tag = On 开启短标签功能。

告诉 PHP 是否允许 PHP 开放标签的缩写形式(<? ?>)。如果要 PHP 和 XML 结合使用,可以禁用此选项以便嵌入使用 <?xml ?>。否则还可以通过 PHP 来打印,例如:<?php echo '<?xml version="1.0"?>'; ?>。此外,如果禁用,必须使用 PHP 开放标签的完整形式(<?php ?>)。

        2、查找到expose_php = On,将其改为expose_php = Off

确定是否向外界公开服务器上安装了 PHP,在 HTTP 标头中包含 PHP 版本号(例如:X-Powered-By: PHP/5.3.7)。

        3、查找到display_errors = On将其修改为:display_errors = Off。查找到;error_log = php_errors.log将其修改为:error_log = e:/php7340_errors.log

        4、查找到如下代码

; On windows:

; extension_dir = "ext"

将extension_dir前面的分号去掉,并且把ext修改为你的PHP安装路径,如:

extension_dir = "e:/php/ext"

        5、查找到max_execution_time = 30,将数字30修改为300或1200。

当命中 max_execution_time 中设置的超时的时候,PHP 运行时将会优雅的销毁资源。如果在这时卡住,硬超时将计时设置的秒数。当命中硬超时的时候,PHP 将异常退出。当设置为 0 时,硬超时始终不会激活。

        6、查找到;cgi.force_redirect = 1,把前面的分号去掉,并把数字1改为0。cgi.force_redirect = 0的意思就是关闭重定向执行php文件。默认是开启的,但出于安全考虑,为防止别人上传木马执行如:你的网站url/as=你的网站url/sdf/muma.php,这样的重定向PHP文件是可执行的,将这个配置改为0之后这类型的重定向PHP文件就禁止执行。这也是为什么有的网站总是被挂马的原因,这样修改之后即便是网站前台存在安全漏洞,被黑客上传的木马文件,通过这样的方式也无法运行木马文件。

——————

cgi.force_redirect 是在大多数 Web 服务器下提供将 PHP 作为 CGI 运行的安全性所必需的。如果未定义,PHP 默认开启。也可以关闭它自行承担风险。

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

——————

      7、查找到;cgi.fix_pathinfo=1将分号去掉并将数字1改为0。作用是禁止解析非法php文件,如/a.jpg/1.php这样的图片下的一个php文件属于非法的,设置为0就是禁止执行。这种将木马伪装成图片上传的文件存在已久,禁止这类文件运行,即使被上传了木马,由于设置了不允许运行,所以没有用。

——————

为 CGI 提供真正的 PATH_INFO/PATH_TRANSLATED 支持。PHP 以前的行为是将 PATH_TRANSLATED 设置为 SCRIPT_FILENAME,而不去理解 PATH_INFO 是什么。有关 PATH_INFO 的更多信息,请参阅 CGI 规范。将此设置为 1 将导致 PHP CGI 修复其路径以符合规范。设置为 0 会导致 PHP 像以前一样运行。默认打开。应该修复脚本以使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。

——————

       8、查找到fastcgi.impersonate = 1将前面的分号去掉。作用是iis或nginx使用的是fastcgi方式解析php文件,不开启就不能运行php程序,Apache则不用开启。

——————

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

——————

        9、查找到cgi.rfc2616_headers = 0 去掉分号并把0改为1。意思是告诉php使用什么样的报头,什么是报头呢?就像这个:HTTP/1.1。

        10、查找到upload_tmp_dir =,将前面的分号删除并将其修改为upload_tmp_dir = C:/Windows/Temp/php

设置上传文件的临时虚拟目录,但是不会真的上传任何文件在里面。如不设置默认上传到系统临时文件目录。

        查找到;session.save_path = "/tmp"并将其修改为:session.save_path = "C:/Windows/Temp/php"

   11、查找并将下面参数设置为:

post_max_size = 80M

upload_max_filesize = 80M

——————

设置允许 post 数据的最大大小。此设置也会影响文件上传。要上传大文件,此值必须大于 upload_max_filesize。 一般来说,memory_limit 应该大于 post_max_size。 当使用 int 时, 其值以字节来衡量。还可以使用在 FAQ 中描述的速记符。 如果 post 数据的大小大于 post_max_size,则 $_POST 和 $_FILES 超全局变量为空。这可以通过多种方式进行跟踪,例如通过将 $_GET 变量传递给处理数据的脚本,即 <form action="edit.php?processed=1">,然后检查是否设置了 $_GET@['processed']。

注意:

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

——————

        12、查找到以下代码,一行一个,分别去掉其前面的分号(分号表示注释,不生效的意思,去掉就生效了):

extension=bz2

extension=curl

extension=gd2

extension=gmp

extension=mbstring

extension=php_mysql.dll

extension=mysqli

extension=pdo_mysql

extension=sqlite3

extension=openssl

        13、查找到date.timezone =删除前面分号并修改为如下样子:

date.timezone = Asia/Shanghai

也可以设置为date.timezone = PRC ,设置时区为中国时区,PRC是中国时区的简称。

        14、查找到:disable_functions =在其后添加:

disable_functions =passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,eval,assert,putenv,phpinfo

本指令可用于禁止某些函数。接受逗号分隔的函数名列表作为参数。此指令仅能禁用 内置函数。 不能影响用户自定义函数。本指令只能设置在 php.ini 中。例如不能将其设置在 httpd.conf 中。

        15、查找到allow_url_fopen =On并将其关闭以禁止打开远程地址。allow_url_fopen = Off

        16、查找到allow_url_include = On并将其关闭以禁止禁止引用URL文件。allow_url_include = Off

        17、查找并开启 OPCACHE,提升网站访问速度体验。OPCACHE 是一个 PHP 的 byte code 缓存,它可以提高 PHP 的性能,让页面的加载速度更快。将下面的设置取消注释,保存

[opcache]

opcache.enable=1

opcache.enable_cli=1

opcache.memory_consumption=256

opcache.max_accelerated_files=20000

opcache.validate_timestamps=1

        18、查找到memory_limit并将其值调整为258M。

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

        以上为邓杰律师在搭建维护web服务器环境过程中对php.ini文件进行的配置,如您有任何疑问可以添加邓杰律师微信进行技术交流。


发表评论:

评论记录:

未查询到任何数据!
关于律师
————受人之托,忠人之事————
深圳数据合规律师
邓杰律师

专业

专注执业领域事务

尽责

全力办理委托事项

务实

扎实维护合法权益

邓杰系深耕于数据合规领域复合型资深专业律师,其律师执业证号为14403201810022100。邓杰律师现(曾)任WEB前端开发工程师、WEB服务器维护工程师、计算机信息网络安全员、深圳市人民政府听证员、深圳市政府采购评审专家(法律类)、深圳市某区政府系统公职律师,在网络领域和政府系统从业多年,深刻理解网络前沿技术和行政程序运行规则,十分擅长互联网+平台领域数据合规法律实务,可为政府、企业和个人在数据合规领域提供富有针对性的非诉、诉讼、仲裁、执行等法律风险防控解决方案,能有效维护当事人的各类合法权益。

扫一扫,存名片

深圳数据合规律师名片

律师名片

QQ扫一扫

深圳数据合规律师qq

QQ咨询

电话咨询

邓杰律师电话:13715198118

请输入您的联系电话,座机请加区号

电话咨询

微信扫一扫

深圳数据合规律师微信

微信联系