php - Apache 内存错误

标签 php linux apache ubuntu apache2

当我尝试重新启动 apache2 时,我遇到了以下错误:

Fatal Error Unable to allocate shared memory segment of 67108864 bytes: mmap: Cannot allocate memory (12)

我才发现这个错误经常发生在虚拟服务器上,但我找不到解决方案,只能切换到 php-fpm 和 nginx 以减少内存使用。

服务器:Ubuntu 14.04 LTS,2GB 内存,VPS

有谁知道如何解决这个问题,因为 RAM 似乎不是问题所在(1.9GB 免费)。

苏打水

最佳答案

“ fatal error 无法分配共享内存段”。

使用 ipcs -lm 确定当前的共享内存限制。并使用 ipcs -ma 确定当前使用了多少共享内存。

更新 您已添加注释以显示“最大段大小(千字节)= 32768”。所以最大段大小是 32MB。原始错误是“无法分配 67108864 字节的共享内存段”。因此无法分配 64MB 的段。

将最大共享内存段大小从 32MB 增加到 128MB。

echo "134217728" >/proc/sys/kernel/shmmax
echo "134217728" >/proc/sys/kernel/shmall

然后重试。如果 apache2 然后工作正常,通过在/etc/sysctl.conf 中放置一个条目,使更改在重新启动后仍然存在,如下所示:

kernel.shmmax=134217728
kernel.shmall=134217728

关于php - Apache 内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620082/

相关文章:

php - 加盐和散列在 php 登录中不起作用

javascript - 模板在正确加载之前中断

linux - bash 脚本 - 读取单个击键,包括特殊键输入和空格

c++ - clock_nanosleep - 请求和保留的相同指针?

Wordpress 错误 : Tried changing permalink, 但显示错误

php - 我的更新查询在 Codeigniter 上不起作用

php - 为应用程序后端做出哪些选择

linux - bash echo stars or hashes 基于特定的数字

apache - 重定向,除非 URL 以特定字符串开头

apache - 如何在 .htaccess 中阻止对以/trackback/结尾的 URL 的 POST 请求?