Естественно, я просто разместил вопрос, чтобы наткнуться на ответ. Чтобы предоставить информацию всем, кто занимается поиском этой проблемы, я опубликую некоторые подробности здесь.
Соответствующие строки из nginx.conf:
пользовательские www-данные; # для того, чтобы nginx не запускался от имени root
passenger_default_user www-data; # аналогично для пассажира
root / opt / foo / app / current / public;
Ключевым моментом на этом этапе является обеспечение того, чтобы файлы приложения принадлежали www-данным, в частности config / environment.rb, потому что, очевидно, Passenger смотрит на своего владельца, чтобы определить, кого запускать. Это может означать, что запись passenger_default_user не имеет значения? Но, в любом случае, хорошо иметь его там как документацию о намерениях.
Наконец, убедитесь, что все родительские каталоги вашего приложения доступны через www-data - в моем случае в настройках системы по умолчанию был оставлен каталог 0700, который я пропустил.