views:

2605

answers:

5

I'm running Apache on Windows XP via Xampplite, and could use help configuring my virtual directory. Here's what I'm hoping to do on my dev box:

  1. I want my source files to live outside of the xampp htdocs dir
  2. on my local machine I can access the project at http://myproject
  3. others on my local network can access the project at my.ip.address/myproject
  4. keep localhost pointing to the xampp's htdocs folder so I can easily add other projects.

I've got 1 & 2 working by editing the windows hosts file, and adding a virtual directory in xampp's apache\conf\extra\httpd-vhosts.conf file. I don't immediately see how to do 3 without messing up 4.

+3  A: 

Figured it out: use Alias for #3, instead of VirtualHost, thus:

Alias /myproject "C:/path/to/my/project"
<Directory "C:/path/to/my/project">
  Options Indexes FollowSymLinks MultiViews ExecCGI
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
sprugman
+2  A: 

To accomplish your list of needs.

1) Make the directory:

mkdir c:\xampp\sites\myproject

2) Edit c:\windows\system32\drivers\etc\hosts so it contains this line:

127.0.0.1         myproject

and add the following to c:\xampp\apache\conf\extra\httpd-vhosts.conf:

  NameVirtualHost myproject:80

  <VirtualHost myproject:80>
  DocumentRoot c:/xampp/sites/myproject
  Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride All
  Order allow,deny
  Allow from all  
  </Directory>

3) Add the following lines to the end of c:\xampp\apache\conf\httpd.conf:

  Alias /myproject/  "/xampp/sites/myproject/"

  <Directory "/xampp/sites/myproject">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  </Directory>

4) Leave DocumentRoot, Directory, etc in c:\xampp\apache\conf\httpd.conf alone to accomplish this. For reference these lines would be:

  DocumentRoot "/xampp/htdocs"

  <Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
  </Directory>

  <Directory "/xampp/htdocs">
   Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride All
   Order allow,deny
   Allow from all
  </Directory>
jeremyasnyder
A: 

NameVirtualHost myproject:80 < VirtualHost myproject:80 >
< /Directory >

Must be:

NameVirtualHost myproject:80 < VirtualHost myproject:80 >
< /VirtualHost >

greets ;)

A: 

@jeremyasnyder

I managed to do the first 2 steps. After adding the folowing lines in C:\xampp\apache\conf\extra\httpd-vhosts.conf Apache Server does not start.

NameVirtualHost myproject:80 DocumentRoot "D:/Solution" Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all

I tried debugging virtual host configuration by using httpd -S and found the following error:

Syntax error...AllowOverride not allowed here. Please help

Nilanjan
A: 

resolved the issue. it was missing the directory tag.

NameVirtualHost myproject:80
<VirtualHost myproject:80>
    DocumentRoot "D:/Solution"
    <Directory "D:/Solution">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>    
</VirtualHost>
Nilanjan