Search code examples
laravelapachevagranthomestead

Laravel Homestead with Apache server


Last year, after being a long time user of a WAMP stack, I switched over to Homestead on Vagrant. For a non-Laravel development project, I am required to use Apache Server. I know that it is possible to install Apache server on Homestead and then add Virtual Hosts for each site, but this seems a bit impractical. The sites in the Homestead.yaml file work with Nginx but don't seem to work with Apache.

My questions are:

  • Is there away of creating the Virtual Hosts automatically in Apache?
  • Is there another Vagrant box that would do this or that you can recommend for use with Apache?
  • Am I just missing something?

I'm kind of a noob in these things. Any help is greatly appreciated!


Solution

  • As for now, to make a site entry in Homestead.yaml file works with Apache2, you need to:

    1- Add the site to Homestead.yaml, with type: apache as fellow

    sites:
        -
            map: homestead.test
            to: /home/vagrant/code/Laravel/public    
        -
            map: homestead.test
            to: /home/vagrant/code/Apache/public
            type: apache
    

    2- go to the vagrant box directory, and run

    vagrant destroy
    

    3- then run

    vagrant up
    

    4- shh to the vagrant machine

    vagrant ssh
    

    5- flip the server, by running:

    flip
    

    you'll get this message:

    nginx stopped
    apache started
    

    To test

    I've created the directory Apache/public

    mkdir -p Apache/public
    

    then inside it, I've created the file index.php

    echo "<?php phpinfo();" > Apache/public/index.php
    

    Which is accessible using the same IP address of the default homestead negix site