PostgreSQL
coub
css
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
python
task1
ubuntu
vim
virtualbox
анекдот
игры
интересно
музыка
стихи
цитаты
linux
ubuntu
macos
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.