DRUPAL:致命错误:编辑特定现有页面时允许的内存大小错误

时间:2009-11-14 01:07:41

标签: php apache drupal drupal-6

Fatal error: Allowed memory size of 18874368 bytes exhausted (tried to allocate 1481725 bytes) in __/public_html/includes/database.inc on line 224

每次我尝试编辑以下页面时,我都会在Drupal 6中出现此错误(抱歉xx's):

  

hxxp://chipkin.com/fs-8700-125-stulz

     

hxxp://chipkin.com/fs-8700-47-dnp-30

     

hxxp://chipkin.com/fs8700-14-ge-mark-iv-speedtronic

     

hxxp://chipkin.com/fs8700-74-veeder-root-serial-driver

我们在共享主机上,所以我没有访问php.ini文件来分配更多内存,但我很确定这不是造成问题的原因。有什么想法吗?

5 个答案:

答案 0 :(得分:2)

绝对是一个内存问题 - 你只需18兆字节的内存就可以运行Drupal站点。

您的长期解决方案是更改主机 - 有很多主机允许您调整php.ini(在限制范围内)。 Bluehost.com就是一个例子。

可能的短期解决方案是从modules目录中删除未使用的模块。即使它被禁用,每个模块也会占用一点内存。

缓存和禁用statistics之类的东西也很好,但如果您在基本页面编辑中遇到内存问题,它们将无济于事。

答案 1 :(得分:2)

您可以通过.htaccess

指定内存限制

尝试将以下行添加到站点根目录中的.htaccess文件中:

php_value memory_limit 32M

答案 2 :(得分:1)

我也在共享主机上。这是我在其中一个Drupal域根文件夹中创建的PHP.INI:

[PHP]
memory_limit = 40M;
upload_max_filesize = 20M;
post_max_size 20M;
max_execution_time = 200;
max_input_time = 200;

我没有任何全球限制的问题。我不确定主机是否可以禁用或覆盖本地PHP.ini - 我的不是,它应该值得一试。

答案 3 :(得分:0)

我对Drupal并不熟悉,但有问题的页面试图从数据库中获取大量数据吗?像整个桌子的SELECT *?这可以解释为什么一个电话试图分配如此多的内存。

更改主机是一种选择,但是现在可能值得一看,是否可以采取措施来限制从数据库请求的数据。

不幸的是,错误消息并没有太多告诉您导致问题的特定请求 - 因为生成db请求的代码位于db库类中。如果你可以做任何类型的堆栈跟踪,那将有所帮助。

答案 4 :(得分:0)

编辑settings.php(通常在sites / default中)并添加(或修改):

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

......或者你需要。