Apache, default website

I found out that many has problems gettin default website to work when using virtualmin.

I found that the default website is workin for 127.0.0.1 but not for any other IP adress that you have to the box…
is there anybody that has found out how to make this work?

you need to provide more information, such as OS and virtualmin versions, domain name etc
how did you install ?

I would suspect its an installation issue somehow, or perhaps DNS problem ?

this problem I have had for all versions of virtualmin (GPL).
and all versions of SuSE (from 9.x until 11.1 that is now the newest) I have tried.

MY DNS is working. the problem is ther when I ask for anything else than the requested domains it always replies with the first webserver defined in virtualmin. unless I type in adress 127.0.0.1 localy on the server, if I request the interface (eth0) I always get the first defined domain

and the error wasn’t there before I set up the first virtual domain on virtualmin.

That may be because the default VirtualHost setup in your distro us setup using something like this:

[code:1]<VirtualHost *>[/code:1]

Rather than this:

[code:1]VirtualHost x.y.z.q:80[/code:1]

Where x.y.z.q is your servers IP address.

If there’s a * in there, it will really confuse things and cause the behaviour you’ve been seeing.

That’s part of the Apache config – I’m not sure where Suse stores it, but perhaps something like /etc/httpd/conf/httpd.conf.
-Eric

http://www.virtualmin.com/component/option,com_openwiki/Itemid,48/id,troubleshooting_common_problems/#the_wrong_site_shows_up

Joe, that was the place I checked, and it didn’t tell me how to fix it

Apache does not have a “default” website when in virtual hosting mode. You’re expecting behavior that doesn’t exist. Labeling something “default” doesn’t make it a “default”.

When Apache is in virtual hosting mode, it serves the first-best match for the request. You can make a site be more "first" by moving it to the top of the list of VirtualHost sections.

And, if you have any * VirtualHost sections, they will make the behavior so hard to predict as to be pointless to try to figure out (if you think really long and hard about it, you might come to understand how Apache is making decisions, but I don’t think it’s worth the effort).

and the error wasn't there before I set up the first virtual domain on virtualmin.

I don’t see any errors mentioned in this thread. If you see an error and don’t tell us what it is and what you see in the logs, how can we possibly help?

why does the default reply when I use adress 127.0.0.1?

I’ve just explained that “default” has no meaning in an Apache configured for virtual hosting. That “default.conf” cannot possibly be expected to work as a “default” site.

Apache has two modes: Name-based virtual hosting, and single site. You are expecting it to be both. It will not be both. There is nothing we can do about this. Apache does not work that way.

If you want a "default" site, you need to create a VirtualHost, and make sure it is first in the list of virtual servers.

why does the default reply when I use adress 127.0.0.1?

I’ve already explained that in virtual hosting mode, Apache serves the first-best match. A “default”, as you have configured, is never the best match when you have virtual hosts on the public IP addresses, so something else will always suck up the requests.

This is Apache behaving exactly as documented.

that doesn’t explain why it works on 127.0.0.1 but not for 192.168.1.2

is there any difference in those 2? as far as I understand from what you say I should get the same response for both ipadresses… or am I mistaking

is there any difference in those 2? as far as I understand from what you say I should get the same response for both ipadresses.. or am I mistaking

There is no difference in those two IP addresses to Apache. But you’re still not grasping what I’m trying to explain to you.

Apache, when in virtual hosting mode, serves the first best match based on name and IP. One 192.168.1.2, you have other first-best matches. One 127.0.0.1, you have no first best match, so it falls all the way through to the "default".

If you’ll just stop expecting “default” to have any meaning in a virtual hosting Apache configuration, you will find your life is a lot simpler. Once you have a virtual host on an IP address, “default” has no meaning to Apache (at least no useful meaning).

Re-read everything I’ve already written. I’m running out of ways to say the same thing. You’re expecting Apache to work in ways that it does not, and is not documented to work.

To repeat myself (even more):

If you want a "default" site, you need to create a VirtualHost, and make sure it is first in the list of virtual servers.

You cannot expect your non-VirtualHost configured “default” site to ever be the first-best match when there are VirtualHosts on the same IP. It just isn’t and never will be. That’s not the way Apache works.

Thanks now I got it, and actually I understand what you meant this time.
so again thanks for being patient with me :slight_smile:

thx for the answer.
the configfil for default server is:
/etc/apache2/default-server.conf:

# # Global configuration that will be applicable for all virtual hosts, unless # deleted here, or overriden elswhere. #

