IDS & Apache

[IDS Logo]
< back
The following sample IDS configurations assume that you can modify Apache's configuration. If this is not the case, work with your server's administrator to determine what configuration is right for you.

IDS in a user's personal web-accessible directory (suexec installed)

Install Apache with suexec support. Be sure to read the Apache Group's documentation on suexec. With suexec installed, CGI's in a user's personal web directory will be executed as that user.

To allow users to create a personal web-accessible directory called "public_html" in their home directories, you will need to uncomment the following lines in Apache's http.conf:
<Directory /home/*/public_html>
   AllowOverride FileInfo AuthConfig Limit
   Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   <Limit GET POST OPTIONS PROPFIND>
      Order allow,deny
      Allow from all
   </Limit>
   <LimitExcept GET POST OPTIONS PROPFIND>
      Order deny,allow
      Deny from all
   </LimitExcept>
</Directory>
(You will need to modify the first line if users' home directories are not in /home.)

After restarting Apache, files placed in a directory named "public_html" in a user's home directory should be visible at http://yourserver.com/~user/. If they are not, check to make sure that the Apache user (often "nobody" or "www") has "search" (x) priviledges on the "public_html" directory and all of the directories above it. For example, if my public_html directory were located at /home/john/public_html, I would need to make sure that the directories /home, /home/john, and /home/john/public_html were world-searchable.

To allow CGI's to be executed from a public_html directory, we will need to modify the httpd.conf again. In the section we uncommented above, change the line:
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
to:
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
Next, uncomment the line:
AddHandler cgi-script .cgi
Finally, to access IDS without specifying "index.cgi", add a space followed by "index.cgi" to the end of the line:
DirectoryIndex index.html

After restarting Apache, decompress "ids-0.8.tar.gz" into your public_html directory and follow the install instructions. Since the CGI's run as you, you won't have to modify permissions on any of the directories or files in the IDS directory. You should be able to access IDS at a URL like http://yourserver.com/~user/ids-0.8/. Return to the install instructions.

IDS in the Apache cgi-bin directory

Decompress "ids-0.8.tar.gz" into Apache's cgi-bin directory and rename it "ids". By default, Apache is configured to attempt to execute every file in the cgi-bin directory. Errors will occur when you attempt to access your site unless you tell Apache not to execute files in several of IDS' directories:
  • album-data
  • albums
  • image-cache
  • site-images
  • themes
  • admin/templates
To do this, add the following lines to your httpd.conf and restart Apache:
<Location /cgi-bin/ids/album-data>
   SetHandler default-handler
</Location>

<Location /cgi-bin/ids/albums>
   SetHandler default-handler
</Location>

<Location /cgi-bin/ids/image-cache>
   SetHandler default-handler
</Location>

<Location /cgi-bin/ids/site-images>
   SetHandler default-handler
</Location>

<Location /cgi-bin/ids/themes>
   SetHandler default-handler
</Location>

<Location /cgi-bin/ids/admin/templates>
   SetHandler default-handler
</Location>

Make sure that whoever the web server is running as (often "nobody" or "www") has read access to all of the files in IDS' directory and read/write access to the "album-data," "image-cache," and "logs" directories and the files "ids.conf" and "site_news.txt". In order to use the administrative interface's rotate functions, IDS will also need write access to the "albums" directory.

If you wish, you can create symbollic links in the albums directory to directories elsewhere on your system.

You should be able to access IDS at a URL like http://yourserver.com/cgi-bin/ids/index.cgi. Return to the install instructions.

< back