Hello!
If i want to use 2 domains on the same container/site, does Local support this?
Example:
I have created a site, a WP Multisite that runs on 2 different domains. (Not on sub-directories or sub-domains).
spanish-site.dev and english-site.dev. How can one achieve this when using Local?
Really good job with the new update btw, looking smashing!
Did you ever figure this out? I’m looking to do this now (actually with different subdomains, but assuming it’s the same setup). @benjamin - mind sharing your work around?
@justinkorn I also used it for subdomains, but am not using it at the moment. I’ll try to get some steps on exactly what I did over the next few days and let you know.
@justinkorn, here are the steps to how I got it to work.
Easy stuff:
Open ~/Library/Application Support/Local by Flywheel/routes/{site}.conf in your favorite editor.
Add the new domain to the server_name variable. Such as: server_name site1.dev *.site1.dev site2.dev *.site2.dev;. Save that file.
Navigate to your site directory and open the ../../conf/nginx/site.conf file in your favorite editor.
Inside the second server block, modify the server_name variable so it looks like: server_name ~^(.*)\.site1\.dev$ site1.dev ~^(.*)\.site2\.dev$ site2.dev;. Save that file.
The new domain needs to also be manually added to your hosts file. You can do this by editing the hosts file: sudo nano /etc/hosts. Then locate the Flywheel section (usually at the bottom) and add in the site using the same domain: 192.168.85.100 site2.dev
Hard stuff:
Open up the terminal and navigate to: /Applications/Local\ by\ Flywheel.app/Contents/extraResources/virtual-machine/vendor/docker/osx
Set the environment: eval $(./docker-machine env local-by-flywheel)
List out the current containers: ./docker ps
Find the container that is routing port 80 to port 80 and copy the CONTAINER ID or the NAME. For example:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af902257ae16 flywheel:latest "nginx -g 'daemon ..." 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp romantic_volhard
0a6811dc0617 c14d8b5229eb "/etc/scripts/slee..." 2 months ago Up 2 days 0.0.0.0:4005->80/tcp, 0.0.0.0:4505->443/tcp, 0.0.0.0:5505->1080/tcp, 0.0.0.0:5005->3306/tcp peaceful_keller
d93c18b6d674 abcd58700580 "/etc/scripts/slee..." 3 months ago Up 2 days 0.0.0.0:4006->80/tcp, 0.0.0.0:4506->443/tcp, 0.0.0.0:5506->1080/tcp, 0.0.0.0:5006->3306/tcp keen_cori
f363201da868 3c796fcbeea7 "/etc/scripts/slee..." 7 months ago Up 11 minutes 0.0.0.0:4009->80/tcp, 0.0.0.0:4509->443/tcp, 0.0.0.0:5509->1080/tcp, 0.0.0.0:5009->3306/tcp hopeful_pasteur
ced2e08aff5e 4097c04a54d5 "/etc/scripts/slee..." 9 months ago Up 2 days 0.0.0.0:4004->80/tcp, 0.0.0.0:4504->443/tcp, 0.0.0.0:5504->1080/tcp, 0.0.0.0:5004->3306/tcp amazing_babbage
In this example, the first entry is routing from port 80 to port 80 and the CONTAINER ID is af902257ae16 and the NAME is romantic_volhard.
SSH into the container using the CONTAINER ID or NAME: ./docker exec -it {CONTAINER ID|NAME} /bin/bash
Look up the process for nginx with ps aux. It will spit out a list similar to:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.5 33144 5884 ? Ss+ 02:01 0:00 nginx: master process nginx -g daemon off; -c /etc/nginx-router/router.conf
www-data 5 0.0 0.3 33144 3440 ? S+ 02:01 0:00 nginx: worker process
root 6 0.0 0.3 20248 3208 ? Ss 02:16 0:00 /bin/bash
root 10 0.0 0.2 17504 2052 ? R+ 02:17 0:00 ps aux
Using the router.conf path, reset nginx: nginx -c /etc/nginx-router/router.conf -s reload
That’s it! you should now be able to navigate in your browser to your new domain name to see if it points you to the correct site: site2.dev
Wow! Thank you for all the details, Ben. Seems like a lot of work for such a minor thing, but I’ll try to follow the directions and see where I get with them. Thanks again for sharing!
I ran into the same issue where I want multiple domains pointing to one instance. I found the instructions in “Local Router Error” message on multi-network instance to be much simpler. It’s just a matter of copying a conf file.