DocumentRoot "/srv/www/htdocs"

Configure the DocumentRoot

<Directory “/srv/www/htdocs”>
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named explicitly — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.2/mod/core.html#options
# for more information.
Options None
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>

Aliases: aliases can be added as needed (with no limit). The format is

Alias fakename realname

Note that if you include a trailing / on fakename then the server will

require it to be present in the URL. So “/icons” isn’t aliased in this

example, only "/icons/". If the fakename is slash-terminated, then the

realname must also be slash terminated, and if the fakename omits the

trailing slash, the realname must also omit it.

We include the /icons/ alias for FancyIndexed directory listings. If you

do not use FancyIndexing, you may comment this out.

Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ScriptAlias: This controls which directories contain server scripts.

ScriptAliases are essentially the same as Aliases, except that

documents in the realname directory are treated as applications and

run by the server when requested rather than as documents sent to the client.

The same rules about trailing "/" apply to ScriptAlias directives as to

Alias.

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

"/srv/www/cgi-bin" should be changed to whatever your ScriptAliased

CGI directory exists, if you have that configured.

<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

UserDir: The name of the directory that is appended onto a user’s home

directory if a ~user request is received.

To disable it, simply remove userdir from the list of modules in APACHE_MODULES

in /etc/sysconfig/apache2.

<IfModule mod_userdir.c>
# Note that the name of the user directory ("public_html") cannot simply be
# changed here, since it is a compile time setting. The apache package
# would have to be rebuilt. You could work around by deleting
# /usr/sbin/suexec, but then all scripts from the directories would be
# executed with the UID of the webserver.
UserDir public_html
# The actual configuration of the directory is in
# /etc/apache2/mod_userdir.conf.
Include /etc/apache2/mod_userdir.conf
# You can, however, change the ~ if you find it awkward, by mapping e.g.
# http://www.example.com/users/karl-heinz/ --> /home/karl-heinz/public_html/
#AliasMatch ^/users/([a-zA-Z0-9-_.])/?(.) /home/$1/public_html/$2
</IfModule>

Include all *.conf files from /etc/apache2/conf.d/.

This is mostly meant as a place for other RPM packages to drop in their

configuration snippet.

You can comment this out here if you want those bits include only in a

certain virtual host, but not here.

