Discussion: Virtual Hosts - Help?
Afficher un message
Vieux 08/10/2006, 18h40   #1
tonyd
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Virtual Hosts - ?

Hi All,

I'm trying to set up virtual hosts and must admit, I'm not getting it.
I have two domains which resolve to my DSL ip address/static. I also
have the mx records of these domains pointing to my DSL ip address with
a mail server running on a different internal ip address/server. Mail
working.

Somehow, obviously I'm not getting my hosts, httpd.conf, and or
sites-available/default files configured properly. At this point they
are messy. I've at one point had not ip address resolving domain names
in the host file. A number of different ways of including/excluding
domains from the httpd.conf file and sites-available/default file (what
is this by the way? It was set up by default, upon the apache install).

I've looked over the apache 2.0 manual on virtual hosts setting up for
multiple domains to a single IP address. I see nothing, however, on
this sites-available/default file.

I continue to get an error message when starting apache: [warn]
NameVirtualHost *:0 has no VirtualHosts. Or some variant.

Or this in addition for example:
Address already in use: make_sock: could not bind to address 0.0.0.0:80

Any or clarification would be greatly appreciated!! Thank you.

tonyd

Supporting Files----

The apache startup script calls the sites-available/default file:
#!/bin/sh -e
#
# apache2 This init.d script is used to start apache2.
# It basically just calls apache2ctl.

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

#[ `ls -1 /etc/apache2/sites-enabled/ | wc -l | sed -e 's/ *//;'` -eq 0
] && \
#echo "You haven't enabled any sites yet, so I'm not starting apache2."
&& \
#echo "To add and enable a host, use addhost and enhost." && exit 0

#edit /etc/default/apache2 to change this.
NO_START=0

set -e
if [ -x /usr/sbin/apache2 ] ; then
HAVE_APACHE2=1
else
exit 0
fi

test -f /etc/default/rcS && . /etc/default/rcS
test -f /etc/default/apache2 && . /etc/default/apache2
if [ "$NO_START" != "0" -a "$1" != "stop" ]; then
[ "$VERBOSE" != no ] && echo "Not starting apache2 - edit
/etc/default/apache2 and change NO_START to be 0.";
exit 0;
fi

APACHE2="$ENV /usr/sbin/apache2"
APACHE2CTL="$ENV /usr/sbin/apache2ctl"

apache_stop() {
PID=""
PIDFILE=""
# let's try to find the pid file
# apache2 allows more than PidFile entry in the config but only
# the last found in the config is used
for PFILE in `grep ^PidFile /etc/apache2/* -r | awk '{print $2}'`; do
PIDFILE="$PFILE"
if [ -e "$PIDFILE" ]; then
PID=`cat $PIDFILE`
fi
done

if `apache2 -t > /dev/null 2>&1`; then
# if the config is ok than we just stop normaly

if [ -e "$PIDFILE" ]
then
PID=`cat $PIDFILE`

$APACHE2 -k stop

CNT=0
while [ 1 ]
do
CNT=$(expr $CNT + 1)

[ ! -d /proc/$PID ] && break

if [ $CNT -gt 60 ]
then
echo " ... failed!"
echo "Apache2 failed to honor the stop command, please investigate
the situation by hand."
exit 1
fi

sleep 1
done
else
echo -n " ... no pidfile found! not running?"
fi

else
# if we are here something is broken and we need to try
# to exit as nice and clean as possible

# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=`pidof apache2` || true

REALPID=0
# if there is a pid we need to verify that belongs to apache2
# for real
for i in $PIDS; do
if [ "$i" = "$PID" ]; then
# in this case the pid stored in the
# pidfile matches one of the pidof apache
# so a simple kill will make it
REALPID=1
fi
done

if [ $REALPID = 1 ]; then
# in this case it is everything nice and dandy
# and we kill apache2
kill $PID
else
# this is the worst situation... just kill all of them
#for i in $PIDS; do
# kill $i
#done
# Except, we can't do that, because it's very, very bad
echo " ... failed!"
echo "You may still have some apache2 processes running. There are"
echo "processes named 'apache2' which do not match your pid file,"
echo "and in the name of safety, we've left them alone. Please
review"
echo "the situation by hand."
fi
fi
}

# Stupid hack to keep lintian happy. (Warrk! Stupidhack!).
case $1 in
start)
[ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf
#ssl_scache shouldn't be here if we're just starting up.
[ -f /var/run/apache2/ssl_scache ] && rm -f
/var/run/apache2/*ssl_scache*
echo -n "Starting web server: Apache2"
$APACHE2CTL startssl
echo "."
;;
stop)
echo -n "Stopping web server: Apache2"
apache_stop
echo "."
;;
reload)
echo -n "Reloading web server config..."
$APACHE2CTL graceful $2
echo "done."
;;
restart | force-reload)
echo -n "Forcing reload of web server: Apache2"
apache_stop
$APACHE2CTL startssl
echo "."
;;
*)
echo "Usage: /etc/init.d/apache2
start|stop|restart|reload|force-reload"
;;
esac

------------------------------------------------
hosts:
127.0.0.1 localhost.localdomain localhost server1
# 172.16.0.40 internal ip of server forwarded to by router
172.16.0.40 www.domain1.net
172.16.0.40 www.domain2.com

# The following lines are desirable for IPv6 capable hosts
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
------------------------------------------------
httpd:
# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *

<VirtualHost *>
ServerName www.domain1.net
DocumentRoot /var/www/d1

#Other directives here

</VirtualHost>

<VirtualHost *>
ServerName www.domain2.com
DocumentRoot /var/www/d2

#Other directives here

</VirtualHost>

------------------------------------------------
/etc/apache2/sites-available/default:

Listen 80
NameVirtualHost *

<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName www.domain1.net
DocumentRoot /var/www/d1

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/d1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the
right place
#RedirectMatch ^/$ /apache2-default/
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName www.domain2.com
DocumentRoot /var/www/d2

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/d2>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the
right place
#RedirectMatch ^/$ /apache2-default/
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

  Réponse avec citation
 
Page generated in 0,14001 seconds with 9 queries