Как исправить ошибку NginX/Phusion/Passenger «zsh:1: нет такого файла или каталога: Passenger/Buildout/Agents/SpawnPreparer»

Как исправить ошибку NginX/Phusion/Passenger «zsh:1: нет такого файла или каталога: Passenger/Buildout/Agents/SpawnPreparer»

Надеюсь, это правильный сайт, чтобы задать этот вопрос.

У меня есть веб-сервис, который я пытаюсь настроить с помощью NginX с Phusion Passenger, работающим на приложении Ruby Sinatra. Проблема в том, что когда я пытаюсь запустить сервер и протестировать сайт, я получаю следующую ошибку:

zsh:1: no such file or directory: passenger/buildout/agents/SpawnPreparer

Теперь я смог определить, что SpawnPreparerвызывает zsh, хотя, я не уверен, почему. Я даже не использую zshи не использовал его, когда создавал сервер. Тем не менее, я хотел бы знать, возможно ли настроить Passenger в nginx.conf для использования другой оболочки, с помощью которой можно порождать его процессы? Если да, то как?

Это Phusion 4.0.14

Спасибо!

решение1

Когда Phusion Passenger порождает приложение, он делает это, вызывая команду $SHELL -lc '/path-to-passenger-root/buildout/agents/SpawnPreparer /path-to-passenger-root/helper-scripts/rack-loader.rb <SOME ARGUMENTS>'. Это описано здесь:https://github.com/phusion/passenger/wiki/Проблемы-отладки-запуска-приложения#объяснение-процесса-порождения. Здесь $SHELL — это оболочка пользователя, настроенная в базе данных пользователей ОС (/etc/passwd). В вашем случае ваш пользователь настроен на zsh в качестве оболочки. Вероятно, это настройка вашей ОС по умолчанию.

Ваше сообщение об ошибке указывает на то, что он не может выполнить файл passenger/buildout/agents/SpawnPreparer. Другими словами, Phusion Passenger думает, что /path-to-passengerравно passenger. Это, вероятно, означает, что вы установили неправильное значение для passenger_rootдирективы, которая диктует правильное значение /path-to-passenger.

Связанный контент