Создание полноценной среды для разработки WEB приложений на базе Ubuntu

Сен 17, 2009 I Howto, Linux.

Сосбтвенно все началось с просьбы написать скрипт для автоматизации рутинных процедур
конфигурирования dns, apache, создания директорий и т.д.
Итак, поставим цели и задачи, а потом попробуем их решить.
Цель:
Получить полноценно настроенную среду для разработки WEB приложений,
с автоматизированным процессом настройки всех служб при добавлении нового проекта (домена)

Задачи:
1.Установка локального DNS сервера, чтобы иметь возможность работы со своими доменами
2.Установка системы LAMP – apache, mysql, php и т.д.
3.Выбор средств администрирования баз и редактора для работы со скриптами.
4.Автоматизация процесса настройки dns и apache при добавлении нового домена.

Дано:
В моем случае Ubuntu Desktop 9.04 32-bit kernel 2.6.31(PAE) i686 GNU/Linux :)

Решение:
1.Установка локального DNS сервера
Все до безобразия просто
apt-get install bind9

2.LAMP
Я решил остановиться на php5, для тех кто выбирает php4 – заменить соответствующие пакеты
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl mysql-server mysql-client php5-mysql libmysqlclient15-dev
После установки, добавьте в конфиг апача /etc/apache2/apache2.conf
строку с установкой имени сервера (можно в самом начале конфига)
ServerName “имя вашей машины” (посмотреть если забыли: cat /etc/hostname)
В результате наших действий получим сервер вот такой конфигурации:
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.2 with Suhosin-Patch mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11)

3.Редакторы и администрирование:
apt-get install mysql-admin bluefish
Найдете в меню>приложения>программирование

P.S>
Дополнительно я еще ставлю ряд пакетов на всякие непредвиденные случаи:
apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

4.Автоматизация процесса настройки dns и apache при добавлении нового домена.
Скрипт качаем отсюда >>>
Дать права на запуск:
chmod +x domain.sh
запускаем:
./domain.sh shop.loc

Как это работает:
Скрипт первым делом проверяет наличие домена в DNS, чтобы не было конфликта адресов.
Затем создает(добавляет запись) файл списка зон доменов /etc/bind/master/domainzone.conf
Сами зоны для каждого домена лежат в каталоге /etc/bind/master/ и называются аналогично имени домена,
в нашем случае это будет файл shop.loc
После этого автоматом подгружаются новые зоны.
Затем создается структура каталогов для apache
По умолчанию апач настроен на директорию /var/www/
Мы ее трогать не будем, она останется в рабочем состоянии.
Скрипт создает каталог /var/www-dev/ в нем будут храниться все наши сайты.
По окончании работы вы получите следующую структуру для сайта:
/var/www-dev/shop.loc
/var/www-dev/shop.loc/public_html – собственно рабочий каталог для сайта
/var/www-dev/shop.loc/public_html/cgi-bin – думаю тоже понятно
Не забываем,  что владелец папки /var/www-dev/shop.loc/public_html  – www-data !!!
Помним об этом когда копируем туда файлы и пользуемся командами:
chown -R www-data:www-data /var/www-dev/shop.loc/public_html/
и
chmod -R 0775 /var/www-dev/shop.loc/public_html/

Может быть стоит попробовать добавить себя в группу вот по такому шаблону
usermod -a -G www-data username
Хотя учитывая, что у нас локальный сервер для разработок, можно
сильно не замарачиваться и шарахнуть на папку чмод 0777 …
В общем я пока не пришел к единому мнению с космосом по этому поводу,
и все остается как есть, тоесть www-data и 0775.
Будут идеи\пожелания – делитесь …

в папке /var/www-dev/shop.loc находятся файлы логов для вашего сайта:
ErrorLog  – /var/www-dev/shop.loc/shop.loc-error.log
CustomLog – /var/www-dev/shop.loc/shop.loc-access.log

Файл конфига апача для вашего сайта: /etc/apache2/sites-available/shop.loc
Для того, чтобы отключить сайт не удаляя конфигов, достаточно удалить ссылку
rm /etc/apache2/sites-enabled/shop.loc
Соответственно для включения создайте ссылку обратно:
ln -sn /etc/apache2/sites-available/shop.loc /etc/apache2/sites-enabled/shop.loc

Вот пример результата работы скрипта в нашем случае:

dmscript

В браузере должны увидеть следующее:

dmscript2

Вот собственно и все,  все  цели достигнуты.
Предложения, указания на ошибки – пишите в комментарии или через обратную связь.

2 responses so far, say something?

  1. Art135 Says:

    У меня Ubuntu 9.10 не получилось установить)

  2. Valerij Says:

    Здравствуйте!
    А у меня все получилось с первого раза.
    Спасибо Вам огромное, удачи и успехов.
    (W7+virtualbox+ubuntu 10.04)

Оставить комментарий