Thursday, February 17, 2011

apache on windows virtual directory config help

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.

From stackoverflow
  • 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>
    
  • 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>
    
  • NameVirtualHost myproject:80 < VirtualHost myproject:80 >
    < /Directory >

    Must be:

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

    greets ;)

  • @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

  • 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>
    

0 comments:

Post a Comment