24

I installed Apache 2.4 on Ubuntu 14.04 and it was working fine by http://localhost/ address. But when I tried to add a new virtual host, for example http://bow.loc and restart apache, new address was not available on http://bow.loc and available on http://localhost.

My configuration is:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

How can I get my site by http://bow.loc?

Victor Bocharsky
  • 575
  • 1
  • 5
  • 14

5 Answers5

30

Since Apache 2.4, each virtual host file should have the .conf extension.

You can rename each virtual host file to include the .conf extension:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Use the a2ensite command to add the virtual host:

a2ensite example.com.conf

And reload Apache:

service apache2 reload
Ari Pratomo
  • 409
  • 1
  • 3
  • 3
  • Thanks! And after this actions I don't need manually modified the /etc/hosts file and add hosts to it? Does apache will write new hosts automatically? – Victor Bocharsky Apr 23 '14 at 13:03
  • Apache doesn't write new hosts automatically, you should write it manually. CMIIW – Ari Pratomo Apr 25 '14 at 08:53
  • So, my config is right, and problem in order that I forgot to add host in /etc/hosts – Victor Bocharsky Apr 28 '14 at 06:45
  • other way is to modify apache2.conf and remove the ".conf" extension from the "IncludeOptional sites-enabled/*" directive. I use website domains as file names, so I dislike the extra ".conf" requirement. – lepe Aug 16 '14 at 03:54
18

I forgot to add host in /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

I thought apache does it automatically.

muru
  • 197,895
  • 55
  • 485
  • 740
Victor Bocharsky
  • 575
  • 1
  • 5
  • 14
4

Well, I have been trying all these solutions offered..but sadly nothing worked! Alas i edited

    /etc/hosts

to make entry

    127.0.1.1 example.com test.com

and it worked!!

(Sorry if I'm not talking much technically!)

1

I wrote a python script that will automate the apache virtual host creation steps ... this video explains how, download/code on GitHub

rakibtg
  • 225
  • 1
  • 3
  • 9
-3
Options FollowSymLinks MultiViews

Need char '+' : +FollowSymLinks +Multiviews

Order allow,deny
Allow from all

Now = Require all granted