1

I've been struggling with Apache Virtualhost for a day now. I would like to run 2 sites with one ip.

When I enter the address in the url bar(domain1 or domain2), it always shows the default page only(which is domain1).

Any help will/would be appreciated...

My configuration :

/var/www/html:

domain1/public_html/index.html

domain2/public_html/index.html

/etc/apache2/sites-enabled:

├── domain1.conf -> ../sites-available/domain1.conf

└── domain2.conf -> ../sites-available/domain2.conf

domain2.conf :

<VirtualHost *:80>

    ServerName www.domain1.tk
    ServerAlias domain1.tk
    DocumentRoot /var/www/html/domain1/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

domain2.conf :

<VirtualHost *:80>

    ServerName domain2.tk
    ServerAlias www.domain2.tk
    DocumentRoot /var/www/html/domain2/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

apache2.conf :

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}

Timeout 300
KeepAlive On

MaxKeepAliveRequests 100
KeepAliveTimeout 5

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Include ports.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    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
jani777
  • 13

1 Answers1

1

When I lookup your domains, I get 2 different IP addresses. In this case your configuration needs to be something like this:

# This is the "main" server running on IP_ADDRESS_OF_DOMAIN_tsk-run.tk
ServerAdmin webmaster@tsk-run.tk
ServerName tsk-run.tk
ServerAlias www.tsk-run.tk
DocumentRoot /var/www/html/tsk-run/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<VirtualHost IP_ADDRESS_OF_DOMAIN_tsk-test.tk>
    ServerAdmin webmaster@tsk-test.tk
    ServerName tsk-test.tk
    ServerAlias www.tsk-test.tk
    DocumentRoot /var/www/html/tsk-test/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Replace IP_ADDRESS_OF_DOMAIN_tsk-test.tk with the IP address of this domain.

See apache documentation section Name-based hosts on more than one IP address for more details.

rda
  • 1,967
  • Thank you. It's working now, but it put me on the root('html') page. Anyway, you've helped me a lot already... – jani777 Jun 07 '16 at 17:14
  • @jan what dou mean with root('html') page? – rda Jun 07 '16 at 18:29
  • I mean I'm in the "Main DocumentRoot('/var/www/html') instead of '/var/www/html/tsk-run.tk/public_html' . – jani777 Jun 08 '16 at 04:36
  • There was an another mistake by me. The domain was pointing on wrong place. But I couldn't make it without your help. Cheers. :) – jani777 Jun 10 '16 at 13:18