Include /etc/apache2/conf.d/*.conf

The manual… if it is installed (’?’ means it won’t complain)

Include /etc/apache2/conf.d/apache2-manual?conf

and the config file http.conf

# # /etc/apache2/httpd.conf # # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions. # See <URL:http://httpd.apache.org/docs-2.2/> for detailed information about # the directives.

Based upon the default apache configuration file that ships with apache,

which is based upon the NCSA server configuration files originally by Rob

McCool. This file was knocked together by Peter Poeml <poeml+apache@suse.de>.

If possible, avoid changes to this file. It does mainly contain Include

statements and global settings that can/should be overridden in the

configuration of your virtual hosts.

Quickstart guide:

http://www.opensuse.org/Apache_Howto_Quickstart

Overview of include files, chronologically:

httpd.conf

|

|-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under

|-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, …)

|-- sysconfig.d/loadmodule.conf . . . . . [*] load these modules

|-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on

|-- mod_log_config.conf . . . . . . . . . define logging formats

|-- sysconfig.d/global.conf . . . . . . . [*] server-wide general settings

|-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring)

|-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info

|-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking

|-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings

|-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration

|-- errors.conf . . . . . . . . . . . . . customize error responses

|-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server and all virtual hosts

|

|-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests

| |–mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded)

| `–conf.d/apache2-manual?conf . . . add the docs (’?’ = if installed)

|

|-- sysconfig.d/include.conf . . . . . . [*] your include files

| (for each file to be included here, put its name

| into APACHE_INCLUDE_* in /etc/sysconfig/apache2)

|

`-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here

`-- .conf . . . . . . . . . . . . . (.conf is automatically included)

Files marked [*] are created from sysconfig upon server restart: instead of

these files, you edit /etc/sysconfig/apache2

Filesystem layout:

/etc/apache2/

|-- charset.conv . . . . . . . . . . . . for mod_auth_ldap

|-- conf.d/

| |-- apache2-manual.conf . . . . . . . conf that comes with apache2-doc

| |-- mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4

| `-- … . . . . . . . . . . . . . . . other configuration added by packages

|-- default-server.conf

|-- errors.conf

|-- httpd.conf . . . . . . . . . . . . . top level configuration file

|-- listen.conf

|-- magic

|-- mime.types -> …/mime.types

|-- mod_autoindex-defaults.conf

|-- mod_info.conf

|-- mod_log_config.conf

|-- mod_mime-defaults.conf

|-- mod_perl-startup.pl

|-- mod_status.conf

|-- mod_userdir.conf

|-- mod_usertrack.conf

|-- server-tuning.conf

|-- ssl-global.conf

|-- ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL)

|-- ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates

|-- ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests

|-- ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys

|-- ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files

|-- sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2

| |-- global.conf

| |-- include.conf

| `-- loadmodule.conf

|-- uid.conf

`-- vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here

|-- vhost-ssl.template

`-- vhost.template

Global Environment

The directives in this section affect the overall operation of Apache,

such as the number of concurrent requests.

run under this user/group id

Include /etc/apache2/uid.conf

- how many server processes to start (server pool regulation)

- usage of KeepAlive

Include /etc/apache2/server-tuning.conf

ErrorLog: The location of the error log file.

If you do not specify an ErrorLog directive within a <VirtualHost>

container, error messages relating to that virtual host will be

logged here. If you do define an error logfile for a <VirtualHost>

container, that host’s errors will be logged there and not here.

ErrorLog /var/log/apache2/error_log

generated from APACHE_MODULES in /etc/sysconfig/apache2

Include /etc/apache2/sysconfig.d/loadmodule.conf

IP addresses / ports to listen on

Include /etc/apache2/listen.conf

predefined logging formats

Include /etc/apache2/mod_log_config.conf

generated from global settings in /etc/sysconfig/apache2

Include /etc/apache2/sysconfig.d/global.conf

optional mod_status, mod_info

Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

optional cookie-based user tracking

read the documentation before using it!!

Include /etc/apache2/mod_usertrack.conf

configuration of server-generated directory listings

Include /etc/apache2/mod_autoindex-defaults.conf

associate MIME types with filename extensions

TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

set up (customizable) error responses

Include /etc/apache2/errors.conf

global (server-wide) SSL configuration, that is not specific to

any virtual host

Include /etc/apache2/ssl-global.conf

forbid access to the entire filesystem by default

<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

use .htaccess files for overriding,

AccessFileName .htaccess

and never show them

<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>

List of resources to look for when the client requests a directory

DirectoryIndex index.html ndex.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx

‘Main’ server configuration

The directives in this section set up the values used by the ‘main’

server, which responds to any requests that aren’t handled by a

<VirtualHost> definition. These values also provide defaults for

any <VirtualHost> containers you may define later in the file.

All of these directives may appear inside <VirtualHost> containers,

in which case these default settings will be overridden for the

virtual host being defined.

Include /etc/apache2/default-server.conf

Another way to include your own files

The file below is generated from /etc/sysconfig/apache2,

include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and

APACHE_CONF_INCLUDE_DIRS

Include /etc/apache2/sysconfig.d/include.conf

Virtual server configuration

VirtualHost: If you want to maintain multiple domains/hostnames on your

machine you can setup VirtualHost containers for them. Most configurations

use only name-based virtual hosts so the server doesn’t need to worry about

IP addresses. This is indicated by the asterisks in the directives below.

Please see the documentation at

<URL:http://httpd.apache.org/docs-2.2/vhosts/>

for further details before you try to setup virtual hosts.

You may use the command line option ‘-S’ to verify your virtual host

configuration.

Include /etc/apache2/vhosts.d/*.conf

Note: instead of adding your own configuration here, consider

adding it in your own file (/etc/apache2/httpd.conf.local)

putting its name into APACHE_CONF_INCLUDE_FILES in

/etc/sysconfig/apache2 – this will make system updates

easier :slight_smile:

<Directory /srv/www>
Options FollowSymlinks
</Directory>

Include /etc/apache2/sites-enabled/
NameVirtualHost <IPADRESS-OF-SERVER>:80

thx for the answer.
the configfil for default server is:
/etc/apache2/default-server.conf:

# # Global configuration that will be applicable for all virtual hosts, unless # deleted here, or overriden elswhere. #

DocumentRoot "/srv/www/htdocs"

Configure the DocumentRoot

<Directory “/srv/www/htdocs”>
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named explicitly — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.2/mod/core.html#options
# for more information.
Options None
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
</Directory>

Aliases: aliases can be added as needed (with no limit). The format is

Alias fakename realname

Note that if you include a trailing / on fakename then the server will

require it to be present in the URL. So “/icons” isn’t aliased in this

example, only "/icons/". If the fakename is slash-terminated, then the

realname must also be slash terminated, and if the fakename omits the

trailing slash, the realname must also omit it.

We include the /icons/ alias for FancyIndexed directory listings. If you

do not use FancyIndexing, you may comment this out.

Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ScriptAlias: This controls which directories contain server scripts.

ScriptAliases are essentially the same as Aliases, except that

documents in the realname directory are treated as applications and

run by the server when requested rather than as documents sent to the client.

The same rules about trailing "/" apply to ScriptAlias directives as to

Alias.

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

"/srv/www/cgi-bin" should be changed to whatever your ScriptAliased

CGI directory exists, if you have that configured.

<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

UserDir: The name of the directory that is appended onto a user’s home

directory if a ~user request is received.

To disable it, simply remove userdir from the list of modules in APACHE_MODULES

in /etc/sysconfig/apache2.

<IfModule mod_userdir.c>
# Note that the name of the user directory ("public_html") cannot simply be
# changed here, since it is a compile time setting. The apache package
# would have to be rebuilt. You could work around by deleting
# /usr/sbin/suexec, but then all scripts from the directories would be
# executed with the UID of the webserver.
UserDir public_html
# The actual configuration of the directory is in
# /etc/apache2/mod_userdir.conf.
Include /etc/apache2/mod_userdir.conf
# You can, however, change the ~ if you find it awkward, by mapping e.g.
# http://www.example.com/users/karl-heinz/ --> /home/karl-heinz/public_html/
#AliasMatch ^/users/([a-zA-Z0-9-_.])/?(.) /home/$1/public_html/$2
</IfModule>

Include all *.conf files from /etc/apache2/conf.d/.

This is mostly meant as a place for other RPM packages to drop in their

configuration snippet.

You can comment this out here if you want those bits include only in a

certain virtual host, but not here.

Include /etc/apache2/conf.d/*.conf

The manual… if it is installed (’?’ means it won’t complain)

Include /etc/apache2/conf.d/apache2-manual?conf

and the config file http.conf

# # /etc/apache2/httpd.conf # # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions. # See <URL:http://httpd.apache.org/docs-2.2/> for detailed information about # the directives.

Based upon the default apache configuration file that ships with apache,

which is based upon the NCSA server configuration files originally by Rob

McCool. This file was knocked together by Peter Poeml <poeml+apache@suse.de>.

If possible, avoid changes to this file. It does mainly contain Include

statements and global settings that can/should be overridden in the

configuration of your virtual hosts.

Quickstart guide:

http://www.opensuse.org/Apache_Howto_Quickstart

Overview of include files, chronologically:

httpd.conf

|

|-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under

|-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, …)

|-- sysconfig.d/loadmodule.conf . . . . . [*] load these modules

|-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on

|-- mod_log_config.conf . . . . . . . . . define logging formats

|-- sysconfig.d/global.conf . . . . . . . [*] server-wide general settings

|-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring)

|-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info

|-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking

|-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings

|-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration

|-- errors.conf . . . . . . . . . . . . . customize error responses

|-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server and all virtual hosts

|

|-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests

| |–mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded)

| `–conf.d/apache2-manual?conf . . . add the docs (’?’ = if installed)

|

|-- sysconfig.d/include.conf . . . . . . [*] your include files

| (for each file to be included here, put its name

| into APACHE_INCLUDE_* in /etc/sysconfig/apache2)

|

`-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here

`-- .conf . . . . . . . . . . . . . (.conf is automatically included)

Files marked [*] are created from sysconfig upon server restart: instead of

these files, you edit /etc/sysconfig/apache2

Filesystem layout:

/etc/apache2/

|-- charset.conv . . . . . . . . . . . . for mod_auth_ldap

|-- conf.d/

| |-- apache2-manual.conf . . . . . . . conf that comes with apache2-doc

| |-- mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4

| `-- … . . . . . . . . . . . . . . . other configuration added by packages

|-- default-server.conf

|-- errors.conf

|-- httpd.conf . . . . . . . . . . . . . top level configuration file

|-- listen.conf

|-- magic

|-- mime.types -> …/mime.types

|-- mod_autoindex-defaults.conf

|-- mod_info.conf

|-- mod_log_config.conf

|-- mod_mime-defaults.conf

|-- mod_perl-startup.pl

|-- mod_status.conf

|-- mod_userdir.conf

|-- mod_usertrack.conf

|-- server-tuning.conf

|-- ssl-global.conf

|-- ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL)

|-- ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates

|-- ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests

|-- ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys

|-- ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files

|-- sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2

| |-- global.conf

| |-- include.conf

| `-- loadmodule.conf

|-- uid.conf

`-- vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here

|-- vhost-ssl.template

`-- vhost.template

Global Environment

The directives in this section affect the overall operation of Apache,

such as the number of concurrent requests.

run under this user/group id

Include /etc/apache2/uid.conf

- how many server processes to start (server pool regulation)

- usage of KeepAlive

Include /etc/apache2/server-tuning.conf

ErrorLog: The location of the error log file.

If you do not specify an ErrorLog directive within a <VirtualHost>

container, error messages relating to that virtual host will be

logged here. If you do define an error logfile for a <VirtualHost>

container, that host’s errors will be logged there and not here.

ErrorLog /var/log/apache2/error_log

generated from APACHE_MODULES in /etc/sysconfig/apache2

Include /etc/apache2/sysconfig.d/loadmodule.conf

IP addresses / ports to listen on

Include /etc/apache2/listen.conf

predefined logging formats

Include /etc/apache2/mod_log_config.conf

generated from global settings in /etc/sysconfig/apache2

Include /etc/apache2/sysconfig.d/global.conf

optional mod_status, mod_info

Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

optional cookie-based user tracking

read the documentation before using it!!

Include /etc/apache2/mod_usertrack.conf

configuration of server-generated directory listings

Include /etc/apache2/mod_autoindex-defaults.conf

associate MIME types with filename extensions

TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

set up (customizable) error responses

Include /etc/apache2/errors.conf

global (server-wide) SSL configuration, that is not specific to

any virtual host

Include /etc/apache2/ssl-global.conf

forbid access to the entire filesystem by default

<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

use .htaccess files for overriding,

AccessFileName .htaccess

and never show them

<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>

List of resources to look for when the client requests a directory

DirectoryIndex index.html ndex.htm index.shtml index.cgi index.php index.php5 index.php4 index.php3 index.pl index.html.var index.aspx default.aspx

‘Main’ server configuration

The directives in this section set up the values used by the ‘main’

server, which responds to any requests that aren’t handled by a

<VirtualHost> definition. These values also provide defaults for

any <VirtualHost> containers you may define later in the file.

All of these directives may appear inside <VirtualHost> containers,

in which case these default settings will be overridden for the

virtual host being defined.

Include /etc/apache2/default-server.conf

Another way to include your own files

The file below is generated from /etc/sysconfig/apache2,

include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and

APACHE_CONF_INCLUDE_DIRS

Include /etc/apache2/sysconfig.d/include.conf

Virtual server configuration

VirtualHost: If you want to maintain multiple domains/hostnames on your

machine you can setup VirtualHost containers for them. Most configurations

use only name-based virtual hosts so the server doesn’t need to worry about

IP addresses. This is indicated by the asterisks in the directives below.

Please see the documentation at

<URL:http://httpd.apache.org/docs-2.2/vhosts/>

for further details before you try to setup virtual hosts.

You may use the command line option ‘-S’ to verify your virtual host

configuration.

Include /etc/apache2/vhosts.d/*.conf

Note: instead of adding your own configuration here, consider

adding it in your own file (/etc/apache2/httpd.conf.local)

putting its name into APACHE_CONF_INCLUDE_FILES in

/etc/sysconfig/apache2 – this will make system updates

easier :slight_smile:

<Directory /srv/www>
Options FollowSymlinks
</Directory>

Include /etc/apache2/sites-enabled/
NameVirtualHost <IPADRESS-OF-SERVER>:80

Would it be an idea to be able to set a site to be first then?

I think I have similar issues, i am using wpmu on domain.com so i added *.domain.com in apache and zone, however all requests to subdomains goes to a different site, the site that is first in the list.

I also would like to do the same thing.

How do I move up the VirtualHost to the first list in virtual servers? In which file should I take a look.

Thanks in advance.

If you’re using Virtualmin Pro, there’s an option to handle that in the Website Options for that Virtual Server.

In Virtualmin GPL, you can manually adjust that in the Apache config – where that is depends on your distro. It’s likely either /etc/apache2/sites-enabled/, or /etc/httpd/conf/httpd.conf.

-Eric