Re: Can't find the server path when, in http.conf, using Alias and DirectoryIndex

From: Date: Wed, 26 Aug 2009 10:36:13 +0000
Subject: Re: Can't find the server path when, in http.conf, using Alias and DirectoryIndex
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-297251@lists.php.net to get a copy of this message
Paul Gardiner wrote:
I want to write a simple indexing script to display a directory full of photos as a gallery of thumbnails. (There are various solutions out there for this, but they're all a bit more complicated than I need). I've added a file in /etc/apache2/conf.d that looks like this: Alias /photos /home/public/photos <Directory "/home/public/photos">
    AllowOverride None
    Order allow,deny
    Allow from all
    DirectoryIndex /cgi-bin/index.php
</Directory> I use "Alias" so that I can leave the photos where they are and not have to move them to DocumentRoot. I use "DirectoryIndex" so that the script doesn't have to be in with the photos. My problem is that the running script seems to have no way to work out the photos are in /home/public/photos. $_SERVER[REQUEST_URI] is "/photos/", but I can't see how to derive the server path from that, since $_SERVER[DOCUMENT_ROOT] is "/srv/www/htdocs". $_SERVER[PHP_SELF] is "/cgi-bin/index.php", so no use either. How can I do this? Is there a way to interrogate the alias, or can I set a variable in the conf file that PHP can pick up?
I've sussed it. If I use this apache2 conf file, where I tag the server path onto the end of the index url: Alias /photos /home/public/photos <Directory "/home/public/photos">
    AllowOverride None
    Order allow,deny
    Allow from all
    DirectoryIndex /cgi-bin/index.php/home/public/photos
</Directory> then the script can pick up the path as $_SERVER[PATH_INFO] P.

« previous php.general (#297251) next »