Сайтов много - Мак один
Уже давно у меня была проблемка. В разработке постоянно много сайтов которые надо ссылать на локальную машину. Запускать сервера по очереди неудобно, вносить каждый сайт в списки - устанешь очень быстро.
В итоге около года назад родился скриптик (запускается только через sudo):
#!/usr/bin/env ruby
SitesDir = '/Sites'
DomainSuffix = `hostname`.gsub('.local', '').downcase.gsub(/\s/, '')
###############################################
`nidump hosts .`.split("\n").uniq.sort.each do | dir |
next unless (dir.split('.').pop == DomainSuffix)
host = dir.split("\t").pop
cmd = `niutil -destroy . /machines/#{host}`
end
Dir.entries(SitesDir).each do | entry |
next if (!File.stat("#{SitesDir}/#{entry}").directory? || entry == '.' || entry == '..')
puts "> Adding website #{entry}.#{DomainSuffix}"
`niutil -create . /machines/#{entry}.#{DomainSuffix}`
`niutil -createprop . /machines/#{entry}.#{DomainSuffix} ip_address 127.0.0.1`
end
Что оно делает? Сканирует папку Sites, и создает для каждой подпапки ссылку в NetInfo (подобии /etc/hosts только удобнее и веселее) на локальную машину, где имя папки - домен второго уровня, а первого - имя машины. Допустим, одну мою машину зовут exile а другую turbine (да, только латиницей и без пробелов - иначе вам не сюда). При этом в папке Sites есть подпапки search, blog, live и client. Это автоматически создаст нам следующие домены ссылающиеся на локальную машину:
- search.exile и search.turbine
- blog.exile и blog.turbine
- live.exile и live.turbine
- client.exile и client.turbine
После этого пользуясь mass virtual hosting в Апаче можно просто подцеплять сайты автоматически, без всяких Денверов. Имя машины задается в системной панели Sharing.
P.S. С помощью NetInfo можно делать много других занятных штук - например, автоматически создавать маунты сетевых папок с общими шрифтами, музыкой и настройками программ. Подробнее тут. К слову, все это было (и работало по IP-сети) еще до того как вышел Windows for Workgroups. Один из компьютеров с NetInfo подарил нам первый в мире веб-сайт и веб-браузер, а потом другой компьютер с ним же был первым веб-сервером.