Link to home
Start Free TrialLog in
Avatar of Andrew Angell
Andrew AngellFlag for United States of America

asked on

Question about Apache and virtual hosts on a local development server...???

I´ve got Ubuntu 9 installed in a VM with lamp + phpmyadmin installed and working great.  I´d like to figure out how to configure virtual hosts now so I can setup my clients with their own testing servers from this.

What I´m reading seems pretty straight forward except I´m confused about how to browse different sites locally.  For example, I´ve included my /etc/apache2/available-sites/default file as it is now.  I left the default settings and then just added a new virtual host for a new web site.

So the way I understand it now is that I´d update DNS for beta-sandbox.angelleye.com to point to this server now and because of the virtual host config it would correctly point it to /home/angelleye/www.  

What about local browsing, though?  I´m hitting my server using 192.168.1.136.  beta-sandbox.angelleye.com will mean nothing to the other computers on my network.  Is there some way I add that to my local machines DNS only??

I´ve got Windows and Mac machines on this network that will need to reach this test server and call up each site accordingly.  Any information on how I can do this would be greatly appreciated.  Thanks!


<VirtualHost *:80>
	ServerAdmin webmaster@localhost
 
	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</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
 
    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 *:80>
	ServerAdmin webmaster@localhost
 
	DocumentRoot	/home/angelley/www
	ServerName	beta-sandbox.angelleye.com
 
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /home/angelley/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</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
 
</VirtualHost>

Open in new window

Avatar of Kerem ERSOY
Kerem ERSOY

Hi,

Apache works this way:

As an example say you have 2 domains that you want to have websites such as:
 
www.domain.com
w3.anotherdomain.com

- You just edit your DNS sones and add records like this:

domain.com DNS zone file:

www     IN    A    x.x.x.x

danotherdomain.com DNS zone file:

w3         IN     A  x.x.x.x

So that bothe www.domain.com and w3.domain.com will point to your Apache server's IP address.

Then you'll have your Apache configuration and you'll tell your apache that
- You'll have 2 virtual servers called:

www.doamian.com and w3.danotherdomain.com.
- You'll tell apache wihc folder contains website files for each of them

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot    /home/angelley/www
        ServerName      www.domain.com
 
        <Directory /home/angelley/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </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/www-domain-com-error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/www-domain-com-access.log combined
 
</VirtualHost>
 
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot    /home/angelley/w3
        ServerName      w3.anotherdomain.com
 
        <Directory /home/angelley/w3/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        ScriptAlias /cgi-bin/ /usr/lib/w3/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
 
        ErrorLog /var/log/apache2/w3-anotherdomain-com-error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/w3-antoherdomain-com-access.log combined
 
</VirtualHost>

Open in new window

You can omit /cgi-bin alias. If you do cgi-bin will point  to a subfolder called cgi-bin under the home directory.

You can omit <Directory ... Directives. then System defaults wiill kick in.

You'd like to give a special name denoting your site to the logfiles so that you can follow each viertualhost from their unique filenames.

There was a mistake in my example above  the directory optin was /usr/lib/cgi-bin instead of /usr/lib/w3/cgi-bin


The corrected snippet as follows:

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

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Kerem ERSOY
Kerem ERSOY

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial