【问题标题】:PHP/mysql memory error DrupalPHP/mysql 内存错误 Drupal
【发布时间】:2013-06-05 14:07:14
【问题描述】:

因此,我在本地 drupal CMS 环境中工作,并且能够轻松浏览并打开任何页面以查看或编辑。但是当我尝试保存更改或删除页面时,我得到以下两个错误之一。

致命错误:第 145 行 /Users/krice/projects/drupal/includes/database.mysql.inc 中允许的内存大小为 536870912 字节已用尽(尝试分配 76 字节)

致命错误:/Users/krice/projects/drupal/includes/database.mysql.inc 第 109 行中的最大执行时间超过了 60 秒

这是我的 my.cnf 文件和我的 php.ini 文件(如果我需要展示更多内容,这些部分很重要)

我的.cnf

# The MySQL server
[mysqld]
port        = 8889
socket      = /Applications/MAMP/tmp/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 16M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
tmp_table_size=2G
max_heap_table_size=2G

php.ini

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 60     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 2048M      ; Maximum amount of memory a script may consume (8MB)

如您所见,我已尝试提高最大执行时间和 memory_limit 并且仍然执行相同的操作,但现在它等待 60 秒然后给我错误。

任何帮助将不胜感激,如果您需要更多信息,我可以提供,谢谢。

【问题讨论】:

  • 显示内存限制的 phpinfo 值。你应该提升你的 php 资源。时间为5分钟。内存为256M。
  • 你真的在改变 php.ini 之后重启了 apache 吗? :)
  • @Fedir memory_limit 已经是 512MB(在错误消息中这么说),最长执行时间为 60 秒(在错误消息中这么说)应该足够了。
  • 发生错误时正在执行哪些查询?
  • @fedir 上面的 php.ini sn-p 内存限制为 2048M (2G)。 julien 是的,很好的想法 Stephan 使用 CMS 对页面进行简单更改,然后保存更改

标签: php mysql drupal


【解决方案1】:

你必须找出是哪个模块导致了过多的内存和时间消耗。

  1. 找出 memory_limit 用尽的函数(即 database.mysql.inc 的第 145 行属于哪个函数)。
  2. 修改该函数,使其在调用时记录debug_backtrace()
  3. 找出上次调用是哪个模块发起的。

【讨论】:

  • 感谢 Oswald,我们最终建立了一个 vigrant/虚拟机环境,并最终解决了问题。不过感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2013-10-09
  • 1970-01-01
相关资源
最近更新 更多