Сразу скажу, что установка диверсионная, то есть не из портов. В
порту nginx присутствует опция для установки модуля passenger, но я,
честно говоря не смог разобраться с ним. Все собралось, все вроде
хорошо, но абсолютно не понятно где находится passenger_root и т.п.
Порт самого passengera заточен под Apache, в общем не приемлимо. По
крайней мере я не сторонник ставить левый софт, просто потому что не
люблю держать софт который не будет использоваться, а потом вернувшись
через длительный промежуток времени к этому серверу в случае аварии, я
буду вспоминать зачем тут стоит апачь и что вообще тут должно крутится.
Поэтому, я пошел по пути, установки софта из gems.
Начнем с установки gems. gems это система управления пакетами для Ruby.
Ставим его из портов:
cd/usr/ports/devel/ruby-gems makeinstall clean
Этот порт при надобности втянет все что нужно для работы Ruby.
Теперь можно переходить к установке пассенжера, для его установки, как я уже писал воспользуемся установкой через gems:
gem install passenger
После установки passenger нам понадобятся исходные тексты nginx.
Скачать его можно с официального сайта http://www.sysoev.ru/ в разделе
nginx -> скачтать.
На момент написания статьи стабильная версия nginx-0.7.64, ее и
скачаем. Дальнейшие команды предполагается выполнять в директории
/home/share/
mkdir/home/share cd/home/share fetch http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar xvfz nginx-0.7.64.tar.gz
Теперь можно переходить к сборке nginx с поддержкой модуля
passenger, для этого служит команда passenger-install-nginx-module,
выполняем ее и попадаем в диалог сборки:
passenger-install-nginx-module
Первое диалоговое окно:
Welcome to the Phusion Passenger Nginx module installer, v2.2.8.
This installer will guide you through the entire installation process. It shouldn't take more than 5 minutes in total.
Here's what you can expect from the installation process:
1. This installer will compile and
install Nginx with Passenger support. 2. You'll learn how to configure Passenger in Nginx. 3. You'll learn how to deploy a Ruby on Rails application.
Don't worry if anything goes wrong. This installer will advise you on how to solve any problems.
Press Enter to continue, or Ctrl-C to abort.
Нужно нажать Enter для продолжения работы и после этого, произойдет
проверка на наличие необходимых компонент и при наличии всех
компонент(компилятора gcc, заголовков для разработки ruby, gem,
openssl, rake, fastthread), компоненты должны обязательно найтись,
часть из них присутствует в базовой системе FreeBSD, остальное
установится вместе с gems и после проверки нам предложат выбор:
Automatically download and install Nginx?
Nginx doesn't support loadable modules such as some other web servers do, so in order to install Nginx with Passenger support, it must be recompiled.
Do you want this installer to download, compile
and install Nginx for you?
1. Yes: download, compile and install Nginx for me. (recommended) The easiest way to get started. A stock Nginx 0.7.64 with Passenger support, but with no other additional third party modules, will be installed for you to a directory of your choice.
2. No: I want to customize my Nginx installation. (for advanced users) Choose this if you want to compile Nginx with more third party modules besides Passenger,
or if you need to pass additional options to Nginx's 'configure' script. This installer will 1) ask you for the location of the Nginx source code, 2) run the 'configure' script according to your instructions, and 3) run 'make install'.
Whichever you choose, if you already have an existing Nginx configuration file, then it will be preserved.
Enter your choice (1 or 2) or press Ctrl-C to abort:
1-й пункт выбора – это установка готового, собраного nginx, а второй
пункт – сборка со своими параметрами. Вот второй пункт нам и подойдет.
Вводим 2 и жмем Enter.
Следующий вопрос – где находятся исходные тексты nginx, а находятся они там, куда мы распаковали их /home/share/nginx-0.7.64
Where is your Nginx source code located?
Please specify the directory:
Вводим путь /home/share/nginx-0.7.64
И жмем Enter – следующий вопрос – какая базовая директория для
установки nginx. По умолчанию предлагают /opt/nginx/ Я сталю nginx по
тому же пути по которому собирается он из портов /usr/local
Where do you want to install Nginx to?
Please specify a prefix directory [/opt/nginx]:
Вводим /usr/local и опять жмем Enter
Теперь у нас интересуются дополнительными опциями configure:
Extra Nginx configure options
If you want to pass extra arguments to the Nginx 'configure' script, then please specify them. If not, then specify nothing and press Enter.
If
you specify nothing then the 'configure' script will be run as follows:
Опять жмем Enter и nginx c модулем passenger начнет собираться. В конце сборки мы увидим:
Nginx with Passenger support was successfully installed.
Please edit your Nginx configuration file, and set the passenger_root and passenger_ruby configuration options in the 'http' block, like this: http { ... passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8; passenger_ruby /usr/local/bin/ruby18; ... } After you (re)start Nginx, you are ready to deploy any number of Ruby on Rails applications on Nginx. Press ENTER to continue.
Вот на эти строки надо обратить особенное внимание. Их нужно сразу добавить в файл конфигурации nginx.
Добавим их и жмем Enter.