3

I'm trying to install Munin in my server and configure the web interface to work in a subdomain. I've configured the subdomain stats.mysite.com and created the file /etc/apache2/sites-available/stats.mysite.com:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerAdmin admin@mysite.com
   ServerName stats.mysite.com
   ServerAlias www.stats.mysite.com
   DocumentRoot /var/cache/munin/www
   <Directory />
       Options FollowSymLinks
       AllowOverride None
   </Directory>
   LogLevel notice
   CustomLog /var/log/apache2/access.log combined
   ErrorLog /var/log/apache2/error.log
   ServerSignature On
</VirtualHost>

Then, I used the following command to enable my site:

a2ensite stats.mysite.com

and restarted apache:

sudo /etc/init.d/apache2 restart

But it's not working. When I acess stats.mysite.comon my browser, it shows me the content of mysite.com. Am I doing something wrong? I'd be very grateful if someone could help me.

Files

/etc/apache2/httpd.conf

ServerName localhost

/etc/munin/munin.conf

# Example configuration file for Munin, generated by 'make build'

# The next three variables specifies where the location of the RRD
# databases, the HTML output, logs and the lock/pid files.  They all
# must be writable by the user running munin-cron.  They are all
# defaulted to the values you see here.
#
# dbdir /var/lib/munin
# htmldir /var/cache/munin/www
# logdir /var/log/munin
# rundir  /var/run/munin
#
# Where to look for the HTML templates
# tmpldir       /etc/munin/templates

# (Exactly one) directory to include all files from.
#
includedir /etc/munin/munin-conf.d

# Make graphs show values per minute instead of per second
#graph_period minute

# Graphics files are normaly generated by munin-graph, no matter if
# the graphs are used or not.  You can change this to
# on-demand-graphing by following the instructions in
# http://munin.projects.linpro.no/wiki/CgiHowto
#
#graph_strategy cgi

# munin-cgi-graph is invoked by the web server up to very many times at the
# same time.  This is not optimal since it results in high CPU and memory
# consumption to the degree that the system can thrash.  Again the default is
# 6.  Most likely the optimal number for max_cgi_graph_jobs is the same as
# max_graph_jobs.
#
#munin_cgi_graph_jobs 6

# If the automatic CGI url is wrong for your system override it here:
#
#cgiurl_graph /cgi-bin/munin-cgi-graph

# munin-graph runs in parallel, the number of concurrent processes is
# 6.  If you want munin-graph to not be parallel set to 0.  If set too
# high it will slow down munin-graph.  Some experiments are needed to
# determine how many are optimal on your system.  On a multi-core
# system with good SCSI disks the number can probably be quite high.
#
#max_graph_jobs 6

# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm
#
# For those with Nagios, the following might come in handy. In addition,
# the services must be defined in the Nagios server as well.
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf

# a simple host tree
#[localhost.localdomain]
#    address 127.0.0.1
#    use_node_name yes

[stats.mysite.com]
        address 127.0.0.1

# A more complex example of a host tree
#
## First our "normal" host.
# [fii.foo.com]
#       address foo
#
## Then our other host...
# [fay.foo.com]
#       address fay
#
## Then we want totals...
# [foo.com;Totals] #Force it into the "foo.com"-domain...
#       update no   # Turn off data-fetching for this "host".
#
#   # The graph "load1". We want to see the loads of both machines...
#   # "fii=fii.foo.com:load.load" means "label=machine:graph.field"
#       load1.graph_title Loads side by side
#       load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load
#
#   # The graph "load2". Now we want them stacked on top of each other.
#       load2.graph_title Loads on top of each other
#       load2.dummy_field.stack fii=fii.foo.com:load.load fay=fay.foo.com:load.load
#       load2.dummy_field.draw AREA # We want area instead the default LINE2.
#       load2.dummy_field.label dummy # This is needed. Silly, really.
#
#   # The graph "load3". Now we want them summarised into one field
#       load3.graph_title Loads summarised
#       load3.combined_loads.sum fii.foo.com:load.load fay.foo.com:load.load
#       load3.combined_loads.label Combined loads # Must be set, as this is
#                                                 # not a dummy field!
#
## ...and on a side note, I want them listen in another order (default is
## alphabetically)
#
# # Since [foo.com] would be interpreted as a host in the domain "com", we
# # specify that this is a domain by adding a semicolon.
# [foo.com;]
#       node_order Totals fii.foo.com fay.foo.com
#

