Hopefully this is the correct site to ask this question.
I've got a webservice I'm attempting to set up using NginX with Phusion Passenger riding a Ruby Sinatra application. The problem is that when I try to start the server and test the site, I get the following error:
zsh:1: no such file or directory: passenger/buildout/agents/SpawnPreparer
Now, I've been able to determine that SpawnPreparer
is calling zsh
, although, I'm not sure why. I don't even use zsh
and I wasn't using it when I built the server. Nevertheless, what I'd like to know is if it's possible to configure passenger in the nginx.conf to use a different shell with which to spawn its processes? If so, how?
This is Phusion 4.0.14
Thanks!
When Phusion Passenger spawns an application, it does so by invoking the command
$SHELL -lc '/path-to-passenger-root/buildout/agents/SpawnPreparer /path-to-passenger-root/helper-scripts/rack-loader.rb <SOME ARGUMENTS>'
. It's described here: https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems#the-spawning-process-explained. Here, $SHELL is the user's shell, as configured in the OS's user database (/etc/passwd). In your case, your user is setup with zsh as its shell. This is probably your OS's default setting.Your error message indicates that it cannot execute the file
passenger/buildout/agents/SpawnPreparer
. In other words, Phusion Passenger thinks that/path-to-passenger
equalspassenger
. This probably means that you set the incorrect value for thepassenger_root
directive, which dictates the proper value of/path-to-passenger
.