19 февраля 2012 г.

Настройка конфигурации сервера Nginx для разработки на хостингн Amazon EC2

перевод с официального сайта http://http://nginx.org

В качестве независимого поставщика решений, в рамках программы AWS Solution Providers, Nginx предлагает автоматизированный скрипт установки сервера для использования на образах AWS EC2. Этот всмпомогательный сценарий ориентирован на разработчиков, которые только начали использовать Nginx и EC2, и хотели бы иметь быструю и эффективную среду. Пожалуйста, проделайте описанные в списке действия для того, чтобы подготовить свою виртуальную машину и настроить корректную конфигурацию Nginx.

Для настройки среды разработки:


  • Используйте руководство Get Started with EC2 чтобы зарегестрироваться на AWS (Amazon Web Services) и запустить свой EC2 образ (Spot request или Instance). Наш сценарий поддерживает только “Basic 32-bit Amazon Linux AMI” или “Basic 64-bit Amazon Linux AMI” образы, поэтому выберите один из них. При настройке правил брандмауэра (Security groups), необходимо добавить правило, чтобы принимать веб-трафик на 80 порту:
    80 (HTTP) 0.0.0.0/0
    
  • Как только сущность будет запущена войдите на нее используя ssh доступ и скачайте баш-скрипт aws_nginx_setup.sh с помощью следующей команды:
    wget http://nginx.org/download/aws_nginx_setup.sh
    
    затем запустите скрипт с правами суперпользователя:
    sudo sh ./aws_nginx_setup.sh
    
  • Вам будут предложены различные варианты установки. Возможно выбрать Django, Pyramid, Ruby on Rails или PHP среды разработки. После выбора необходимых компонентов, скрипт автоматически подготовит конфигурацию для работы с Nginx. Будет создан отдельный пользователь, а затем пример web-приложения будет запущен, для демонстрации корректной работы.
  • После завершения установки директорией для приложений будет являться папка /var/www, скрипт сообщит как запускать/останавливать пример приложения. Например Rails приложение будет находиться в /var/www/rails, а специфичные настройки Rails в конфигурации nginx будут находиться в /etc/nginx/conf.d/rails.conf. Установленные приложения и конфигурация могут быть использованы в качестве основы для дальнейшего развития.

От PHP к Ruby (Сходства и различия)

перевод с официального сайта http://www.ruby-lang.org

PHP широко используется для разработки web-приложений, однако если вы собираетесь попробовать Ruby on Rails или хотите писать на языке предназначенном для общего использования, то Ruby это то что вам нужно.

Сходства
  • Ruby как и PHP имеется механизм динамической типизации данных. Вы можете определять перменные непосредственно во время выполнения сценария.
  • Имеются классы, и вы можете контролировать доступ к ним, идентично PHP 5 присутсвуют public, private и protected уровни доступа.
  • Некоторые переменные также начинаются с $, как в PHP (но не все)
  • В Ruby присутсвует eval функция.
  • Вы также может использовать строчную интерполяцию. ”$foo is a $bar” вы можете написать как ”#{foo} is a #{bar}” — как и в PHP, это не распространяется на одиночные кавычки.
  • Идентичный heredoc механизм и синтаксис.
  • В Ruby есть исключения (exceptions -> raise или fail), как в PHP 5
  • Также имеется огромная библиотека стандартных механизмов.
  • Массивы (array) и хэш-массивы (hashes) устроены подобным образом, если вы замените конструкцию array() на { и }, то PHP array('a' => 'b') превратится Ruby {'a' => 'b'}.
  • true и false устроены аналогично PHP, но null обозначается nil

Различия
  • В Ruby строгая типизация данных. Вы должны использовать методы .to_s, .to_i и т. д. для конвертации строк, чисел и т.д. вместо того чтобы оставлять эту работу языку.
  • Строки, числа, массивы, хэш-массивы и все остальные сущности в Ruby являются объектами.
  • Скобки не являются обязательными при вызове метода, кроме тех случчаев когда нееобходимо передать параметры в тело метода
  • Вместо соблюдения оговоренного пространства имён например таких как подчеркивания (Underscores) или camelCase, стандартные библиотеки и расширения оформлены в классы и модули.
  • Reflection изначально имеется в объектах, вам не нужно подключать Reflection классы как в PHP 5
  • Переменные Ruby передаются по ссылкам. Присваивая переменной объект вы ссылаетесь на него, а не получаете копию.
  • В Ruby нет абстрактных классов (abstract classes) или интерфейсов (interfaces)
  • Хэш-массивы (hashes) и массивы (arrays) не являются взаимозаменяемыми
  • Только false и nil являются false, а вот 0, array() и пустая строка "" в теле условия определяются как true.
  • Практически все действия являются вызовом того или иного метода, даже raise (throw в PHP).