首页
学习
活动
专区
圈层
工具
发布

直接修改php.ini屏蔽php报错

基础概念

php.ini 是 PHP 的配置文件,它包含了 PHP 运行时的各种设置。通过修改 php.ini 文件,可以控制 PHP 的行为,包括错误报告级别。

相关优势

  1. 控制错误显示:通过修改 php.ini,可以控制是否显示 PHP 错误信息,这对于生产环境尤为重要,因为错误信息可能会泄露敏感信息。
  2. 性能优化:某些配置项可以影响 PHP 的性能,例如 memory_limit 和 max_execution_time。
  3. 安全性:通过配置 open_basedir 和 disable_functions 等选项,可以增强 PHP 应用的安全性。

类型

php.ini 文件中的设置可以分为以下几类:

  • 基本设置:如 extension_dir 和 doc_root。
  • 错误报告:如 error_reporting 和 display_errors。
  • 性能设置:如 memory_limit 和 max_execution_time。
  • 安全设置:如 open_basedir 和 disable_functions。

应用场景

在生产环境中,通常会关闭错误显示,以避免敏感信息泄露。例如,在 php.ini 中设置以下内容:

代码语言:txt
复制
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_NOTICE & ~E_USER_DEPRECATED
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

遇到的问题及解决方法

问题:为什么修改 php.ini 后,PHP 错误仍然显示?

原因:

  1. 配置文件未正确加载:可能是 php.ini 文件路径不正确,或者 PHP 没有读取到修改后的文件。
  2. 缓存问题:某些服务器配置可能会缓存 php.ini 文件,导致修改不生效。

解决方法:

  1. 检查 php.ini 路径:
  2. 检查 php.ini 路径:
  3. 这个命令会显示 PHP 当前使用的 php.ini 文件路径。
  4. 清除缓存:
    • 对于 PHP-FPM,可以重启服务:
    • 对于 PHP-FPM,可以重启服务:
    • 对于 Apache,可以重启服务:
    • 对于 Apache,可以重启服务:
  • 验证修改: 创建一个简单的 PHP 文件,例如 test.php,内容如下:
  • 验证修改: 创建一个简单的 PHP 文件,例如 test.php,内容如下:
  • 访问这个文件,如果没有错误信息显示,说明 php.ini 修改生效。

示例代码

假设你想在 php.ini 中屏蔽所有 PHP 错误显示,可以添加以下内容:

代码语言:txt
复制
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_NOTICE & ~E_USER_DEPRECATED
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

参考链接

通过以上步骤,你可以有效地修改 php.ini 文件来屏蔽 PHP 错误显示,并解决相关问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

快速修改PHP镜像中的php.ini并生效 - wuuconixs blog

背景 今天做ctfhub中文件包含的时候,做到了php伪协议。 为了测试每个协议的生效条件,需要修改php.ini。 我这里使用的镜像是php:5.6-apache。容器的名称叫php。...过程 我们先进入容器看看php.ini的位置。...File为空,说明在这个目录下还没有一个php.ini。...该目录下只有两个镜像官方给我提供的参考配置文件,我们把其中一份copy一下变成我们自己的php.ini。 再重新看一看,可以看见这份php.ini已经被正确检测到并加载了。...我们可以利用vscode里的docker插件来对文件进行修改。 修改后配置文件不会马上生效。需要在容器里把apache重启一下。可以在容器内部手动重启。还可以直接在外部这样。

