how - Error de PHP CLI "Memoria insuficiente" en el servidor VPS que ejecuta CentOS con cPanel
ssh cpanel linux (1)
Resulta que después de una actualización de cPanel no deseada, mi puerto SSH se cambió del valor predeterminado y no pude iniciar sesión. Reinicié SSH en modo seguro para iniciar sesión.
Hoy, por un presentimiento, miré el puerto SSH en /etc/ssh/sshd-config
, reinicié SSH en el modo "normal" e inicié sesión con el puerto correcto: los scripts ahora funcionan perfectamente.
Entonces, la causa fue usar SSH en modo seguro, solo eso. Esperemos que este problema específico sea útil para otra persona: nunca use el modo seguro SSH para uso diario a menos que sea absolutamente necesario.
Estoy ejecutando Symfony2.1 en un servidor virtual alojado que ejecuta CentOS con cPanel. Todo funciona bien, excepto que ya no puedo usar los comandos de la sinfonía CLI. Estoy obteniendo esto:
Fatal error: Out of memory (allocated 20185088) (tried to allocate 71 bytes)
error (por ejemplo, cuando trato de ejecutar la php app/console cache:clear --env=prod
u otros comandos útiles de Symfony).
He usado los mismos comandos a través de la CLI durante meses sin ningún problema hasta hace unos días cuando apareció este error. No he podido superar este error desde entonces.
Quiero señalar que este no es un error relacionado con PHP memory_limit (ver a continuación), que es un error de "Memoria insuficiente" y no un error de "Tamaño de memoria asignada".
Los mismos comandos exactos se ejecutan perfectamente cuando se agregan a un trabajo cron (esta es la solución temporal que estoy usando ahora), lo que significa que no se debe culpar a los propios guiones.
Lo que he tratado de hacer hasta ahora:
Aumenta memory_limit en php.ini (o directamente en la línea de comando): como sospechaba por el tipo de error que estoy teniendo, esto no tuvo efecto
Busque cualquier otro archivo php.ini que pueda sobrescribir esta configuración para la CLI: no había ninguno
Monitoreo del uso de la memoria con free -m: había mucha memoria disponible (lo que se esperaba, ya que los comandos de Symfony se ejecutan perfectamente a través de trabajos cron)
Tratando de encontrar si WHM / cPanel podría tener , a través de una actualización por ejemplo, establecer cualquier restricción de memoria para las cuentas de usuario: he descubierto que este podría ser el caso cuando se utiliza un shell SSH encarcelado (pero la cosa es que yo no, Estoy usando shell SSH normal), o si habilito la protección Shell Fork Bomb (pero no, esto está deshabilitado en mi servidor)
Comprobando la configuración de ulimit en mi servidor / cuenta con ulimit -a: hay límites, pero suman un total de 256M mientras que el error "Sin memoria" indicó que no se permiten más de 20M en la CLI de PHP
Comprobando si había alguna restricción de memoria en algún lugar de los archivos .conf, especialmente en /etc/security/limits.conf : no había ninguno
Comprobando cualquier otro archivo que pudiera establecer ese tipo de restricción de memoria: esta vez sí encontré uno, a saber /usr/local/cpanel/etc/login_profile/limits.sh que parece establecer ese límite (ulimit -n 100 -u 35 -m 20000 -d 20000 -s 8192 -c 20000 -v unlimited 2> / dev / null) => Pensé que finalmente había encontrado al culpable, ya que los números (20000) parecen corresponder, pero editando este archivo como la raíz y el registro de nuevo en mi cuenta a través de SSH tenía, una vez más, ningún efecto
Mi pregunta :
Me he quedado sin opciones. Me puse en contacto con mi anfitrión, pero están tan despistados como yo (mucho más realmente, ellos ni siquiera saben sobre Symfony). ¿Hay alguien por ahí que haya tenido el mismo problema?
Si, por casualidad, el /usr/local/cpanel/etc/login_profile/limits.sh
me ha acercado a la respuesta, ¿qué me falta? ¿Debo reiniciar el servidor o reiniciar cPanel, en lugar de volver a iniciar sesión en mi cuenta?
En una nota lateral, ¿es esto algo que podría estar relacionado con una actualización de WHM / cPanel (como se dijo, todo estaba funcionando perfectamente en la línea de comandos hasta hace unos días)?
Gracias por cualquier ayuda, y lo siento por la larga pregunta.
PD: He encontrado otras preguntas similares en Stack Overflow, pero cada una de ellas se resolvió usando una de las cosas que ya probé. Entonces creo que estoy experimentando un problema diferente.