/etc/munin-node.conf

#
# Example config-file for munin-node
#

log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid

background 1
setsid 1

user root
group root

# Regexps for files to ignore

ignore_file ~$
#ignore_file [#~]$  # FIX doesn't work. '#' starts a comment
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$

ignore_file \.pod$

# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
#
#host_name localhost.localdomain

# A list of addresses that are allowed to connect.  This must be a
# regular expression, since Net::Server does not understand CIDR-style
# network notation unless the perl module Net::CIDR is installed.  You
# may repeat the allow line as many times as you'd like

allow ^127\.0\.0\.1$

allow ^123\.45\.67\.89$  #the external ip of my server

# If you have installed the Net::CIDR perl module, you can use one or more
# cidr_allow and cidr_deny address/mask patterns.  A connecting client must
# match any cidr_allow, and not match any cidr_deny.  Note that a netmask
# *must* be provided, even if it's /32
#
# Example:
#
# cidr_allow 127.0.0.1/32
# cidr_allow 192.0.2.0/24
# cidr_deny  192.0.2.42/32

# Which address to bind to;
#host *
 host 127.0.0.1

# And which port
port 4949

/etc/hosts

127.0.0.1       localhost
127.0.1.1       ubuntu
123.45.67.89  nemo.mysite.com  nemo
123.45.67.89  nemo.stats.mysite.com

Edits

Output sudo apache2ctl -S

[Fri May 03 11:46:39 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server stats.mysite.com (/etc/apache2/sites-enabled/stats.mysite.com:3)
         port 80 namevhost stats.mysite.com (/etc/apache2/sites-enabled/stats.mysite.com:3)
         port 80 namevhost www.mysite.com (/etc/apache2/sites-enabled/mysite.com:4)

After removing NameVirtualHost *:80 from stats.mysite.com conf file:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server stats.mysite.com (/etc/apache2/sites-enabled/stats.mysite.com:1)
         port 80 namevhost stats.mysite.com (/etc/apache2/sites-enabled/stats.mysite.com:1)
         port 80 namevhost www.mysite.com (/etc/apache2/sites-enabled/mysite.com:4)
Syntax OK
Doon
  • 153
  • 6
  • if you run `httpd -S` (on Ubuntu it might be `apache2ctl -S`), does it list stats.mysite.com? – Safado May 03 '13 at 14:42
  • Yes. I just edited my question adding the output of `apache2ctl -S` – Doon May 03 '13 at 14:49
  • Do you have `NameVirtualHost *:80` in both your httpd.conf and your stats.mysite.com conf file? If so, take it out of the stats.mysite.com file and have it only in the main apache conf file. It's add that your output said that `NameVirtualHost *:80 has no VirtualHosts` but then it proceeds to list two virtual hosts for *:80. I'm wondering if you have `NameVirtualHost *:80` more than once and if that's screwing it up. – Safado May 03 '13 at 14:59
  • Sorry, I forget Ubuntu likes to mix things up. I think they use apache2.conf instead of httpd.conf for the main conf file. – Safado May 03 '13 at 15:04
  • I did what you said and there isn't warning anymore. Should I keep stats.mysite.com conf file without the `NameVirtualHost *:80`? I'll edit my question adding the new output. – Doon May 03 '13 at 15:09
  • Btw, I just noticed `stats.mysite.com` gives me `403 forbidden` now instead of showing the `mysite.com` content. – Doon May 03 '13 at 15:14
  • If you plan on having more than one vhost, it's best to keep it in the main configuration file. Otherwise, if you use the a2disable (or whatever it is) to disable the munin site, it'll 'unload' that conf file which will get rid of the NameVirtualHost directive, essentially breaking any of the other vhosts that use VirtualHost *:80. For the 403, check the permissions of your DocumentRoot folder and make sure Apache can get to it and read from it. – Safado May 03 '13 at 15:14

1 Answers1

1

Looking at the [WARN] in the output of apache2ctl -S and looking at your configuration file for stats.mysite.com, I'm guessing that you have NameVirtualHost *:80 more than once, which is most likely causing the problem.

Remove NameVirtualHost *:80 from your stats.mysite.com conf file and any other site specific file and place it only once near the end of your main apache2.conf file in /etc/apache2.

Safado
  • 4,786
  • 7
  • 37
  • 54
  • Thank you! After configuring the [permissions](http://stackoverflow.com/a/12058057/1488993), it works now! – Doon May 03 '13 at 15:31