У меня странная проблема с plesk, и я, кажется, нигде не могу найти ответа в официальной поддержке, поэтому я надеюсь, что кто-то здесь сможет пролить свет.
Я просто пытаюсь запустить скрипт через cron, используя «запланированные задачи» в пользовательской панели управления. Команда установлена на: php / var / www / полный / путь / к / скрипту и он работает в командной строке.
Сообщение об ошибке, которое я получаю, когда он запускается через cron (теперь, когда я обновился до plesk 11):
пользователь с id = xxxxx и name = xxxxxxxx не найден в chrooted passwd ошибка файловой системы: нет такого файла или каталога
Очевидно, xxxxxx - это настоящий идентификатор и имя. Пользователь указан в файле / etc / passwd и ничем не отличается от других.
У меня есть другой домен, который делает то же самое, ежечасно запускает задание cron, используя ту же команду (но с другим скриптом). Этот сценарий работает нормально, они находятся на тех же настройках хостинга и т. Д. И должны работать одинаково.
Есть ли у кого-нибудь идеи, что попытаться сделать, чтобы «исправить» пользователя?
РЕДАКТИРОВАТЬ:
Итак, я нашел это, осмотрев сервер: /usr/local.psa/admin/sbin/crontabmng
Если я сделаю crontabmng для пользователя с рабочим crontab, я вижу в верхней части файла, что он говорит ОБОЛОЧКА = / bin / sh - когда пользователь не работает, я вижу ОБОЛОЧКА = / usr / local / psa / bin / chrootsh
Кажется, что даже при том, что эти два пользователя должны быть идентичными (я предполагаю, что они могли быть настроены в разных версиях plesk, поскольку обновления произошли, но они, насколько мне известно, были настроены с использованием идентичного процесса) - один из у них есть хромированная оболочка, а у других - нет.
Теперь мне просто нужно узнать, как изменить эту настройку ...
Я нашел ответ, даже если он немного «неэлегантен» и, вероятно, не решает в первую очередь то, что вызывает проблему.
Однако это может помешать еще нескольким людям вырвать волосы.
Решение состоит в том, чтобы отредактировать файл crontab для пользователя и изменить эту переменную SHELL, однако я понятия не имею, где находится файл crontabl для пользователя.
Итак, я использовал эти шаги.
По сути, это сбрасывает crontab для этого пользователя в файл cron.txt в вашем текущем каталоге, где вы можете его отредактировать и использовать для перезагрузки обратно в менеджер crontab. Замените cron.txt полным путем, куда бы вы ни положили этот файл ....
РЕДАКТИРОВАТЬ:
И теперь я нашел более постоянное решение, которое работает, если вам не нужны какие-либо задания cron в chrooted shell, выполните эту команду:
/ usr / локальный / psa / bin / server_pref -u -crontab-secure-shell / bin / sh
Узнайте больше об этом из Вот (решение легче найти, если вы знаете, что именно ищете в Google!)