php 相关的设置以及各种报错问题
1.Maximum execution time of 30 seconds exceeded解决办法
1)set_time_limit(0);
2)修改配置文件php.ini
max_execution_time = 0;
PHP Fatal error: Maximum execution time解决方法
2.Allowed memory size of 134217728 bytes exhausted 解决方法
134217728/1024/1024 = 128
对于不使用的变量,使用unset($var) 来删除它,否则内存占用越来越多!
1)ini_set('memory_limit', '-1') # -1为不受限
2)修改配置文件php.ini
memory_limit = -1;
当报错信息与数据库相关时,原因可能为:
1.查询出来的数据量大。
2.数据量不大。但是你php.ini配置的内存大小太小
3.逻辑出现死循环
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) 最大单线程的独立内存使用量。也就是一个web请求,给予线程最大的内存使用量的定义。
memory_limit的内存分配,标配是128M。一旦独立的线程超过了128M,那PHP会报错: Fatal error: Allowed memory size of 33554432 bytes(32M)对于8G内存的服务器,如果同时并发的响应达到50,每个都是128M的峰值,那估计也是服务器会卡死的时候。
尽量降低128M的内存配置,如果调整至64M,服务器的负载基本能下降一半左右,如果能调整至32M效果更好。但是对于应用的要求就更高,很多表建立初期就没有考虑到这个问题,如果你要采用memcache作为数据的存储,必须提前完成优化数据表的设计部署,降低独立线程PHP的内存使用量,服务器的响应和负载降低的就不仅仅是几个百分点的效果了。
3.php post参数的个数不能超过1000
4.PHP 配置文件php.ini
安装lamp系统后,服务器上的php.ini配置文件有多个,如下所示:
它们的区别为:
1.当从命令行执行PHP binary时,cli/php.ini会被使用,你可以通过在命令行运行php –ini来查看。
php -m // 查看phpcli 模式下 扩展模块 php -v // 查看php cli 版本
2.apache2/php.ini是lamp系统中使用的,可以通过在webserver中php页面添加phpinfo()方法来认证。
这两种php.ini会频繁使用,分开最主要的优点是:在不同的情况下,会有不同的配置文件,例如:由webserver使用的php.ini文件,会配置比较短的max_execution_time,而在命令行中的php.ini文件,会配置比较长的max_execution_time。
5.Vendor/PHPExcel/PHPExcel/Shared/String.php LINE: 579报错Maximum execution time of 0 seconds exceeded
通过研究后发现是代码中有一个json字符串特别大,包含字符有1.3M,所以对使用json_decode($str,true)进行处理时的报错
6.下载的文件打开报错有不可读取的内容
不管是下载的ppt还是excel,都会存在这种现象,解决方法是在生成报告后赶紧退出,如下所示:
参考:
https://blog.csdn.net/ufan94/article/details/78928486