Затюнинговал я свой web-сервер, чтобы летал побыстрей. Для этого перенес MYSQL в tmpfs с синхронизацией на диск каждые 10 минут, наложил на него патчи от гугла, поставил в роли фронтэнда nginx, приделал к wordpress’у плагины кэширования. Радость то какая! Стал мой сервачок гораздо шустрее. Счастью не было предела. Но продолжалось, как всегда, не долго…
PHP – это отлично, но есть еще проектики, которые на Ruby On Rails крутятся у меня. Стоял Passanger, прикрученный к apache. Но из-за жутко медленной работы и граблей с одновременной работой в связке с PHP я его отключил, чтобы нервы не портил. Отложил до «хорошего настроения». И вот пришла муза.
Нашел отличную статейку на хабре и понеслась… Поставил Enterprise-версию рельсов, пассажира прикрутил. Nginx удалил, который до этого ставился из репозитория debian. Перенес нужные мне строчки из старого конфига в /opt/nginx/conf/nginx.conf. Замечательно! Теперь PHP и RoR дружат и все работает как надо (читайте, «летает»). Но, как всегда, вылез трабл. Не будь надобности запустить Redmine, я бы и не заметил. Проблемы были две. Вторая выявилась благодаря первой.
Теперь по порядку. Трабл №1. Я подумал:»Заморожу версию рельсов с помощью команды rake rails:freeze:gems». Откатываю rails до нужной версии, захожу в директорию Redmine’а, замораживаю. Но копируются либы свежей версии рельсов. Выяснилось, что в /opt/ruby-enterprise/ рельсы не откатились. Вот и Трабл №2…
Замечу, что в статье, по которой все настраивал, сделаны симлинки в директорию /usr/bin/ из /opt/ruby-enterprise/bin/
Обе проблемы решил. Сначала вторую, чтобы все нужные бинарники и либы находились системой там, где нужно (/opt/ruby-enterprise/), потом первую, чтобы заморозить Redmine. Что я сделал:
Удаляем пакеты, что ставились не из исходников
Удаляем симлинки, которые создавали
Говорим, где искать все это удаленное добро
Удаляем старые рельсы. Вам может и не понадобится. У меня стояли обе версии (думается, что из-за MultiRails ). Как сказать фризу, чтобы он страую себе копировал, я не нашел.
Ставим старичка
Перешли в директорию проекта, заморозили, удалили старичка, поставили свежачек
Все работает! Может кому пригодится.
Использованный материал:
Установка nginx и Ruby Enterprise
http://habrahabr.ru/blogs/ror/64295/
Заморозка проектов на RoR
http://www.softiesonrails.com/2008/1/3/freezing-your-rails-application
Решение с export PATH и удалением пакетов с симлинками
/dev/my_mind
PHP – это отлично, но есть еще проектики, которые на Ruby On Rails крутятся у меня. Стоял Passanger, прикрученный к apache. Но из-за жутко медленной работы и граблей с одновременной работой в связке с PHP я его отключил, чтобы нервы не портил. Отложил до «хорошего настроения». И вот пришла муза.
Нашел отличную статейку на хабре и понеслась… Поставил Enterprise-версию рельсов, пассажира прикрутил. Nginx удалил, который до этого ставился из репозитория debian. Перенес нужные мне строчки из старого конфига в /opt/nginx/conf/nginx.conf. Замечательно! Теперь PHP и RoR дружат и все работает как надо (читайте, «летает»). Но, как всегда, вылез трабл. Не будь надобности запустить Redmine, я бы и не заметил. Проблемы были две. Вторая выявилась благодаря первой.
- Redmine работает только с Rails 2.2.2 и не выше. А у меня стоит 2.3.5 (зачем нам барахло?)
- gem install ставил пакеты в места, которые были определены до этого старыми дебиановскими скриптами, так как до этого описываемый софт ставился из репозитариев Debian.
Теперь по порядку. Трабл №1. Я подумал:»Заморожу версию рельсов с помощью команды rake rails:freeze:gems». Откатываю rails до нужной версии, захожу в директорию Redmine’а, замораживаю. Но копируются либы свежей версии рельсов. Выяснилось, что в /opt/ruby-enterprise/ рельсы не откатились. Вот и Трабл №2…
Замечу, что в статье, по которой все настраивал, сделаны симлинки в директорию /usr/bin/ из /opt/ruby-enterprise/bin/
Обе проблемы решил. Сначала вторую, чтобы все нужные бинарники и либы находились системой там, где нужно (/opt/ruby-enterprise/), потом первую, чтобы заморозить Redmine. Что я сделал:
aptitude purge rubygems rails, ruby
Удаляем пакеты, что ставились не из исходников
rm -f /usr/bin/gem /usr/bin/rails /usr/bin/ruby /usr/bin/rake
Удаляем симлинки, которые создавали
export PATH=/opt/ruby-enterprise/bin:$PATH
Говорим, где искать все это удаленное добро
gem uninstall rails -v=2.3.5
Удаляем старые рельсы. Вам может и не понадобится. У меня стояли обе версии (думается, что из-за MultiRails ). Как сказать фризу, чтобы он страую себе копировал, я не нашел.
gem install rails -v=2.2.2
Ставим старичка
cd /var/www/redmine/
rake rails:freeze:gems
gem uninstall rails -v=2.2.2
gem install rails
Перешли в директорию проекта, заморозили, удалили старичка, поставили свежачек
Все работает! Может кому пригодится.
Использованный материал:
Установка nginx и Ruby Enterprise
http://habrahabr.ru/blogs/ror/64295/
Заморозка проектов на RoR
http://www.softiesonrails.com/2008/1/3/freezing-your-rails-application
Решение с export PATH и удалением пакетов с симлинками
/dev/my_mind