понедельник, 29 октября 2012 г.

Подготовка рабочего места в Ubuntu 12.04 к web-разработке на Django

Подготовка рабочего места в Ubuntu 12.04 к web-разработке на Django

В качестве операционной системы я взял чистую Ubuntu 12.04. Накатив последние обновления приступаю к настройке рабочей станции.

Вызвав терминал по Alt+Ctrl+T начинаю «шаманить»:

  1. Устанавливаю Aptitude — оболочку для программы установки пакетов:
    sudo apt-get install aptitude

  2. Устанавливаю сервер MySql:

    • sudo aptitude install mysql-server

      В ходе установки будет необходимо ввести пароль root'a.

    • Изменяю файл /etc/mysql/my.cnf для того, чтобы не было проблем с кодировками:

      sudo gedit /etc/mysql/my.cnf

      Вставляю в секцию [mysqld] следующие строки:

      character_set_server = utf8
      collation_server = utf8_general_ci
    • Проверяю, что кодировка MySql правильная:

      mysql> show variables like 'char%';

      Должны получить следующий результат:

      +--------------------------+----------------------------+
      | Variable_name            | Value                      |
      +--------------------------+----------------------------+
      | character_set_client     | utf8                       |
      | character_set_connection | utf8                       |
      | character_set_database   | utf8                       |
      | character_set_filesystem | binary                     |
      | character_set_results    | utf8                       |
      | character_set_server     | utf8                       |
      | character_set_system     | utf8                       |
      | character_sets_dir       | /usr/share/mysql/charsets/ |
      +--------------------------+----------------------------+
      8 rows in set (0.01 sec)
      
    • После этого можно перезагрузить компьютер.

  3. Устанавливаю Java:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer
    
  4. Устанавливаю Django:

    • Скачиваю последнюю версию Django: https://www.djangoproject.com/download/, помещаю скаченный архив в свой домашний каталог, затем последовательно выполняю:

      tar xzvf Django-1.4.2.tar.gz
      sudo mv Django-1.4.2 /opt/
      cd /opt/Django-1.4.2/
      sudo python setup.py install
      
    • Проверяю корректность установки:

      python
      >>> import django
      >>> django.VERSION
      

      Результат должен быть следующим:

      (1, 4, 2, 'final', 0)
      
  5. Устанавливаю MySQL for Python:

    sudo aptitude install python-mysqldb
    
  6. Устанавливаю Eclipse:

    • Скачиваю последнюю версию Eclipse Classic отсюда: http://eclipse.org/downloads/, помещаю скаченный архив в свой домашний каталог, затем последовательно выполняю:

      tar xzvf eclipse-SDK-4.2.1-linux-gtk-x86_64.tar.gz
      sudo mv eclipse /opt/eclipse
      
    • Перехожу в каталог /opt/eclipse/ и запускаю одноименный файл.

    • Регистрирую Eclipse в системе:

      sudo gedit /usr/share/applications/eclipse.desktop
      
    • Вставляю в файл следующее содержимое:

      [Desktop Entry]
      Version=1.0
      Name=Eclipse
      Exec=/opt/eclipse/eclipse
      Terminal=false
      Type=Application
      Icon=/opt/eclipse/icon.xpm
      
    • После перезагрузки Eclipse появится в поиске. Запустив первый раз прикрепляю его к панели Unity Launcher.

  7. Устанавливаю Mercurial:

    sudo aptitude install mercurial
    
  8. Устанавливаю различные «примочки» для Eclipse:

    • PyDev for Eclipse:

      Help — Install New Software — Add — Location: http://pydev.org/updates. Примочка позволит использовать Python в Eclipse.

    • Mercurial for Eclipse:

      Help — Install New Software — Add — Location: http://cbes.javaforge.com/update. Примочка позволит использовать систему контроля версий Mercurial в Eclipse.

    • Web Page Editor:

      Help — Install New Software — Add — Location: http://download.eclipse.org/releases/juno/. Примочка позволит создавать и редактировать web-документы в Eclipse.

  9. Различные настройки Eclipse. Почему они по умолчанию не установлены — совершенно не понятно.

    • Указываю интерпретатор Python:

      Window — Preferences — PyDev — Interpreter-Python — Auto Config — Ok

    • Убираю раздражающие подчёркивания:

      Window — Preferences — General — Editors — Text Editors — Spelling — Enable spell checking — убираю галочку.

    • Показываю Project Explorer, по умолчанию он почему-то скрыт:

      Windows — Show View — Other — General — Project Explorer.

  10. Создаю базу данных MySQL, пользователя и назначаю ему права:

    • Подключаюсь к MySQL под root'ом:

      mysql -u root -p

    • Создаю базу данных:

      CREATE DATABASE db_name;

    • Создаю пользователя:

      CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_password';

    • Назначаю пользователю права на базу данных:

      GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'localhost' WITH GRANT OPTION;

  11. Если проекта ещё нет, то необходимо его создать:

    • File — New — Project — PyDev — PyDev Django Project

    • Ввожу имя проекта, проверяю путь создания проекта.

    • На странице Basic Django Settings указываю параметры подключения к базе данных.

    • Добавляю проект в систему контроля версий: в Project Explorer щелкаю правой кнопкой по проекту: Team — Share Project — Mercurial — Next — Finish.

    • Выбираю файлы, которые необходимо добавить в систему контроля версий: Team — Add.

    • После добавления файлов можно сделать первый «Commit»: Team — Commit. Указываю сообщение для первой фиксации.

    • Будет полезно зарегистрироваться на веб-сервисе для хостинга проектов. Я выбрал https://bitbucket.org.

      На хостинге создаю новый репозиторий, задаю имя, язык «Python».

    • Добавляю проект на внешний хостинг:

      Team — Push. В качестве URL указываю: https://bitbucket.org/user_name/project_name/. Указываю имя и пароль, полученные при регистрации, Next — Finish.

    • Для получения измененных данных с внешнего хостинга необходимо выбрать команду: Team — Pull.
  12. Если проект уже есть где-то на внешнем хостинге, то его необходимо импортировать:

    • File — Mercurial — Clone Existing Mercurial Repository.
  13. Запускаю сервер:

    • Перейдя в каталог проекта в терминале выполняю команду:

      python manage.py runserver

    • Запустив браузер, перехожу на страницу по адресу http://127.0.0.1:8000. Если появилась страница с текстом «It worked!», то это значит, что всё установили корректно.