Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Westi on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Ref FAQ65-1836 1

Status
Not open for further replies.
If you are only hosting domains and no subdomains, you could use something like
[tt]VirtualDocumentRoot /path/to/vhosts/%-2.0.%-1.0[/tt]
Your structure would then be [tt]/path/to/vhosts/domain.tld[/tt], so all requests for domain.tld would serve files from that directory.

I host several domains and subdomains on my server, where I use a structure like [tt]/path/to/vhosts/domain.tld/sub/subsub[/tt], and I have symlinks in [tt]/path/to/vhosts/domain.tld[/tt] named [tt]www[/tt] and [tt]_[/tt] pointing to the current directory ([tt].[/tt]). //Daniel
 
Now my brain really hurts! :)

I expect I will end up with sub.sub.domain.com, sub.domain.com and domain.com for some domains and others that are just domain.com.

Thanks for the tips.
 
danielhozac:
Mandrake 9, 1.3.26

Wullie:
I've read that but something else seems to be wrong.

My access log shows

customeyes.biz 208.199.169.69 - - [26/Feb/2003:21:57:51 -0600] "GET / HTTP/1.1" 403 349

My httpd.conf I added

<VirtualHost *:80>
VirtualDocumentRoot /var/ VirtualScriptAlias /var/ ServerSignature EMail
</VirtualHost>

In DynamicVhosts.conf

UseCanonicalName Off
LogFormat &quot;%V %h %l %u %t \&quot;%r\&quot; %s %b&quot; vcommon
CustomLog logs/access_log vcommon

In commonhttpd.conf

ServerAdmin moon-admin@usa-pass.net
and changed all the your_domain.com to a real domain

I added the file structure customeyes.biz and /docs and /cgi-bin but if I go to I get a forbidden page.

I just thought my brain hurt a while ago! :)
 
A couple of other things that might help,

With the default setup and regular virtual domains I originally had moon.usa-pass.com showing the default apache page.

In other words, it was working (just to eliminate that question).
 
What are the permissions of the directories in question? What do you get in your error_log? //Daniel
 
I get this in my error log

[Thu Feb 27 06:44:02 2003] [error] [client 208.199.169.69] client denied by server configuration: /var/
Permissions on the entire folder structure itself is root/root, rwxr-xr-x until you get to /docs which add rwxrwxr-x to /docs and index.html is rw-r--r--
 
Complete conf details:

httpd.conf:

ServerRoot /etc/httpd
#ServerName localhost
#LockFile /etc/httpd/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile /etc/httpd/httpd.scoreboard
ErrorLog logs/error_log
LogLevel info
ResourceConfig /dev/null
AccessConfig /dev/null
DocumentRoot /var/
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule includes_module modules/mod_include.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule asis_module modules/mod_asis.so
LoadModule imap_module modules/mod_imap.so
LoadModule action_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule proxy_module modules/libproxy.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
#LoadModule dbm_auth_module modules/mod_auth_dbm.so
#LoadModule db_auth_module modules/mod_auth_db.so
LoadModule digest_module modules/mod_digest.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
<IfDefine HAVE_PHP4>
LoadModule php4_module extramodules/libphp4.so
</IfDefine>
<IfDefine HAVE_SXNET>
LoadModule sxnet_module extramodules/mod_sxnet.so
</IfDefine>
<IfDefine HAVE_SSL>
LoadModule ssl_module extramodules/libssl.so
</IfDefine>
<IfDefine HAVE_GZIP>
LoadModule gzip_module extramodules/mod_gzip.so
</IfDefine>
LoadModule vhost_alias_module modules/mod_vhost_alias.so

ClearModuleList
#AddModule mod_mmap_static.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
#AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
#AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_proxy.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
#AddModule mod_auth_dbm.c
#AddModule mod_auth_db.c
AddModule mod_digest.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine>
<IfDefine HAVE_SXNET>
AddModule mod_sxnet.c
</IfDefine>
<IfDefine HAVE_SSL>
AddModule mod_ssl.c
</IfDefine>
<IfDefine HAVE_GZIP>
AddModule mod_gzip.c
</IfDefine>
AddModule mod_vhost_alias.c

Include conf/commonhttpd.conf

#BindAddress *
<IfDefine APACHEPROXIED>
Port 8080
Listen 8080
</IfDefine>
<IfDefine !APACHEPROXIED>
Port 80
Listen *:80
</IfDefine>

<IfDefine PERLPROXIED>
RewriteEngine on
RewriteRule ^proxy:.* - [F]
RewriteRule ^(.*\/perl\/.*)$ [P]
RewriteRule ^(.*\/cgi-perl\/.*)$ [P]
</IfDefine>

