11

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!

3 Answers 3

26

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

Sign up to request clarification or add additional context in comments.

6 Comments

are you sure it will not be enough to run $ vagrant reload --provision?
last time when I tested, it wasn't necessary to destroy/up after editing Homestead.yaml. but I'm not sure fore the current version of vagrant
You are right. It is still needed destroy / up I tried both ways last night.
Unfortunately, the flip command doesn't do anything in my case.
I had to install apache in the box myself then it worked
|
3

Add type: apache to your homestead.yaml sites configuration, then realod the vagrant machine using vagrant reload --provision

sites:
    - map: homestead.test
      to: /home/vagrant/code/{path/to/laravel}/public
      type: "apache"

Learn more in laravel doc

Comments

2

I'm still researching and figuring it out myself. The documentation is practically nonexistent, but see https://laravel.com/docs/master/homestead#adding-additional-sites

In particular:

Site Types

Homestead supports several types of sites which allow you to easily run projects that are not based on Laravel. For example, we may easily add a Symfony application to Homestead using the symfony2 site type:

sites: - map: symfony2.app to: /home/vagrant/Code/Symfony/public type: symfony2 The available site types are: apache, laravel (the default), proxy, silverstripe, statamic, and symfony2.

Also note: https://laracasts.com/discuss/channels/general-discussion/homestead-and-apache

Will revise as I learn more.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.