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

PHP CLI“;“内存不足”;使用cPanel运行CentOS的VPS服务器上出错,php,symfony,centos,command-line-interface,cpanel,Php,Symfony,Centos,Command Line Interface,Cpanel,我在一个运行CentOS和cPanel的托管虚拟服务器上运行Symfony2.1。除了我不能再使用Symfony CLI命令之外,一切都正常运行。我明白了: Fatal error: Out of memory (allocated 20185088) (tried to allocate 71 bytes) 错误(例如,当我尝试运行php应用程序/控制台缓存:clear--env=prod或其他有用的Symfony命令时) 我已经通过CLI使用相同的命令好几个月了,没有任何问题,直到几天前出

我在一个运行CentOS和cPanel的托管虚拟服务器上运行Symfony2.1。除了我不能再使用Symfony CLI命令之外,一切都正常运行。我明白了:

Fatal error: Out of memory (allocated 20185088) (tried to allocate 71 bytes)
错误(例如,当我尝试运行
php应用程序/控制台缓存:clear--env=prod
或其他有用的Symfony命令时)

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

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

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

到目前为止,我一直在努力:
  • 增加php.ini中的内存\u限制(或直接在命令行上):根据我所遇到的错误类型,我怀疑这没有效果

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

  • 使用free-m监控内存使用情况:有大量可用内存(这是意料之中的,因为symfony命令可以在cron作业中完美运行)

  • 尝试查找WHM/cPanel是否可能有,例如,通过更新,为用户帐户设置任何内存限制:我发现在使用被监禁的SSH shell(但事实是,我不是,我使用的是普通SSH shell)或启用shell Fork Bomb保护时可能会出现这种情况(但不是,这在我的服务器上被禁用)

  • 使用ulimit-a检查我的服务器/帐户上的ulimit设置:有一些限制,但总数为2.56亿,而我的“内存不足”错误表明,PHP CLI允许的内存似乎不超过2000万

  • 检查.conf文件中是否存在内存限制,特别是在/etc/security/limits.conf中:没有

  • 检查任何其他可能设置这种内存限制的文件:这次我确实找到了一个,即/usr/local/cpanel/etc/login\u 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\u profile/limits.sh
让我接近答案,我缺少什么?我需要重新启动服务器或重新启动cpanel,而不是重新登录到我的帐户吗

另一方面,这是否与WHM/cPanel更新有关(如前所述,直到几天前,所有东西都在命令行上正常工作)

谢谢你的帮助,很抱歉问了这么长的问题


PS:我发现了关于堆栈溢出的其他类似问题,但每个问题都是用我已经尝试过的方法解决的。所以我想我遇到了一个不同的问题。

结果是,在一次不必要的cPanel更新之后,我的SSH端口从默认值更改了,我无法登录。我在o中以安全模式重新启动了SSH订购登录

今天,凭直觉,我在
/etc/SSH/sshd config
中查看了SSH端口,在“正常”模式下重新启动了SSH,并使用正确的端口登录:脚本现在运行良好


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

这听起来确实像脚本使用了PHPs
内存限制所允许的更多。你试过使用
php--ini
来获得CLI php.ini的位置,设置
内存\u limit=512M
(或其他一些较大的数字),然后重新启动apache?+1以获得详细解释question@ChrisMcKinnel谢谢你的回答。是的,我做了(确保它确实是我正在编辑的CLI php.ini),但它没有改变任何东西。这就是为什么我严重怀疑这是一个PHP内存限制问题的原因。您的服务器中有多少ram?您有任何交换分区吗?在我的vps中使用composer update之前,我遇到了一些类似的问题,并添加了一个交换分区。解决了这个问题,您是否以您尝试使用的同一用户的身份运行ulimit-a运行脚本作为?