在php.ini中为max_execution_time更改了设置,Drupal仍然遇到问题

时间:2012-12-03 15:55:08

标签: drupal timeout php

好的,我正在尝试为客户做一些工作。目前,我们只是尝试为其他开发人员创建的自定义函数执行kludgy修复,该函数会导出所有联系人的CSV。

由于他们添加了更多联系人,该功能需要更长时间,并且需要更多内存(我们必须将内存限制从128M提高到256M,现在已达到512M)。

无论如何,我正在尝试运行CSV导出器,并且在不同的运行中出现以下错误:

Fatal error: Maximum execution time of 30 seconds exceeded in /home/readyby2/public_html/includes/module.inc on line 19

Fatal error: Maximum execution time of 30 seconds exceeded in /home/readyby2/public_html/sites/all/modules/contrib/views/modules/field/views_handler_field_field.inc on line 0

并且我一次又一次地收到内部服务器错误500

请注意,此功能之前已经运行过 - 我看到它有效。

现在,据我所知,这意味着我需要更改php.ini中的最大执行时间设置。

/public_html文件夹之外有一个php.ini文件(这是保存Drupal文件的位置),我已经修改了该设置 - 但仍然可以获得上述所有错误。我把它分别改为60,90和0,没有变化。

是否有其他地方为Drupal安装设置了超时设置?我找到了正确的php.ini文件吗?我没有在/public_html目录或其他任何目录中看到一个。

我该如何解决这个问题?我已经提高了内存限制(服务器错误是否意味着服务器上没有足够的可用内存来执行此功能?)

任何建议或帮助都会有用。

作为一个FYI,这是在Drupal 7. PHP版本是5.x(我不记得确切的一个,认为它是5.1,如果有必要可以找到)。

4 个答案:

答案 0 :(得分:3)

正确的php.ini在很大程度上取决于您的托管环境,但您可以使用脚本上的ini_setset_time_limit函数快速解决它。

你可以在settings.php中设置ini,但它对整个网站来说都是全局的。

ini_set('max_execution_time', 120);到settings.php

或在您的脚本set_time_limit ( 120 )中,如果启用了PHP安全模式,则此功能无效!

答案 1 :(得分:2)

通常php.ini文件在/etc/php5/apache/php.ini或类似的地方。对于更简单的设置,可能只是/etc/php.ini

如果您使用基于debian的系统,您可能需要咨询您的软件管理系统:$> rpm -ql php5或替代方案。这会列出包中包含的文件。 php.ini文件应该在其中。根据您的发行版,您可能还需要查看包apache-mod_php5或类似内容。在您的包管理中搜索php,例如使用$> rpm -q --whatprovides /usr/bin/php5$> rpm -qa | grep -i php

在drupal环境中调用phpinfo()。在输出中,php指定了哪个php.ini文件已被解析。

答案 2 :(得分:1)

另一个选择是将以下内容添加到drupal的.htaccess

php_value max_execution_time 0

答案 3 :(得分:1)

您可以随时尝试(在您网站的settings.php(sites / default / settings.php)中查看您是否有权限编写它。

ini_set('memory_limit', '256M');

它覆盖了php.ini。 但我不认为你可以通过增加内存来修复它(每次遇到内存问题时都不能增加限制)。 你必须找到产生这个范围限制的东西(无限的结果,太多的结果......) 你可以随时使用Views模块和csv export来创建一个具有良好视图的良好csv:D只需考虑为csv覆盖寻呼机。