php教程

php报错internal server error的解决办法

我的站长站 2023-01-25 人阅读

php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。

解决方法

修改执行时间,php.ini 中 max_execution_time。在php.ini里查找

max_execution_time

默认是30秒.改为

max_execution_time = 0

0表示没有限制

另一个办法是在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制

另一种方法是可以在php程序中加入

set_time_limit();

来设定页面最久执行时间.

set_time_limit(0);//0表示没有限制
<?php 
//max_execution_time=100; 
ini_set("max_execution_time", 1); //用此function才能真正在运行时设置 
for($i=1; $i< 100000; $i++) 
{ 
echo "No. {$i}\n"; 
echo '<br />'; 
flush(); 
} 
?>

修改内存

需要注意的是,memory_limit 的值越高,即单个 PHP 进程占用的内存越多,系统能够并发处理的请求越少。例如,一个 2G 内存的机器

memory_limit 设为 128M, 则同时最多能处理 16 个请求
memory_limit 设为 256M, 则同时最多能处理 8 个请求
memory_limit 设为 512M, 则同时最多能处理 4 个请求

虚拟主机的 PHP memory_limit 是 PHP 单个脚本单次执行最大可用内存限制。默认限制为 256MB,最大可调整为 512MB。

现已知php7以下,单脚本执行最大内存限制是2G,php7不限制;

php里只要把memory_limit设为-1,就不会限制你跑cli脚本时的内存限制,剩下的就是操作系统ulimit会限制任何进程的最大内存。

配置 memory_limit 可以设置的吧,然后就看你可用物理内存了。

调整PHP脚本单次最大可执行时间为60秒

php_value max_execution_time 60

上述规则中的60可以替换为你需要的执行时间,单位为秒。我们允许的最大执行时间为180秒,为确保服务器性能,执行超过180秒的用户进程将被强制终止。

修改可执行时间是不推荐的操作。正常速度的网站程序,应当在2秒内完成执行。网站程序执行时间越长,访问者等待网站初次响应(传送第一个字节)的时间就越长。如果你的网站在日常访问中经常遇到Request Timed Out超时错误,请优先检查网站程序设置和资源使用情况。超过10秒仍未响应的网站,大部分访问者会选择关闭网页。不问缘由地增大可执行时间,不仅可能无法提升网站用户体验,而且可能使异常脚本无法及时终止,降低网站的负荷能力

相关推荐
  • php报错
  • php提示Notice: Undefined index报错解决方法

    Notice: Undefined index报错我的站长站在开发一个项目时,用$get获取网址参数值,非常简单一段代码,如下:$classid=$_GET[&#39;classid&#39;];运行发现php提示Notice: Undefined index的报错,网上找了下教程,Notice: Undefined index这个错误的意思是使用了...

    php教程 109 1年前
  • php报错internal server error的解决办法

    php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解...

    php教程 69 1年前
  • PHP报错Warning: Unknown: Input variables exceeded 1000

    PHP报错:Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0原因是一次性提交表单数据或输入的变量数量超过默认1000个的限制了。解决方法我们只需要修改下这个默认10...

    php教程 31 1年前
最新更新