http://httpd.apache.org/docs/howto/ssi.html#configuringyourservertopermitssi for more information than I'm writing out...
You need to have (somewhere in the main configuration section) the following: # # To use server-parsed HTML files # AddType text/html .shtml AddHandler server-parsed .shtml Then make the suffix of your files .shtml. You can do: AddType text/html .shtml AddHandler server-parsed .shtml .html .htm to make all of your files be server-parsed. This can be a huge slowdown if your site gets many hits. You can take out the <Location /index.shtml> altogether. Also, in your /cgi-bin alias, don't do "Options ExecCGI" even though that probably works fine. You might be better off with the following: # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client. # The same rules about trailing "/" apply to ScriptAlias directives as to # Alias. # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> One of the bad things about having a regular <Directory> setting without the ScriptAlias, and just turning on Options ExecCGI is that the directory will be browseable by default. Meaning that I could just go to http://yourserver/cgi-bin and view all the CGI's in your directory, and maybe (too tired to test) view their contents. Make sure you put always put an ending "/" on your script alias definition. -- Ryan ----- Original Message ----- From: "Ivica Bukvic" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, February 18, 2002 1:46 AM Subject: Configuration problem -- HTML embeded cgi script calls not working [using default MDK/Linux 8.1 (Apache 1.3)] > Hi all, > > I am a self-taught Linux admin, working hard on patching my knowledge > potholes. One of them is Apache/cgi/perl configuration. > > I am using Mandrake 8.1 on an Intel machine, that comes pre-installed > with Apache 1.3. > > Default configuration file (/etc/httpd/conf/commonhttpd.conf) looks as > follows (only the last part that pertains to this issue, I hope :-) ): > > > > # This should be changed to whatever you set DocumentRoot to. > # > <Directory /var/www/html> > > # > # This may also be "None", "All", or any combination of "Indexes", > # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". > # > # Note that "MultiViews" must be named *explicitly* --- "Options All" > # doesn't give it to you. > # > Options Indexes FollowSymLinks MultiViews > > # > # This controls which options the .htaccess files in directories can > # override. Can also be "All", or any combination of "Options", > "FileInfo", > # "AuthConfig", and "Limit" > # > AllowOverride All > > # > # Controls who can get stuff from this server. > # > Order allow,deny > Allow from all > </Directory> > > <Directory /var/www/perl> > AllowOverride All > # Options Indexes FollowSymLinks MultiViews ExecCGI > Options FollowSymLinks MultiViews ExecCGI > Order allow,deny > Allow from all > </Directory> > > <Directory /var/www/cgi-bin> > AllowOverride All > Options Includes ExecCGI > </Directory> > > <Directory /var/www/protected-cgi-bin> > AllowOverride None > Options ExecCGI > Order deny,allow > Deny from all > Allow from 127.0.0.1 > #allow from .your_domain.com > </Directory> > > # > # Control access to UserDir directories. The following is an example > # for a site where these directories are restricted to read-only. > # > #<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> > > # These settings are pretty flexible, and allow for Frontpage and XSSI > <Directory /Users/*/public_html> > AllowOverride All > Options MultiViews Indexes Includes FollowSymLinks > Order allow,deny > Allow from all > </Directory> > > #<Directory /Users/*/public_html/cgi-bin> > # AllowOverride All > # Options ExecCGI > # SetHandler cgi-script > #</Directory> > > > <IfModule mod_perl.c> > <Directory /Users/*/public_html/cgi-bin> > SetHandler perl-script > PerlHandler Apache::PerlRun > Options -Indexes ExecCGI > PerlSendHeader On > </Directory> > </IfModule> > > <Directory /var/www/icons> > 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 .your_domain.com > </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> > > > > Now, there are several issues that I am trying to figure out: > > My Cgi dirs (both the system one in /var/www/cgi-bin/ and individual > user ones in /home/~username/public_html/cgi-bin/ ) do work if I call a > cgi script directly from an url (i.e. http://foo.com/cgi-bin/bar.cgi). > > The problem is when I want to use a cgi script within an html file, no > matter where I store the html file (obviously default preference being > in my user's public_html folder), the <--#exec ... --> calls, or any > other call of such type contained within an Html file, is simply > ignored. > > I tried fiddling with configuration, but am lacking in-depth knowledge > of all the different settings (I do understand that I do need to have > Options and Includes in the folders where I need to be able to have html > files with embeded cgi calls -- please correct me if I am wrong). Also, > I am not quite sure what is the difference between, for instance > +Includes -Includes, and just simply Includes (my understanding from all > of the doc searching is that the first two add/subtract from the default > settings possibly stored in the folder's .htaccess, while the third one > explicitly adds this functionality?). > > Searching over the net for the solution has resulted in a frustratingly > wasted weekend. So, I am hoping that someone would be kind enough to > help me figure this issue out. > > Even the calls like: > > <!--#echo var="DATE_LOCAL" --> > (not sure if this still falls into the mod_perl category tho) > > and > > <!--#exec cmd="/usr/ucb/finger $REMOTE_USER@$REMOTE_HOST"--> > (yet another copy/paste thing that I put into my html file to see if the > whole thing works at all) > > do not work whatsoever. > > The other issue I would greatly appreciate to have clarified is the > whole question as to how to retrieve more info regarding the dreaded 500 > error when executing cgi scripts, when apache's error_log is too skimpy > with info to give anything valuable (it simply says 500 premature end of > script, which can be a ton of things), and when the script executes just > fine at the command-line (i.e. #\perl file.cgi)? > > I would greatly appreciate any help I can get. Thank you very much! > Sincerely, > > Ico > >