PostgreSQL
coub
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
powershell
python
ubuntu
vim
virtualbox
анекдот
блог
игры
интересно
стихи
цитаты
You have to
login
to post a new comment.
Настройка dnsmasq для локальной машины (локальный wildcard)
July 05, 2014
Для того, чтобы не ползать править постоянно /etc/hosts при каждом заведении нового проекта на локалке хорошо бы заставить машину ломится по определенному домену на локальную машину всегда. Я как-то уже писал на эту тему, но решение там мягко говоря не самое простое. Я тут и там слышал про dnsmasq но как-то все не доходили руки разобраться. В общем, это совсем-совсем просто.
Жаль я забыл что у меня там с brew сломалось, но фикс нагуглился минут за 20, ничего серьезного.
В этом примере будет достаточно просто размещать проекты на диске вот так
/home/luke/projects/php/project-one/public -> http://project-one.my.dev
/home/luke/projects/php/project-two/public -> http://project-two.my.dev
/home/luke/projects/php/project-three/public -> http://project-three.my.dev
/home/luke/projects/php/project-four/public -> http://project-four.my.dev
- sudo apt-get install dnsmasq (ну или brew install dnsmasq, кстати с brew была какая-то проблема небольшая, сейчас не вспомню на ходу)
- Идем открываем редактором файл конфигурации /etc/dnsmasq.conf (внутри конфига все расписано, но все опции закоменчены; в случае с brew конфиг лежит /usr/local/etc/dnsmasq.conf)
- Добавляем (или ищем и раскоментируем+правим то что уже есть в конфиге) две строки
address=/.dev/127.0.0.1 # прибиваем гвоздями домен к ip listen-address=127.0.0.1 # слушать будем на этом ип
Создаем папку (если нет)sudo mkdir /etc/resolver
Создаем такой файлик под зонуsudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'
Теперь все хосты вида *.dev будут завернуты на 127.0.0.1
Любопытные граждане гуглят и читают комментарии в конфиг файле. - Последний штрих, идем в свойства текущего сетевого соединения и в его свойствах указываем дополнительный DNS как свой локальный 127.0.0.1 (в формах настройки есть разница, но я думаю это просто и пояснения не нужны)
- И совсем последний штрих - перезапускаем dnsmasq
sudo service dnsmasq restart
Как это делается на маке я не помню, нужно поглядеть brew info dnsmasq
Жаль я забыл что у меня там с brew сломалось, но фикс нагуглился минут за 20, ничего серьезного.
P.S.:
А если ещё в nginx добавить что-то видаserver { server_name ~^(.*)\.my\.dev$; set $projectFolder $1; root /home/luke/projects/php/$projectFolder/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }то ещё и в конфиги сервера можно будет ползать значительно реже.
В этом примере будет достаточно просто размещать проекты на диске вот так
/home/luke/projects/php/project-one/public -> http://project-one.my.dev
/home/luke/projects/php/project-two/public -> http://project-two.my.dev
/home/luke/projects/php/project-three/public -> http://project-three.my.dev
/home/luke/projects/php/project-four/public -> http://project-four.my.dev
Comments
No comments here yet.