четверг, 27 февраля 2014 г.

Production сервер для Ruby on Rails

Начнем, пожалуй! =)
Нужно выбрать веб-сервер, который мы будем использовать. Для целей разработки в Rails есть встроенный Webrick, который запускает написанное приложение на http://localhost:3000
Но это же несерьезно, использовать его на production сервере =)
В итоге я выбрал связку Nginx и Passenger. Можно спросить, почему? Просто она дает бОльшую производительность (в настройках по default), чем Apache + Passenger и менее сложна в настройке, чем Nginx + Unicorn. Во всяком случае, мне так кажется =)
Доступ по SSH. Консоль, откройся!
1
2
apt-get update
apt-get upgrade
Только что мы обновили все пакеты в системе. Теперь остановим и удалим Apache (если он есть), раз уж ставим вместо него Nginx.
1
/etc/init.d/apache2 stop && apt-get purge apache2*
Теперь займемся установкой rvm (контроль версий Ruby)
1
2
apt-get install curl
\curl -L https://get.rvm.io | bash -s stable --rails
В конце установки rvm даст правильную команду для своего запуска. У меня это было:
1
source /usr/local/rvm/scripts/rvm
Теперь поставим зависимости rvm. Команда
1
rvm requirements
Подскажет нам, что же именно еще нужно установить. Это длинный список разных пакетов.
1
/usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config
Запускаем и ждем, покуда все установится =)
Установим Ruby (версия у Вас может быть и новее) и укажет, какую версию мы будем использовать в системе по умолчанию.
1
2
rvm install 1.9.3
rvm use 1.9.3 --default
Далее установим RubyGems
1
rvm rubygems current
и рельсы
1
gem install rails
Теперь займемся, собственно, сервером.
Ставим Passenger
1
gem install passenger
В качестве модуля для Passenger устанавливаем Nginx.
1
rvmsudo passenger-install-nginx-module
Инсталлер nginx скажет нам, если ему чего-нибудь не хватает. Мне не хватало одного пакета:
1
apt-get install libcurl4-openssl-dev
Если все зависимости установлены, в меню установки nginx выбираем «1″ для быстрой установки.
Примечание: init.d (файл для запуска) для nginx при такой установке не создается, так что тырим его с linode.com =)
1
2
3
4
wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh
sudo mv init-deb.sh /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults
Далее стартуем nginx.
1
sudo service nginx start
Теперь зайдя на адрес нашего vps мы можем увидеть стандартную заглушку nginx. Это значит, что все идет хорошо =)
Лишним не будет установить node.js
1
sudo apt-get install nodejs
Теперь настроим nginx. Для этого нужно подредактировать его файл nginx.conf (у меня он был в /opt/nginx/conf/nginx.conf). Его расположение зависит, конечно, от директории, в которую nginx установился.
1
nano /opt/nginx/conf/nginx.conf
Найдите в файле участок «server { тут настройки по-умолчанию }». Придадим ему следующий вид:
1
2
3
4
5
6
7
8
9
10
server {
        listen      80;
        server_name имя_вашего_сервера;
        rails_env production;
        passenger_use_global_queue on;
        root /var/www/название_вашего_приложения/public;
        passenger_enabled on;
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
    }
В строке root должен быть путь к папке public вашего приложения.
После правки не забываем перезапустить сервер nginx.
1
service nginx restart
И не забывайте, что теперь мы работаем не с development базой данных, а с production.
Возможно, еще придется сделать:
1
rake assets:precompile
Пока я не ставил Capistrano для нормального деплоя приложений…
Если будут вопросы — задавайте их в комментариях =)

воскресенье, 23 февраля 2014 г.

Установка PHP 5.5.x на Debian

vim /etc/apt/sources.list.d/dotdeb.list


deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

Если есть прокси:
export http_proxy='101.198.130.118:3128'
wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
apt-key add dotdeb.gpg
apt-get update

Для apache :
apt-get install php5

или lighttpd :
apt-get install php5-cgi

php -v || php-cgi -v
Оригинал: http://www.dev-metal.com/setup-latest-version-php-5-5-debian-wheezy-7-07-1-fix-gpg-key-error/