Ok,
I think the best workaround for this issue, is to not download the
latest ActivePerl, but to use this one if you need to use IIS:
http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.7.813-MSWin32-x86-148120.msi
This distribution doesn't contain the CGI.pm issue.
I'll add this to the documentation.
Cheers,
David
David Sitsky wrote:
> Turns out this is a known issue with CGI.pm. I tried downloading the
> latest version (3.20) and installing it manually - same problem. There
> is already a ticket for this issue:
>
> http://rt.cpan.org/Public/Bug/Display.html?id=19044
>
> Somebody posted a patch to CGI.pm, and I applied it, and it seems to fix
> the problem. I've attached the patch to this email.
>
> What a pain! All IIS users will be hit by this issue when they try and
> install Codestriker now.
>
> Cheers,
> David
>
> David Sitsky wrote:
>> Hi Fabio,
>>
>> I've been able to reproduce this on Windows 2000. I was using
>> ActivePerl 5.8.3.809, and all was working fine (CGI 3.01). I upgraded
>> to 5.8.8.817 (CGI 3.15) and now it is broken in the same way for me.
>>
>> What a pain! Looks like we have a regression problem of some sort
>> with the CGI module under IIS.
>>
>> Cheers,
>> David
>>
>> Fabio Hirata wrote:
>>> Hi David,
>>>
>>> I installed an earlier version of ActivePerl
>>> (ActivePerl-5.8.7.813-MSWin32-x86-148120), with an older version of
>>> CGI (3.10, instead of 3.15) and I get the entire path correctly now.
>>>
>>> I still get some errors in the page, which I'm investigating now. The
>>> Help links (tooltips) are not working under IIS still. I'll let you
>>> know if I figure something out.
>>>
>>> Thanks,
>>> Fabio
>>>
>>>> From: David Sitsky <sits@...>
>>>> To: Siu Lay <siulayhumga@...>
>>>> CC: codestriker-user@...
>>>> Subject: Re: [Codestriker-user] Help with IIS and codestriker
>>>> Date: Tue, 08 Aug 2006 12:10:23 +1000
>>>>
>>>> Hi Siu,
>>>>
>>>>> I installed codestriker 1.9.2-rc3 on a IIS with MySQL. Everything is
>>>>> fine and the "topic screen" show up when I enter the URL
>>>>> http://<myserver>/codestriker/codestriker.pl
>>>>>
>>>>> Problem is all the links on the page seems to be missing the
>>>>> "codestriker.pl" in the URL. For exmple "create new topic" url is
>>>>> "http://<myserver>/?action=create", instead of
>>>>> "http://<mserver>/codestriker.pl?action=create"
>>>>>
>>>>> Can anyone help me out?
>>>>>
>>>>> This is the first time I setup a cgi on a IIS server, so most
>>>>> likely is
>>>>> a user error.
>>>> I have codestriker working fine under IIS under Windows 2000, but this
>>>> does seem to be an issue under Windows XP. Can you tell me what
>>>> version
>>>> of windows you are using, and what version of IIS you are using?
>>>>
>>>> If you want a work-around, please use Apache for now.
>>>>
>>>> I am still researching the exact cause of this, but apparently some
>>>> versions of IIS don't set the CGI environment variables correctly.
>>>>
>>>> Cheers,
>>>> David
>>
>>
>> -------------------------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job
>> easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache
>> Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> Codestriker-user mailing list
>> Codestriker-user@...
>> https://lists.sourceforge.net/lists/listinfo/codestriker-user
>>
>
>
> ------------------------------------------------------------------------
>
> --- ../../work/CGI.pm-3.20/CGI.pm 2006-04-24 00:25:14.000000000 +1000
> +++ CGI.pm 2006-08-09 10:46:17.390625000 +1000
> @@ -2641,6 +2641,7 @@
>
> my $rewrite_in_use = $request_uri && $request_uri !~ /^$script_name/;
> undef $path if $rewrite_in_use && $rewrite; # path not valid when rewriting active
> + undef $path if ($path eq $script_name);
>
> my $uri = $rewrite && $request_uri ? $request_uri : $script_name;
> $uri =~ s/\?.*$//; # remove query string
> @@ -2777,8 +2778,10 @@
> my $raw_path_info = $ENV{PATH_INFO} || '';
> my $uri = unescape($self->request_uri) || '';
>
> + if ($raw_path_info ne $raw_script_name) {
> my $protected = quotemeta($raw_path_info);
> $raw_script_name =~ s/$protected$//;
> + }
>
> my @uri_double_slashes = $uri =~ m^(/{2,}?)^g;
> my @path_double_slashes = "$raw_script_name $raw_path_info" =~ m^(/{2,}?)^g;
|