2.2K30
  • PHP之修改php.ini文件上传大小的配置问题案例讲解

    php.ini php.ini文件保存了php的一些重要属性,例如现在要说的文件上传的一些限制条件,关于php.ini,有一篇很好的介绍:php.ini文件详解,在Windows系统中编写php的时候,...我们一定见过这个画面(来源百度): 在这个网页我们就可以看到圈起来的部分标明了php.ini文件的位置,今天在Linux服务器上测试一个php文件的时候,结果打开页面是这样: 那么我们怎样获取php.ini...方法一是写个测试php页面使用phpinfo()函数输出一下,但是Linux有更方便的输出方法,直接在命令行中: php -r “phpinfo();” 其实就相当于在php下运行了phpinfo()函数而已...,这时候会输出第一个页面的信息: 仔细看其实就是图一的信息,所以我们可以从中找到php.ini的文件位置,接下来直接输入位置: 在下面列出的文件中我们就可以看到有php.ini了,接下来是改变我们要改的信息了...PHP页面所吃掉的最大内存,默认8M 把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了 max_execution_time = 600 max_input_time = 600 memory_limit

    1.5K00

    【黄啊码】大多数人都会忽略PHP的这些安全设置

    1、屏蔽PHP错误输出 在/etc/php.ini(默认配置文件位置),将如下配置值改为Off display_errors=Off 不要将错误堆栈信息直接输出到网页上,防止黑客加以利用相关信息。...2、屏蔽PHP版本。...开启方法是在php.ini中修改如下: register_globals=On 建议关闭,参数如下: register_globals=Off 当关闭后,就只能从_POST、_GET、 4、文件系统限制...phpecho file_get_contents('/etc/passwd'); 当设置了后则会报错,不再显示相关信息,让系统目录b不会被非法访问: PHP Warning: file_get_contents...这个特性在缺省情况下是启用的,也可以通过php.ini来修改: suhosin.session.encrypt = Onsuhosin.session.cryptkey = zuHywawAthLavJohyRilvyecyondOdjosuhosin.session.cryptua

    1.8K20

    PHP-错误处理

    ** 在 php.ini 中可以找到错误级别的说明和设置。...```php //表示打开所有错误提示但屏蔽NOTICE错误 error_reporting = E_ALL & ~E_NOTICE //直接关闭所有错误提示,开发阶段一般是on,但上线以后一般会选择...//000000000001 ---> 就是第一个错误 ``` 在实际的开发中,没有人关注什么错误级别错误值什么的,报错了,看一眼大概啥类型的,直接找BUG就行了。...** ​ 值为:On(默认输出错误报告)、 Off(屏蔽所有错误信息) ​ 在PHP脚本中可调用ini_set( )函数,动态设置php.ini配置文件. ​.../开启 error_reporting(E_ALL);//开启所有错误 $sum=0;//此处如果屏蔽掉,初次使用sum时,变量未定义会notice报错 for($i=0;$i<=10;$i++){

    2.9K00

    【说站】PHP有哪些屏蔽错误的方法

    PHP有哪些屏蔽错误的方法 1、@屏蔽法,@在php中一个抑制错误的符号。 即便是你开启了报错功能,只要在错误语句之前加上@符号,便可屏蔽了错误信息。使用@抑制错误之前,会出现一个警告错误。...在php文件开始之前,我们可以加上这样一句话error_reporting(0);这个函数的意思是设置 PHP 的报错级别并返回当前级别,0则代表禁用错误报告。...打开php.ini文件,搜索display_errors = on,默认的应该是on,即开启报错功能,改为off即可。 4、error_reporting屏蔽法。...在php文件开始之前,可以加上这样一句话error_reporting(0);这个函数的意思是设置 PHP 的报错级别并返回当前级别,0则代表禁用错误报告。...// 关闭所有PHP错误报告 error_reporting(0); ?> 以上就是PHP屏蔽错误的方法,希望对大家有所帮助。

    1.7K50

    Mac Centos下开发PHP的C扩展

    背景介绍 用C语言写了一个库,在OC上能直接调用,在Android上打包成.so文件后也可以直接用,在PHP上想用,就要做成一个C扩展,这样一份算法就可以开开心心地在iOS、Android、H5上使用了...文件夹中进行操作 (1).php_test.h 文件中声明函数 PHP_FUNCTION(test_add); (2).修改config.m4文件,修改后要调用 phpize ....地址 php -i | grep php.ini phpini.png 打开php.ini文件 vim /usr/local/etc/php/7.2/php.ini ---- extension_dir.../configure成功 sudo make报错,是因为在gcc中直接在for循环中初始化了增量,这语法在gcc中是错误的,必须先先定义i变量: 'for' loop initial declarations.../modules/ 打开php.ini,末尾添加 extension_dir = /usr/lib64/php/modules/ extension=test.so 如果出现在命令行打印可以输出,

    1.8K30

    Class YafApplication not found 的报错排查,已经解决【php】

    一、备注 新配置Linux环境 由报错可知肯定是yaf框架,一个轻量级高效率基于PHP扩展由鸟哥开发的框架 index.php入口文件中报错 Yaf类没有找到 二、思路描述 1.因为新配置的环境,所以考虑下有没有安装...yaf 没有安装进行安装,如果安装继续排查问题 2.php -i | grep yaf 已经开启,并没有打开yaf.use_namespace 3.查看php.ini文件。.../package/yaf wget下载或者直接上传安装包都可以 注意:yaf3是给php7使用的,如果你的PHP版本在7以下,请下载yaf2的版本,否则在make时会报错 解压到当前目录:tar zxvf...yaf-3.0.8.tgz -C ./ 安装流程,惠新宸的官方解决:http://www.laruence.com/manual/yaf.install.html 3.配置php.ini [yaf]...5.如果访问项目,不正常,但是没有错误提示 原因是php配置中的两个参数没打开 在php.ini找到以下这两个配置修改成On并重启php-fpm服务即可看到对应保存 display_errors =

    1.7K10

    Discuz! Q官方文档Windows下提示 CA 根证书库错误如何解决?

    IIS解决方案 CA根证书错误会导致 PHP 无法验证SSL证书,从而无法正确调用腾讯云API、微信API 等。...解决方案如下: 下载根证书文件,保存为C:\cacert.pem 修改php.ini,修改其中的以下两行内容,并去掉前面的;符号。...PHP版本,找到路径,修改php.ini文件。...安装问题 安装检测到第三步时,居然报错了,说什么软连接失败,然后让管理员什么什么的,然后出现一行代码,忘截图了不好意思哈,但是你做到哪一步就知道我说的什么了。...第三步报错后:直接在浏览器链接输入框把3改成4就好啦 直接就进入了第四步配置数据库和后台管理页面,操作后就可以接着按步骤操作 最后就安装完成了。

    1.6K20
    领券