0

好的,我正在尝试为客户做一些工作。目前,我们只是在尝试对另一个开发人员创建的自定义函数进行 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 中的最大执行时间设置。

文件夹外有一个 php.ini 文件/public_html(Drupal 安装文件保存在其中),我已经修改了该设置 - 但仍然出现上述所有错误。我已经分别将其更改为 60、90 和 0,没有变化。

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

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

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

作为一个仅供参考,这是在 Drupal 7 中。PHP 版本是 5.x(我不记得确切的版本,认为是 5.1,如果需要可以查找)。

4

4 回答 4

3

正确的 php.ini 所在的位置很大程度上取决于您的托管环境,但您可以通过使用脚本中ini_set的任何一个或函数来快速绕过它。set_time_limit

您可以在 settings.php 中进行 ini 设置,但它对整个站点都是全局的。

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

或者在您的脚本set_time_limit ( 120 )中,如果 PHP 安全模式打开,这将不起作用!

于 2012-12-03T16:02:19.007 回答
2

通常 php.ini 文件在某处类似/etc/php5/apache/php.ini或类似的地方。也许只是/etc/php.ini在更简单的设置上。

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

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

于 2012-12-03T15:57:56.090 回答
1

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

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

它覆盖 php.ini。但是我认为您不能通过增加内存来解决它(每次遇到内存问题时都不能增加限制)。您必须找到产生此到达限制的原因(无限的 boucle,结果太多......)您始终可以使用 Views 模块和 csv 导出来制作具有良好视图的良好 csv :D 只需考虑覆盖 csv 的寻呼机。

于 2012-12-03T16:39:37.117 回答
1

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

php_value max_execution_time 0
于 2012-12-03T16:02:59.013 回答