rshaibakov
@rshaibakov
Web-разработчик

Как установить passenger на nginx?

Сделал настройку в PuPHPet и поднял через Vagrant сервер на nginx. Следующей задачей для меня стоит установка passenger. Почитав на различных сайтах о том как устанавливать passenger, понял что в основном его инсталляция происходит вместе с nginx с помощью команды:
passenger-install-nginx-module

Но так как nginx у меня уже стоит, данное действие для меня не подходит. Я пошел дальше и узнал что passenger можно установить как отдельное расширение для nginx с помощью:
sudo apt-get install nginx-extras passenger

Добавив нужные в репозиторий пакеты, установил passenger. Установка прошла успешно. После этого в /etc/nginx/nginx.conf вставил строки в блок http, как сказано в официальной документации:
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/bin/ruby;

Потом перезапустил сервер и получил ошибку:
unknown directive "passenger_root" in /etc/nginx/nginx.conf:12

Из этого понятно что nginx не видит установленный passenger. Как это исправить? Какие могут быть решения?
  • Вопрос задан
  • 7575 просмотров
Решения вопроса 1
inf
@inf
DevOps Engineer
Вся беда-печаль установки passenger для nginx в том что nginx не поддерживает загрузку внешних модулей. То есть невозможно как для apache установить модуль и подключить его в конфигах.
Отсюда исходит два способа установки passenger для nginx:
  1. Установка из репозитория Phusion Passenger готового nginx с уже компилированным модулем passenger
  2. Установка из репозитория скрипта компиляции nginx и passeger, того самого "passenger-install-nginx-module" который скачает последнюю версию nginx и скомпилирует его с passenger. В данном случае nginx будет располагаться где-то в /opt/nginx/

Для обоих этих вариантов в любом случае надо подключить репозиторий Phusion Passenger
  1. Добавить ключи
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
  2. Установить пакеты
    sudo apt-get install apt-transport-https ca-certificates
  3. Создать файл /etc/apt/sources.list.d/passenger.list и вставить туда строку в соответствии со своим дистрибутивом (варианты по ссылке выше)
  4. Провести обновление sudo apt-get update

После этого nginx если он был обновится на версию вместе с самим passenger. Если его не было, то можно запустить passenger-install-nginx-module и следовать инструкциям установки, чтобы скомпилировать у себя nginx и passenger :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы