Подтвердить что ты не робот

Ошибка CLI с ошибкой PHP на сервере VPS с помощью CentOS с cPanel

Я запускаю Symfony2.1 на размещенном виртуальном сервере под управлением CentOS с cPanel. Все работает отлично, за исключением того, что я больше не могу использовать команды 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 (это временное обходное решение, которое я использую сейчас), что означает, что сами скрипты не должны быть обвинены.

То, что я пытался сделать до сих пор:

  • Увеличьте memory_limit в php.ini (или прямо в командной строке): как я подозревал в том, что у меня есть тип ошибки, это не имело эффекта

  • Найдите любой другой файл php.ini, который может перезаписать этот параметр для CLI: не было

  • Мониторинг использования памяти со свободным -m: имелось много доступной памяти (что ожидалось, так как команды symfony отлично запускались через задания cron)

  • Попытка найти , если WHM/cPanel может иметь, например, при обновлении, установить любое ограничение памяти для учетных записей пользователей: я обнаружил, что это может случиться, что при использовании скрытой оболочки SSH (но это не я, я использую обычную оболочку SSH), или если включена защита оболочки Fork Bomb (но нет, это отключено на моем сервере)

  • Проверка настроек ulimit на моем сервере/учетной записи с помощью ulimit -a: существуют ограничения, но они равны 256 М, тогда как ошибка "Недостаточно памяти" указала, что не более 20 млн. для доступа к PHP 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, но каждый из них был решен с использованием одной из вещей, которые я уже пробовал. Поэтому я предполагаю, что у меня другая проблема.

4b9b3361

Ответ 1

Оказалось, что после нежелательного обновления cPanel мой SSH-порт был изменен с значения по умолчанию, и мне не удалось войти в систему. Я перезапустил SSH в безопасном режиме, чтобы войти в систему.

Сегодня, по подозрению, я посмотрел на порт SSH в /etc/ssh/sshd-config, перезапустил SSH в "нормальном" режиме и вошел в систему с правильным портом: скрипты теперь работают отлично.

Таким образом, причина заключалась в использовании SSH в безопасном режиме. Надеюсь, эта очень конкретная проблема будет полезна кому-то еще: никогда не используйте безопасный режим SSH для ежедневного использования, если вам не нужно.