Mark Franz
asked on
Calling .pl from <!--include exec...-->
I am running NT4.0, IIS 3.0, and need to call a .pl from an include line, I went through the registry and found nothing wrong, but the browser is still ignoring the SSI. HELP!
ASKER
As I stated in my original Q, I am running IIS 3.0 on a NT4.0 server, I am able to run .pl scripts from a <frameset> page, but not from a SSI, this issue is the same on a PWS also, Here is what I am trying to do;
-------------------------- --------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;>
<TITLE>Doc2</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#ffffff">
<!--#include cmd="\cgi-bin\countdown.pl " -->
<P></P></BODY>
</HTML>
I have tried <!-- #exec cgi="....pl --> and <!--#exec cmd... -->
also, I dont have access to other server types.
IIS should not be this difficult to set-up for SSI!
--------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;>
<TITLE>Doc2</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#ffffff">
<!--#include cmd="\cgi-bin\countdown.pl
<P></P></BODY>
</HTML>
I have tried <!-- #exec cgi="....pl --> and <!--#exec cmd... -->
also, I dont have access to other server types.
IIS should not be this difficult to set-up for SSI!
The httpd server daemon probably needs a mime type designated
as acceptable as an executable. I am unfamiliar with what runs
on windoze. But in the unix world, this would go into
the httpd.conf file.
as acceptable as an executable. I am unfamiliar with what runs
on windoze. But in the unix world, this would go into
the httpd.conf file.
ASKER
NT and IIS dosn't use a HTTPD.CONF file, or any real config file, only registry entries. After much research and many e-mails from various sources, it has been determined that IIS and NT does not recognize <!--#exec ...--> includes fromm HTML files, ... but, with ASP pages, there are certain includes that will run, with much registry work. I ended up writing a perl file that opened up the tables inside of the script, like a "auto-generate".
I had trouble getting nt to run perl scripts. And yes, NT can be that hard to get perl to run. Check your registry. Make sure ...
HKEY_LOCAL_MACHINE on Local Machine
SYSTEM
CurrentControlSet
Services
W3SVC
Parameters
ScriptMap
has a field like
.pl:REG_SZ:c:\ntperl\bin\p erl.exe %s
You could also try making a runit.bat file that is
perl c:\counter\count.pl
Good luck
HKEY_LOCAL_MACHINE on Local Machine
SYSTEM
CurrentControlSet
Services
W3SVC
Parameters
ScriptMap
has a field like
.pl:REG_SZ:c:\ntperl\bin\p
You could also try making a runit.bat file that is
perl c:\counter\count.pl
Good luck
ASKER
Perl scripts run fine, but it would be nice if we could run <include...> lines from inside of a print << statement. What I have found out so far is that IIS has no <include exec...> capabilities unless you are running ASP. Which would mean re-writing about 100 pages... :-(
print <<HERE;
<include>@{[`\cgi-bin\coun tdown.pl`] }</include >
HERE
<include>@{[`\cgi-bin\coun
HERE
The default file mapping for SSIs on IIS3.0 is .stm, Change the name of your html file from whatever.html to whatever.stm, and it will probably work.
ASKER
nope, OZO hit the nail on the head...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
If it didn't hit the nail on the head, you could have rejected it for another answer.
ASKER
nope, this is ~almost exactly what I was looking for, either way, this actually works better than my original, cause I can put all my script into the same page.
Then why the low grade? One might think you were dissatisfied in some way.
Actually, there is a problem with the answer as given,
It should have been `/cgi-bin/countdown.pl`, or else `\\\\cgi-bin\\\\countdown. pl`
It should have been `/cgi-bin/countdown.pl`, or else `\\\\cgi-bin\\\\countdown.
And with the ${\(...)} construct, you would have wanted ${\(scalar `command`)}
if command returns more than one line
if command returns more than one line
accept and not the browser. the <!--#include ..> never reaches
the browser (or shouldn't at least).
I don't know about the web-server you got, but make sure it at
all have SSI (server side include) support (many servers doesn't
or they have another way of including).
Mark tho that it is normally <!--#include not <!--include.. in
the question you forgot the # (hash).
Next is, that if you want to execute a command, you don't use
#include, but you use #exec try <!--#exec cmd="a.pl" ..
Hope this helps