使用cPanel运行CentOS的VPS服务器上的PHP CLI“内存不足”错误

问题描述 投票:10回答:1

我正在使用cPanel运行CentOS的托管虚拟服务器上运行Symfony2.1。除了不能再使用Symfony CLI命令以外,其他所有程序都运行正常。我得到这个:

Fatal error: Out of memory (allocated 20185088) (tried to allocate 71 bytes)

错误(例如,当我尝试运行php app/console cache:clear --env=prod或其他有用的Symfony命令时。

我已经通过CLI使用相同的命令几个月,直到几天前出现此错误为止,没有任何问题。从那时起,我一直无法克服这个错误。

我想指出的是,这不是与PHP memory_limit相关的错误(见下文),是“内存不足”错误,而不是“分配的内存大小”错误。

添加到cron作业中时,完全相同的命令可以完美运行(这是我现在使用的临时解决方法,这意味着脚本本身不应该受到指责。

到目前为止我尝试做的事情:

  • 增加php.ini中的memory_limit(或直接在命令行上):正如我从我所遇到的错误类型中怀疑的那样,这没有效果

  • 搜索其他任何php.ini文件可能会覆盖CLI的此设置:没有]]

  • [监视内存使用情况

  • 带有免费-m:有足够的可用内存(这是预期的,因为symfony命令在cron作业中完美运行)]
  • 尝试查找如果WHM / cPanel可能具有],例如通过更新,为用户帐户设置任何内存限制

    :我发现使用牢狱之灾可能就是这种情况。 SSH shell(但事实是,不是,我使用的是普通的SSH shell),或者是否启用了Shell Fork Bomb保护(但不,这在我的服务器上已禁用)
  • 使用ulimit -a在我的服务器/帐户上的
  • 检查ulimit设置:存在限制,但它们总计为256M,而我的“内存不足”错误表明PHP不允许超过20M CLI

  • 检查.conf文件中某处是否存在内存限制,尤其是在[[/etc/security/limits.conf中:没有任何内存限制

  • 检查是否有其他文件可以设置这种内存限制:这次我确实找到了一个文件,即/usr/local/cpanel/etc/login_profile/limits.sh

  • 限制(ulimit -n 100 -u 35 -m 20000 -d 20000 -s 8192 -c 20000 -v unlimited 2> / dev / null)=>我以为我终于找到了罪魁祸首,因为数字(20000)似乎对应,但是以root身份编辑此文件并再次通过SSH登录我的帐户后,再次没有效果我的问题:

    我现在没有其他选择了。我联系了我的房东,但他们和我一样一无所知(更重要的是,他们甚至不了解Symfony)。有没有人遇到过同样的问题?

    [如果有机会,/usr/local/cpanel/etc/login_profile/limits.sh使我接近答案,那么我缺少了什么?我需要重新启动服务器还是重新启动cPanel,而不是仅重新登录到我的帐户?

附带说明,这可能与WHM / cPanel更新有关(如上所述,直到几天前,一切在命令行上都运行良好)?

感谢您的帮助,对于冗长的问题深表歉意。

PS:我在Stack Overflow上发现了其他类似的问题,但是使用我已经尝试过的一种方法解决了每个问题。所以我想我遇到了一个不同的问题。

我正在使用cPanel运行CentOS的托管虚拟服务器上运行Symfony2.1。除了不能再使用Symfony CLI命令以外,其他所有程序都运行正常。我得到这个:致命错误:内存不足(...

事实证明,在不必要的cPanel更新之后,我的SSH端口已从默认值更改,并且我无法登录。我以安全模式重新启动SSH以便登录。

[今天,我直觉地看着/etc/ssh/sshd-config中的SSH端口,以“正常”模式重新启动SSH,并使用正确的端口登录:脚本现在可以正常运行。

所以原因就是在安全模式下使用SSH。希望这个非常具体的问题对其他人有用:除非绝对需要,否则切勿将SSH安全模式用于日常使用。

php symfony centos command-line-interface cpanel
1个回答
1
投票
事实证明,在不必要的cPanel更新之后,我的SSH端口已从默认值更改,并且我无法登录。我以安全模式重新启动SSH以便登录。
© www.soinside.com 2019 - 2024. All rights reserved.