Ubuntu 14.04: Apache 2.4.7 virtualhost not working/redirecting

17,344

Solution 1

This may be a little late, not sure if you found a solution or not, but this is what i did. After spending many hours modifying my config files and tweaking my vhost, I decided to a2dissite 000... the default site and reloaded apache. Once I did this, the redirect was working as epxected. I don't know how this will unfold when you have more than one site on a server, if it will default to the first loaded vhost or ... I was always under the impression that apache had to have a default host, I could be wrong on that.

Solution 2

Not only did I have to disable the default:

sudo a2dissite 000-default.conf

but I also had to reload apache as sudo - without sudo it was not reloading properly

sudo service apache2 reload

Solution 3

I was facing this issue, and it turned out I had to disable the default virtual host.

sudo a2dissite 000-default.conf

Solution 4

Are you still facing the problem?

Did you look at the error log located at /var/log/apache2/error.log. The error log is self explanatory and will give a good lead to the problem.

The error on my machine showed this (latter part of the error statement)

.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

In my case the Apache module rewrite was not enabled. I enabled the module and voila the virtual host settings came alive.

Also I see that you are using the statement 'AllowOverride All' which indicates you are trying to use the rewrite module. Enable the module 'rewrite', if not already, using the command sudo a2enmod rewrite and then restart you apache2 sudo /etc/init.d/apache2 restart

See if this helps!

Share:
17,344
Admin
Author by

Admin

Updated on June 09, 2022

Comments

  • Admin
    Admin almost 2 years

    I have Apache 2.4.7 installed on my Ubuntu 14.04 machine, and some of my virtualhosts are not agreeing with me. I have 5 virtual hosts I am trying to run; 3 of them work, 2 do not. The .conf files for the two that do not work are:

    002-tmpnet.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/tmpnet
        ServerName  tmpnet
        <Directory />
            Options FollowSymLinks
            AllowOverride All
        </Directory>
        <Directory /var/www/html/tmpnet/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            #Order allow,deny
            #allow from all
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    003-tmpcom.conf

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/tmpcom
        ServerName  tmpcom
        <Directory />
            Options FollowSymLinks
            AllowOverride All
        </Directory>
        <Directory /var/www/html/tmpcom>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            #Order allow,deny
            #allow from all
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    Both of these return

    500 Internal server errors
    

    when trying to visit them. If I visit them through localhost (i.e. localhost/html/tmpnet) it works perfectly fine, just not when trying to use the virtual host.

    My hosts file is:

    127.0.0.1   localhost
    127.0.1.1   Eagle
    127.0.1.1   tmpcom
    127.0.1.1   tmpbiz
    127.0.1.1   tmporg
    127.0.1.1   tmpnet
    127.0.1.1   thatsmybrick
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    

    and my apache2.conf is:

    Mutex file:${APACHE_LOCK_DIR} default
    PidFile ${APACHE_PID_FILE}
    Timeout 300
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 5
    
    # These need to be set in /etc/apache2/envvars
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    
    HostnameLookups on
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    IncludeOptional mods-enabled/*.load
    IncludeOptional mods-enabled/*.conf
    Include ports.conf
    
    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
    <Directory /usr/share>
        AllowOverride All
        Require all granted
    </Directory>
    
    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    AccessFileName .htaccess
    
    <FilesMatch "^\.ht">
        Require all denied
    </FilesMatch>
    
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    
    IncludeOptional conf-enabled/*.conf
    
    IncludeOptional sites-enabled/*.conf
    

    I have been stuck on this for a long while now, and I would really appreciate some help. Any pointing in the right direction would be amazing.

    Thank you

  • skovy
    skovy over 9 years
    Thank You!!! I ran a2dissite 000-default.conf and add .conf to my existing files and it worked!
  • Machavity
    Machavity over 9 years
    I don't think you read the question. His files are named .conf and still not loading.