Virtual Host... can't get it to work

Hi,

I am trying to set up a Virtual Host in Apache. The Virtual Host is called oci. The config files are as follows:

default-server.conf

#
# Global configuration that will be applicable for all virtual hosts, unless
# deleted here, or overriden elswhere.
# 
NameVirtualHost 192.168.0.80
DocumentRoot /srv/www/oci/htdocs

#
# Configure the DocumentRoot
#
<Directory /srv/www/oci/htdocs>
	AllowOverride All
	Options 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/"
ScriptAlias /oci/ "/srv/www/oci/"

# "/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>

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

DirectoryIndex index.php index.html index.html.var

# 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.
#
####################################### PHP Configuration #####################################################

<IfModule mod_php5.c>
	LoadModule php5_module modules/libphp5.so
        AddType application/x-httpd-php .php .htm .html
        AddType application/x-httpd-php-source .phps
        AddHandler application/x-httpd-php .php4
        AddHandler application/x-httpd-php .php5
        AddHandler application/x-httpd-php .php
        AddHandler application/x-httpd-php-source .php4s
        AddHandler application/x-httpd-php-source .php5s
        AddHandler application/x-httpd-php-source .phps
</IfModule>

php_value include_path .:/srv/www/oci/include:/usr/local/lib/pear
php_value magic_quotes_gpc off
php_value register_globals off

######################################## End PHP Configuration ###################################################


# 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


Virtual Hosts conf file:

#
# VirtualHost template
# Note: to use the template, rename it to /etc/apache2/vhost.d/yourvhost.conf. 
# Files must have the .conf suffix to be loaded.
#
# See /usr/share/doc/packages/apache2/README.QUICKSTART for further hints 
# about virtual hosts.
#
# NameVirtualHost statements can be added to /etc/apache2/listen.conf.
#
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#

<VirtualHost 192.168.0.80>
ServerName oci
DocumentRoot /srv/www/oci/htdocs

<Directory /srv/www/oci/htdocs>
	AllowOverride All
	Options All
</Directory>

Alias /phpMyAdmin "/srv/www/oci/phpMyAdmin"

<Directory /srv/www/oci/phpMyAdmin>
        # Restrict phpmyadmin access to just my worksation
        Options All
        Deny from none
        Allow from localhost
</Directory>

</VirtualHost>


I added an entry to the hosts file…

#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#    
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#

127.0.0.1       localhost
192.168.0.80    oci

# special IPv6 addresses
::1             localhost ipv6-localhost ipv6-loopback

fe00::0         ipv6-localnet

ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts
127.0.0.2       apollo.site apollo

And to hosts.allow…

# /etc/hosts.allow
# See 'man tcpd' and 'man 5 hosts_access' for a detailed description
# of /etc/hosts.allow and /etc/hosts.deny.
#
# short overview about daemons and servers that are built with
# tcp_wrappers support:
# 
# package name  |       daemon path     |       token
# ----------------------------------------------------------------------------
# ssh, openssh  |  /usr/sbin/sshd       |  sshd, sshd-fwd-x11, sshd-fwd-<port>
# quota         | /usr/sbin/rpc.rquotad |  rquotad
# tftpd         | /usr/sbin/in.tftpd    |  in.tftpd
# portmap       |  /sbin/portmap        |  portmap
#                       The portmapper does not verify against hostnames
#                       to prevent hangs. It only checks non-local addresses.
# 
# (kernel nfs server)
# nfs-utils     |  /usr/sbin/rpc.mountd |  mountd
# nfs-utils     |  /sbin/rpc.statd      |  statd
#
# (unfsd, userspace nfs server)
# nfs-server    |  /usr/sbin/rpc.mountd |  rpc.mountd
# nfs-server    |  /usr/sbin/rpc.ugidd  |  rpc.ugidd
#
# (printing services)
# lprng         |  /usr/sbin/lpd        |  lpd
# cups          |  /usr/sbin/cupsd      |  cupsd
#                       The cupsd server daemon reports to the cups
#                       error logs, not to the syslog(3) facility.
#
# (Uniterrupted Power Supply Software)
# apcupsd       |  /sbin/apcupsd        |  apcupsd
# apcupsd       |  /sbin/apcnisd        |  apcnisd
# 
# All of the other network servers such as samba, apache or X, have their own
# access control scheme that should be used instead.
#
# In addition to the services above, the services that are started on request 
# by inetd or xinetd use tcpd to "wrap" the network connection. tcpd uses
# the last component of the server pathname as a token to match a service in
# /etc/hosts.{allow,deny}. See the file /etc/inetd.conf for the token names.
# The following examples work when uncommented:
#
#
# Example 1: Fire up a mail to the admin if a connection to the printer daemon
# has been made from host foo.bar.com, but simply deny all others:
# lpd : foo.bar.com : spawn /bin/echo "%h printer access" | \
#                               mail -s "tcp_wrappers on %H" root
# 
#
# Example 2: grant access from local net, reject with message from elsewhere.
# in.telnetd : ALL EXCEPT LOCAL : ALLOW
# in.telnetd : ALL : \
#    twist /bin/echo -e "
\raccess from %h declined.
\rGo away.";sleep 2
#
#
# Example 3: run a different instance of rsyncd if the connection comes 
#            from network 172.20.0.0/24, but regular for others:
# rsyncd : 172.20.0.0/255.255.255.0 : twist /usr/local/sbin/my_rsyncd-script
# rsyncd : ALL : ALLOW
#