Include conf/vhosts/DynamicVhosts.conf
TimeOut 300

KeepAlive on

MaxKeepAliveRequests 100

KeepAliveTimeout 15

MinSpareServers 4
MaxSpareServers 10

StartServers 4

MaxClients 150
MaxRequestsPerChild 500

Include conf/addon-modules/php.conf
Include conf/mailman.conf
Include conf/ssl/mod_ssl.conf
Include conf/ssl/ssl.default-vhost.conf
Include conf/mod_gzip.conf
NameVirtualHost 12.216.18.23
ScriptLog /var/log/cgiscript.log
ServerTokens OS
# Set up the mass virtual hosting
#
<VirtualHost *:80>
VirtualDocumentRoot /var/ VirtualScriptAlias /var/ ServerSignature EMail
</VirtualHost>
# End mass hosting set up

commonhttpd.conf:

User apache
Group apache

ServerAdmin moon-admin@usa-pass.net

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

<IfModule mod_userdir.c>
UserDir public_html
</IfModule>


<IfModule mod_dir.c>
DirectoryIndex index.html index.php index.php3 index.shtml index.cgi index.pl index.htm Default.htm default.htm
</IfModule>

AccessFileName .htaccess

<Files ~ &quot;^\.ht&quot;>
Order allow,deny
Deny from all
</Files>

UseCanonicalName Off

<IfModule mod_mime.c>
TypesConfig conf/apache-mime.types
</IfModule>

DefaultType text/plain

<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

HostnameLookups off

LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; combined
LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b&quot; common
LogFormat &quot;%{Referer}i -> %U&quot; referer
LogFormat &quot;%{User-agent}i&quot; agent
LogFormat &quot;%v %h %l %u %t \&quot;%r\&quot; %>s %b %T&quot; script
LogFormat &quot;%v %h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; VLOG=%{VLOG}e&quot; vhost

ServerSignature EMail

<IfModule mod_alias.c>

Alias /icons/ /var/ Alias /doc /usr/share/doc

ScriptAlias /cgi-bin/ /var/ ScriptAlias /protected-cgi-bin/ /var/
<IfModule mod_perl.c>

#for Apache::Registry Mode
Alias /perl/ /var/ #for Apache::perlrun Mode
Alias /cgi-perl/ /var/ </IfModule>


</IfModule>

<IfModule mod_autoindex.c>

IndexOptions FancyIndexing

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip .bz2
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py .php .php3
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^


DefaultIcon /icons/unknown.gif


AddDescription &quot;GZIP compressed document&quot; .gz
AddDescription &quot;tar archive&quot; .tar
AddDescription &quot;GZIP compressed tar archive&quot; .tgz
AddDescription &quot;ZIP compressed Zip archive&quot; .zip
AddDescription &quot;PDF pdf document&quot; .pdf
AddDescription &quot;MPEG media file&quot; .mpeg
AddDescription &quot;MPG media file&quot; .mpg
AddDescription &quot;AVI media file&quot; .avi

ReadmeName README
HeaderName HEADER


IndexIgnore .??* *~ *# HEADER* RCS CVS *,v *,t

</IfModule>

<IfModule mod_mime.c>


AddEncoding x-compress Z
AddEncoding x-gzip gz tgz

AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage zh-tw .tw
AddLanguage tw .tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8


<IfModule mod_negotiation.c>
LanguagePriority en fr de es it da nl et el ja kr no pl pt pt-br ru ltz ca sv tw
</IfModule>


AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

AddType application/x-tar .tgz


AddHandler cgi-script .cgi

AddType text/html .shtml
AddHandler server-parsed .shtml


AddHandler imap-file map


</IfModule>

<Location /manual>
Options Multiviews
ErrorDocument 404 &quot;The document you requested has not been installed on your system. Please install the apache-manual package.
</Location>

<IfModule mod_setenvif.c>


BrowserMatch &quot;Mozilla/2&quot; nokeepalive
BrowserMatch &quot;MSIE 4\.0b2;&quot; nokeepalive downgrade-1.0 force-response-1.0


BrowserMatch &quot;RealPlayer 4\.0&quot; force-response-1.0
BrowserMatch &quot;Java/1\.0&quot; force-response-1.0
BrowserMatch &quot;JDK/1\.0&quot; force-response-1.0

</IfModule>

<IfModule mod_status.c>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
allow from 127.0.0.1
Allow from .moon.usa-pass.com
</Location>

</IfModule>


<IfModule mod_info.c>
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from .moon.usa-pass.com
</Location>
</IfModule>

