Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create virtual hosts in MAMP?

I am new to Mac but used Ubuntu for development for a long time. I know how to create virtual hosts in Ubuntu but have no idea about Mac. I have created a hosts entry like below :

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost mysite.loc
255.255.255.255 broadcasthost
::1             localhost

But what to do next?

like image 397
Ritesh Avatar asked Feb 07 '16 07:02

Ritesh


People also ask

What is host in MAMP?

MAMP PRO uses virtual hosts to allow your web servers to serve different websites. The virtual host “localhost” is created by default and cannot be deleted. You can add an unlimited number of hosts allowing you to create one host per project. Every host can have it's own directory to store html, PHP files, and images.

How do I get local host on MAMP?

To access your localhost on another Mac on your LAN, you need to type in it's Local Hostname. To find out the Local Hostname of this Mac, go to System Preferences > Sharing > Edit . Now you can access your hosts from a different Mac on your LAN. Input :8888 as a suffix in your url bar to see the localhost.

How do I set up a MAMP server?

Starting MAMP If you don't see the Welcome page, go to http://localhost:8888/MAMP/ in your browser. From the control panel, you can stop your local servers by clicking Stop Servers, or start them by clicking Start Servers. You can also open the Welcome page, and access Preferences.


2 Answers

While googling, I found these steps to easily create virtual hosts on MAMP:

  1. Open your console in mac and edit your hosts file like this

    sudo vim /etc/hosts

This opens a system file that contains the following line:

127.0.0.1    localhost 

add your desired host name after local host:

127.0.0.1    localhost mysite.loc 

press ESC, then :wq! to overwrite and close the file.

  1. Now go to your MAMP directory and open apache config file located at /Applications/MAMP/conf/apache/httpd.conf in any text editor and locate the following lines:
# Virtual Hosts # Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

Remove the hash (pound) sign from the beginning of the line that begins with Include

# Virtual Hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

Save the file, and then open Applications/MAMP/conf/apache/extra/httpd-vhosts.conf. This is where you define the virtual hosts.

  1. At the bottom of the page are two examples of how to define virtual hosts in Apache. They look like this:
<VirtualHost *:80>     ServerAdmin [email protected]     DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"     ServerName dummy-host.example.com     ServerAlias www.dummy-host.example.com     ErrorLog "logs/dummy-host.example.com-error_log"     CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost>  <VirtualHost *:80>     ServerAdmin [email protected]     DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"     ServerName dummy-host2.example.com     ErrorLog "logs/dummy-host2.example.com-error_log"     CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost> 

Edit both examples. Virtual hosts override the existing localhost, so the first one needs to re-establish localhost. Edit the second one for the virtual host you want to add. Only the DocumentRoot and ServerName directives are required. To add a virtual host for mysite, the edited definitions should look like this:

<VirtualHost *:80>     DocumentRoot /Applications/MAMP/htdocs     ServerName localhost </VirtualHost>  <VirtualHost *:80>     DocumentRoot "/Users/username/Sites/mysite"     ServerName mysite.loc </VirtualHost> 

This assumes that you want to locate the files for mysite in your Sites folder. Replace "username" in the second definition with your own Mac username. If you want to store the files in a different location, adjust the value of DocumentRoot accordingly.

If you want to create more than one virtual host, copy one of the definitions, and edit it accordingly.

Save all the files you have edited, and restart the servers in the MAMP control panel. You should now be able to access the virtual host with the following URL: http://mysite.loc/.

Enjoy..!!

like image 59
Ritesh Avatar answered Sep 23 '22 04:09

Ritesh


  1. Allow virtual hosts

    Go to Applications > MAMP > conf > apache > httpd.conf

    Find this line:

    # Virtual hosts
    #Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
    

    Uncomment the code by removing the hash symbol.

    # Virtual hosts
    Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
    
  2. Allow SymLink Override

    Find this line in that same httpd.conf file.

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    

    change None to All.

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
    
  3. Add the virtual host path

    Go to Applications > MAMP > conf > apache > extra > httpd-vhosts.conf

    add the virtual host with servname and document root like the below code

    <VirtualHost *:80>
      ServerName example.dev
      DocumentRoot "/path/to/directory"
    </VirtualHost>
    
  4. Allow your computer to recognize your local domain

    Open terminal and type

    sudo pico /etc/hosts
    

    then add your domain

    127.0.0.1 example.dev
    
  5. Restart your server.

    If the url is showing error in chrome try safari

like image 25
Srinivasan Raman Avatar answered Sep 24 '22 04:09

Srinivasan Raman