lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

Установка и настройка OpenVZ на Debian Lenny

без комментариев

Одной из технологий виртуализации является OpenVZ, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых Виртуальные Частные Серверы (Virtual Private Servers, VPS) или Виртуальные Среды (Virtual Environments, VE).

Виртуализация на уровне операционной системы в OpenVZ ограничивает использование гостевых систем Linux'ом, но даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет 1-3 %, по сравнению с обычными Linux-системами.

OpenVZ состоит из модифицированного ядра Linux и пользовательских утилит.

Для начала работы с OpenVZ устанавливаем ядро с поддержкой OpenVZ:

apt-get install linux-image-openvz-686

Перезагружаем сервер с новым ядром.

Read the rest of this entry »

Автор: lest

Февраль 19, 2010 в 10:32

Опубликовано в linux

Метки: , , , ,

Включение цветного вывода для Capistrano

без комментариев

Устанавливаем библиотеку capistrano_colors:

gem install capistrano_colors

Добавляем в ~/.caprc подключение этой библиотеки:

require 'capistrano_colors'

Автор: lest

Февраль 10, 2010 в 11:48

Опубликовано в development

Метки: ,

Развертывание Symfony приложения с Capistrano и Subversion

без комментариев

Одним важных процессов в разработке web-приложений, в том числе и написанных с использованием фреймворка Symfony, является деплоймент или разворачивание и обновление проекта на удаленном сервере. Для выполнения подобных действий существует множество средств и одним из самых популярных является Capistrano. Он достаточно прост в освоении, очень гибок в настройке и функциональный богат, но по-умолчанию настроен для Ruby on Rails приложений.

Настроить Capistrano для развертывания Symfony приложений не составляет особого труда, так как все этапы стандартного процесса с легкостью можно переопределить.

В корне проекта запускаем capify . и начинаем настраивать config/deploy.rb.

Read the rest of this entry »

Автор: lest

Февраль 5, 2010 в 18:07

Опубликовано в development

Метки: , , , , , ,

Capistrano и deploy проектов

без комментариев

Capistrano является инструментом для автоматизации задач на одном или нескольких удаленных серверах. Он выполняет команды на всех целевых машинах параллельно и обеспечивает механизм для отката изменений. Поэтому удобно использовать Capistrano для развертывания web-приложений.

Для того, чтобы без использования Capistrano разместить свой код в production среде, можно выполнить одно из следующих действий:

  • Залить по FTP весь код приложения, а затем обновлять измененные файлы.
  • При использовании системы контроля версий (например, Subversion) зайти через SSH на production сервер и получить/обновить код с помощью checkout/update из репозитория.
  • Использовать скрипты на основе rsync для синхронизации своей рабочей копии с сервером.

Разумеется, эти подходы имеют полное право на существование. Но кроме обновления кода есть и другие вещи, которые необходимо выполнять (применение миграций базы данных, очистка кэша и т.д.). Capistrano позволяет автоматизировать все рутинные операции связанные с развертыванием и обновлением приложений, оставляя больше времени на процесс разработки.

Read the rest of this entry »

Автор: lest

Февраль 5, 2010 в 18:07

Опубликовано в development

Метки: , , ,

Установка и настройка Nginx на CentOS 5 с Cpanel

без комментариев

Nginx - это небольшой, очень быстрый и эффективный веб-сервер, как правило, используемый для обслуживания статического контента и как обратный прокси (или балансировщик нагрузки) для Apache или других относительно медленных бэкендов.

Поэтому вполне естественно использовать Nginx в качестве фронтэнда для Apache. Nginx позволяет экономить значительный объем памяти и процессорного времени, как правило используемых многочисленными процессами Apache, отдающими контент клиентам.

mod_rpaf

В случае использования Nginx в качестве реверсивного прокси перед Apache, ip-адрес посетителя, получаемый Apache, будет неверным, так как все запросы к Apache приходят от Nginx.

Чтобы в Apache записывал реальные ip-адреса посетителей вместо ip-адреса сервера, необходим специальный модуль Apache (mod_rpaf).

Read the rest of this entry »

Автор: lest

Январь 24, 2010 в 21:19

Опубликовано в linux

Метки: , , , , ,

Запуск web-приложения на Sinatra с Phusion Passenger

без комментариев

На сегодняшний день одним из самых простых способов запуска Rails и Rack web-приложений является Phusion Passenger, представляющий собой модуль для Apache и Nginx. Фреймворк Sinatra базируется на Rack, следовательно, приложения на его основе Passenger способен легко запускать.

Для приложения необходима базовая структура директорий:

APP_DIRECTORY/
  |-- app.rb       < -- непосредственно приложение
  |-- config.ru    <-- Rackup файл для запуска
  |-- public/      <-- директория для статических файлов (картинки, css, javascript)
  |-- tmp/         <-- временная директория

Read the rest of this entry »

Bdoc и Hanna – удобный просмотр документации RubyGems

5 комментариев

Bdoc является простой и удобной заменой для gem server. Bdoc не требует запуска сервера для просмотра документации, так как он генерирует статичный html с навигацией по установленной локально документации.

Установка Bdoc очень проста:

gem install bdoc

Read the rest of this entry »

Автор: lest

Январь 11, 2010 в 10:59

Опубликовано в ruby

Метки: , , , ,

Автоматизация обновления TextMate bundles

без комментариев

Автоматизировать обновление установленных TextMate bundles можно с помощью небольшого shell скрипта. Поддерживается обновление bundles, добавленных как через Subversion, так и через Git.

#!/bin/sh

for bundle in "/Library/Application Support/TextMate/Bundles"/*; do
  cd "$bundle"
  echo "$bundle"
  [ -d ".git" ] && git pull
  [ -d ".svn" ] && svn update
done

ps aux | grep "TextMate.app/Contents/MacOS/TextMate" | grep -v grep > /dev/null 2>&1 && \
  osascript -e 'tell app "TextMate" to reload bundles'

Сохраняем в файл (например, update_textmate_bundles.sh) и делаем chmod +x этому файлу. Теперь с помощью одной команды будут обновлены все дополнительно установленные bundles.

Автор: lest

Январь 8, 2010 в 16:36

Опубликовано в mac os x

Метки: , ,

Hello world с помощью Ruby, Sinatra и Haml

2 комментариев

Sinatra является легковесным фреймворком на Ruby, позволяет быстро и легко разрабатывать небольшие web-приложения. В основе фреймворка лежит DSL для простой разработки, что позволяет не отвлекаться на разбор параметров и обработку шаблонов.

Для начала нужны Ruby и Rubygems. Затем необходимо установить Sinatra:

gem install sinatra

В любимом текстовом редакторе (Vim, Emacs, TextMate и т.п.) создаем в новой директории файл app.rb, являющийся web-приложением на Sinatra:

require 'rubygems'
require 'sinatra'

get '/' do
  'Hello world!'
end

Read the rest of this entry »

Автор: lest

Январь 4, 2010 в 20:58

Опубликовано в ruby

Метки: , , ,

Мониторинг nginx с помощью munin

без комментариев

С помощью munin можно получить различную статистическую информацию о сервере с наглядными графиками. Для получения информации из nginx в munin существует несколько готовых плагинов: nginx_request (количество запросов), nginx_status (подключения) и nginx_memory (используемая память).

Такие графики получаются в результате несложной настройки:

nginx requests - by day

Read the rest of this entry »

Автор: lest

Декабрь 21, 2009 в 12:27

Опубликовано в linux

Метки: , , , , ,