[] FCGI FastCGI support [X] MEMCACHE_CLIENT MemCache-Client support
[ OK ] Cancel
Установим поддержку memcached – ruby не особо шустрый интерпритатор,
и применение кеширования в memcached любят все програмисты работающие с
Ruby on Rails.
Далее дело доходит до сборки порта activerecord
Options for rubygem-activerecord 2.3.4
[X] NATIVE_MYSQL Use native MySQL bindings [] NATIVE_POSTGRESQL Use native PostgreSQL bindings [X] NATIVE_SQLITE3 Use native SQLite3 bindings
[ OK ] Cancel
Сборку activerecord я указал с поддержкой MySQL и SQLite, чаще всего
требуется именно MySQL, но иногда просят включать поддержку SQLite, в
любом случае с какой базой будет работать Ruby on Rails вам может
сказать только програмист, который будет в дальнейшем работать на этом
сервере.
После того, как установка Ruby on Rails закончится переходим к созданию
проекта. Ruby on Rails сгенерирует все нужные для проекта директории и
библиотеки, останется создать базы и настроить nginx.
Проект сгенерируем в /home/share/www и назовем его к примеру test для этого создаем директории:
mkdir /home/share/www
переходим туда и генерируем проект:
cd/home/share/www/ rails -d
mysql test
Команда rails служит для генерации проекта, а опции командной строки
-d mysql – означает что нужно использовать mysql для хранения данных, а
test – название проекта и соответственно директории где находятся все
файлы проекта.
Далее проект нужно настроить. Внутри директории test есть директория
config, а в ней хранятся файлы настроек. Файл database.yml отвечает за
настройки доступа к базе. В нашем случае к базе MySQL. В этом файле
присутствует 3 секции development, test и production. Создадим базы под
эти все секции.
И создадим пользователя который будет работать с этими базами.
grant all on test_development.* to 'ruby'@'localhost' identified by 'ruby-777'; grant all on test_test.* to 'ruby'@'localhost' identified by 'ruby-777'; grant all on test_production.* to 'ruby'@'localhost' identified by 'ruby-777';
Теперь установим в файле /home/share/www/test/config/database.yml
доступ к базам. Во всех трех секциях пользователя и пароль. Находим
строки
По сравнению с обычным nginx тут добавились настройки модуля passenger.
passenger_enabled on; – опция включает работу модуля passenger для этого виртуального сервера.
rails_spawn_method smart; – метод вызова Riby on Rails движка.
rails_env development; – это определяет в каком ражиме сейчас находится
Ruby on Rails – Develpment, test или production. По большому счету от
этого зависит какая база будет использоваться.
Теперь надо запустить все наше хозяйство. Я не зря использовал
настройки сходные с типовыми для установки из портов. Поэтому стартовый
скрипт можно взять от стандартного, собранного из портов nginx:
# # Add the following lines to /etc/rc.conf to enable nginx: # nginx_enable (bool): Set to "NO" by default. # Set it to "YES" to enable nginx # nginx_profiles (str): Set to "" by default. # Define your profiles here. # nginxlimits_enable (bool): Set
to "NO" by default. # Set it to yes to run `limits $limits_args` # just before nginx starts. # nginx_flags (str): Set to "" by default. #
Extra flags passed to start command. # nginxlimits_args (str): Default to "-e -U www" # Arguments of pre-start limits run.
if[-n"$2"]; then profile="$2" if["x${nginx_profiles}"!= "x"]; then pidfile="${_pidprefix}.${profile}.pid" evalnginx_configfile="\${nginx_${profile}_configfile:-}" if["x${nginx_configfile}" = "x"]; then echo"You must define a configuration file (nginx_${profile}_configfile)" exit1 fi required_files="${nginx_configfile}" evalnginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}" evalnginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}" evalnginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}" evalnginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}" nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\"${nginx_flags}" else echo"$0: extra argument ignored" fi else if["x${nginx_profiles}"!=
"x"-a"x$1"!= "x"]; then for profile
in${nginx_profiles}; do echo"===> nginx profile: ${profile}" /usr/local/etc/rc.d/nginx $1${profile} retcode="$?" if["0${retcode}"-ne0]; then failed="${profile} (${retcode}) ${failed:-}" else success="${profile}${success:-}" fi done exit0 fi fi
nginx_checkconfig() { echo"Performing sanity check on nginx configuration:" eval${command}${nginx_flags}-t }
Размещаем этот стартовый скрипт в /usr/local/etc/rc.d/nginx, далее разрешаем запуск nginx в /etc/rc.conf
echo'nginx_enable="YES"'>>/etc/rc.conf
и запустим nginx:
/usr/local/etc/rc.d/nginx start
Теперь осталось убедиться, что все работает.
Для этого подключаемся браузером, должна открыться страничка:
При нажатии на ссылку «About your application’s environmen» должна открыться вот такая картинка:
Если появилась желтенькая картинка, значит тпштч + passenger + Ruby on Rails построен и работает.
В конце приведу свой файл настроек nginx для работы с passenger: