Наверно многим приходилось вручную настраивать vhost-ы, размещать на разных портах всякие тестовые стайты, постоянно помнить, где что лежит. Довольно утомительное занятие. Я думаю, это одна из причин, по которым начинающие веб-разработчики так любят денвер, которых избавляет их необходимости заниматься настройкой apache. Вбивая в очередной раз новый vhost, я решил как-то изменить ситуацию.
Вспомнив, что на хабре уже пробегали статья о инструментах вроде inotify, incrontab и использовании оных для автоматического запуска сервисов, начал искать подобные решения под Mac Os X. В ходе проб и ошибок, выяснил, что можно создать свой сервис, который будет запускаться по событиям файловой системы. То что надо.
После дня ковыряния bash-а, написал за полчаса скрипт на php.
Алгоритм работы скрипта получился простой и выглядит примерно так:
Если в системе установлен growlnotify, то сообщения об происходящем будут выводиться во всплывающих окошках
Если вас вдруг заинтересовал этот инструмент, можете скачать его здесь. Процедура установки не очень тривиальна (для Mac Os X):
В папке с сайтами должны лежать папки с сайтами. Если ничего не указать, то значение по-умолчанию "~/Sites". Для вступления настроек в силу необходимо что-нибудь изменить в «папке с сайтами», либо запустить в терминале «agent.php [<папка с сайтами>]».
После установки, можно идти в папку Sites, создавать там папку test, в ней index.html и проверять работоспособность в браузере.
Примечания.
PS. Я понимаю, что Denwer — это много больше, нежели приведено в статье, но это та часть denwer-а, которая была нужна мне.
Вспомнив, что на хабре уже пробегали статья о инструментах вроде inotify, incrontab и использовании оных для автоматического запуска сервисов, начал искать подобные решения под Mac Os X. В ходе проб и ошибок, выяснил, что можно создать свой сервис, который будет запускаться по событиям файловой системы. То что надо.
После дня ковыряния bash-а, написал за полчаса скрипт на php.
Алгоритм работы скрипта получился простой и выглядит примерно так:
- получаем список папок с сайтами
- отсеиваем невалидные имена
- если получившийся список не соответствует текущим настройкам, генерируем новые настройки
- запрашиваем пароль администратора
- прописываем настройки в /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 и проверять работоспособность в браузере.
Примечания.
- Если перед в файле config.php изменить значение параметра ALLOW_PRECONFIGRE_HTTPD на true, то при запуске скрипт сам может добавить нужную строку в /etc/apache2/httpd.conf и создать папку. Но скрипт ничего не проверяет, и если вдруг что сломается, пеняйте на себя.
- Перезагрузка необходима для нормальной работы процедуры авторизации. Без перезагрузки не выводится окно запроса пароля.
PS. Я понимаю, что Denwer — это много больше, нежели приведено в статье, но это та часть denwer-а, которая была нужна мне.