好的,我正在尝试为客户做一些工作。目前,我们只是尝试为其他开发人员创建的自定义函数执行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,如果有必要可以找到)。
答案 0 :(得分:3)
正确的php.ini在很大程度上取决于您的托管环境,但您可以使用脚本上的ini_set
或set_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覆盖寻呼机。