sshd : 127.0.0.1 : allow
sshd : 192.168.* : allow


When I do httpd2 -S I get:

apollo:/etc/sysconfig # httpd2 -S
[Tue Jul 08 23:24:23 2008] [warn] module php5_module is already loaded,skipping
VirtualHost configuration:
192.168.0.80:*         is a NameVirtualHost
         default server oci (/etc/apache2/vhosts.d/oci.conf:16)
         port * namevhost oci (/etc/apache2/vhosts.d/oci.conf:16)
Syntax OK
apollo:/etc/sysconfig #

Then when I browse to http://oci it just says can’t connect. I can’t figure out what I’m doing wrong. Any suggestions much appreciated. http://localhost is fine.

Probably oci is not resolving to the IP address because it’s getting your default domain appended before sending to your DNS nameserver. Try using a full domain name like oci.localdomain. But there’s a flaw in your using /etc/hosts anyway, all clients have to resolve your virtual domain name to the IP address, so just putting it in /etc/hosts isn’t going to work for clients on the LAN, /etc/hosts only works on the same machine.

Hi Ken_yap,

Thanks for your reply… I only want it to work on the local machine for the moment. I don’t need it to be resolved by DNS or anything, just when I type http://oci I want it to load up as per conf files.

I am trying to develop a php application following a book and it says to create a Virtual Host. It’s like having two local hosts I suppose, one of them called oci.

/jlar

Funny thing is that the ip for oci: 192.168.0.80 doesn’t work either…

No page at all? Check your firewall perhaps. Or apache isn’t running.

Apache seems to be ok… http://localhost works. I will have a look at the firewall see if that’s the problem.

But if you are only ever going to access the web server from itself, then you can just resolve oci.localdomain to 127.0.0.1 (localhost) and not worrying about solving the firewall issue.

Can anyone shed any light on this? I have tried everything, nothing seems to make any difference… any help much appreciated…

That is my virtual host information.
I don’t know if can help for you.

<VirtualHost *:80>
ServerAdmin admin@moqin.com
DocumentRoot /usr/local/www/data/lifestory
ServerName lifestory.moqin.com
ErrorLog /var/log/dummy-lifestory.moqin.com-error_log
CustomLog /var/log/dummy-lifestory.moqin-access_log common
</VirtualHost>

I was using XAMPP for a bit and had to go to http://localhost/drupal5 to connect to my local drupal installation.

Might try http://localhost/oci

OK, OK… I know this post is really old, but hey!! I’m studying to configure/use apache too. Besides (technically : ] it is not marked ‘Solved’) So, FWIW: in the first post above you have this in your config file:



NameVirtualHost 192.168.0.80 DocumentRoot /srv/www/oci/htdocs

The problem here is that on all openSUSE versions I’m aware of the proper apache/http dir path should be:

/srv/www/htdocs/oci Your server/directory path from which to serve files is therefore inverted.

Now, on to some more reading for me … … …Trying to configure ‘newscoop’ and ugggghhh, probs!!
Take Care.
----rob