Pull to refresh

Автоматическая настройка apache vhosts или denwer под Mac

Reading time2 min
Views884
Наверно многим приходилось вручную настраивать vhost-ы, размещать на разных портах всякие тестовые стайты, постоянно помнить, где что лежит. Довольно утомительное занятие. Я думаю, это одна из причин, по которым начинающие веб-разработчики так любят денвер, которых избавляет их необходимости заниматься настройкой apache. Вбивая в очередной раз новый vhost, я решил как-то изменить ситуацию.

Вспомнив, что на хабре уже пробегали статья о инструментах вроде inotify, incrontab и использовании оных для автоматического запуска сервисов, начал искать подобные решения под Mac Os X. В ходе проб и ошибок, выяснил, что можно создать свой сервис, который будет запускаться по событиям файловой системы. То что надо.
После дня ковыряния bash-а, написал за полчаса скрипт на php.

Алгоритм работы скрипта получился простой и выглядит примерно так:
  1. получаем список папок с сайтами
  2. отсеиваем невалидные имена
  3. если получившийся список не соответствует текущим настройкам, генерируем новые настройки
  4. запрашиваем пароль администратора
  5. прописываем настройки в /ect/hosts и /etc/apache2/vhosts

Если в системе установлен growlnotify, то сообщения об происходящем будут выводиться во всплывающих окошках

Если вас вдруг заинтересовал этот инструмент, можете скачать его здесь. Процедура установки не очень тривиальна (для Mac Os X):
  • надо распаковать архив
  • в терминале запустить команду "<папка с файлами>/agent.php --install [<папка с сайтами>]"
  • дописать в файл /etc/apache2/httpd.conf в конец строчку «Include /etc/apache2/other/*.conf» и создать папку "/etc/apache2/vhosts"
  • перезагрузить компьютер

В папке с сайтами должны лежать папки с сайтами. Если ничего не указать, то значение по-умолчанию "~/Sites". Для вступления настроек в силу необходимо что-нибудь изменить в «папке с сайтами», либо запустить в терминале «agent.php [<папка с сайтами>]».

После установки, можно идти в папку Sites, создавать там папку test, в ней index.html и проверять работоспособность в браузере.

Примечания.
  1. Если перед в файле config.php изменить значение параметра ALLOW_PRECONFIGRE_HTTPD на true, то при запуске скрипт сам может добавить нужную строку в /etc/apache2/httpd.conf и создать папку. Но скрипт ничего не проверяет, и если вдруг что сломается, пеняйте на себя.
  2. Перезагрузка необходима для нормальной работы процедуры авторизации. Без перезагрузки не выводится окно запроса пароля.


PS. Я понимаю, что Denwer — это много больше, нежели приведено в статье, но это та часть denwer-а, которая была нужна мне.
Tags:
Hubs:
Total votes 9: ↑5 and ↓4+1
Comments11

Articles