<IfModule mod_perl.c>
<Location /perl-status>
SetHandler perl-script
PerlHandler Apache::Status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
</IfModule>

<Location /cgi-bin/phf*>
Deny from all
ErrorDocument 403 </Location>

<IfModule mod_dav.c>
# DavLockDB /var/lock/DAVLock
</IfModule>

<IfModule mod_include.c>
# XBitHack on
</IfModule>


<Directory /var/

Options -Indexes FollowSymLinks MultiViews


AllowOverride All

Order allow,deny
Allow from all
</Directory>

<Directory /var/ AllowOverride All
Options -Indexes FollowSymLinks MultiViews ExecCGI
Order allow,deny
Allow from all
</Directory>

<Directory /var/ AllowOverride All
Options ExecCGI
</Directory>

<Directory /var/ AllowOverride None
Options ExecCGI
Order deny,allow
Deny from all
Allow from 127.0.0.1
allow from .moon.usa-pass.com
</Directory>

<Directory /home/*/public_html>
AllowOverride All
Options MultiViews -Indexes Includes FollowSymLinks
Order allow,deny
Allow from all
</Directory>

<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI -Includes -Indexes
SetHandler cgi-script
</Directory>


<IfModule mod_perl.c>
<Directory /home/*/public_html/perl>
SetHandler perl-script
PerlHandler Apache::perlRun
Options -Indexes ExecCGI
PerlSendHeader On
</Directory>
</IfModule>

<Directory /var/ Options -Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Directory /usr/share/doc>
Options Indexes FollowSymLinks
Order deny,allow
Deny from all
Allow from 127.0.0.1
allow from .moon.usa-pass.com
</Directory>

<Directory /var/ Options Indexes FollowSymLinks
</Directory>

<Location /index.shtml>
Options +Includes
</Location>

<IfModule mod_perl.c>
PerlModule Apache::Registry

#set Apache::Registry Mode for /perl Alias
<Location /perl/*.pl>
SetHandler perl-script
PerlHandler Apache::Registry
Options -Indexes ExecCGI
PerlSendHeader On
</Location>

#set Apache::perlRun Mode for /cgi-perl Alias
<Location /cgi-perl/*.pl>
SetHandler perl-script
PerlHandler Apache::perlRun
Options -Indexes ExecCGI
PerlSendHeader On
</Location>
</IfModule>

DynamicVhosts.conf:

UseCanonicalName Off
#
# this log format can be split per-virtual-host based on the first field
LogFormat &quot;%V %h %l %u %t \&quot;%r\&quot; %s %b&quot; vcommon
CustomLog logs/access_log &quot;vcommon&quot;
 
That did it!

I'd have been foreever trying to figure that one out.

Thanks a million.

One last question, how do I create a symlink to the current folder? Google isn't helping me here either!

 
Open a console window and change to the directory where you want to add the symlink. Then execute this command:
[tt]ln -s . www[/tt]
The general syntax is [tt]ln -s <target> <symlink name>[/tt]. //Daniel
 
OK! that worked, but it doesn't resolve from a browser. Do I need to restart Apache?

I took a look at the symlink with File Manager and inside the link (www) it has a a copy of the folders in that directory including one of itself ( If I look in the copy of itself (www) there is another copy and so on, is this right?

From a command prompt I cannot change into it (cd not work).
 
Oops! CD work (I was in the wrong directory with the command line before). I also notice that any attempt to cd just leaves me in the same folder. This makes sense. Using File Manager threw me there.
 
Yes, this is the expected behaviour. Unfortunately, it's the only way I have effectively accomplished this effect though. If you find another way to do it, I'd be more than happy to try it out :).

If it doesn't resolve, do you have the correct domain name and DNS servers set up on your box?
//Daniel
 
Well the domain without just fine, just when I add it comes back with page cannot be found.

In dns I have an A record for moon.usa-pass.com = the IP address and an A record for = IP too. (Win 2K DNS server, no DNS on the Linux box itself). They both resolve with nslookup.

Maybe I have the link in the wrong place? I put it in /var/
My VirtualDocumentRoot is /var/
Did I do that right or does the symlink need to go into /docs?

BTW, my guess is the only other way to do it would be to have something always strip the header (if exists) - any idea on how to do that?
 
The [tt]www[/tt] symlink goes in whereever your [tt]VirtualDocumentRoot[/tt] directive tells it to go... What does your [tt]VirtualDocumentRoot[/tt] say? //Daniel
 
OK, so I put it into moon.usa-pass.com/docs

I also added Options FollowSymLinks to

<Directory /var/ AllowOverride All
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>

but still no joy :(
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top