source: main/trunk/greenstone2/common-src/cgi-bin/experimental-ocr-server.pl@ 33011

Last change on this file since 33011 was 33011, checked in by ak19, 2 years ago

On Ubuntu 18.04, confirmed Renate's findings that gsdlCGI.pm wasn't found by gliserver.pl in its @INC paths. Have now added the containing cgi-bin folder on GS2 and cgi folder on GS3 to @INC to teach gliserver.pl to find gsdlCGI.pm. This however needed a fix in build.xml where force-start-tomcat was passing the wrong value for GSDL3HOME to tomcat: it was passing in basedir instead of web.home. With this fix, gliserver.pl now works on Ubuntu 18.04. Have added lines identical to the changes in gliserver.pl to the other pl files in the cgi(-bin) folder for those pl files that similarly import gsdlCGI.pm.

  • Property svn:executable set to *
File size: 2.0 KB
Line 
1#!C:\Perl\bin\perl -w
2
3##!/usr/bin/perl -w
4##!C:\\Perl\\bin\\perl -w
5
6# If not explicitly associating .pl filename ending with Perl in the
7# web server's configuration file, then need to specify the full path of
8# Perl above
9
10use strict;
11
12BEGIN {
13 # Line to stop annoying child DOS CMD windows from appearing
14 Win32::SetChildShowWindow(0)
15 if defined &Win32::SetChildShowWindow;
16
17 # On Ubuntu 18.04, gsdlCGI.pm can't be found as the cgi folder is not among @INC paths.
18 # Ensure gsdlCGI.pm is available in @INC by adding the cgi folder to it.
19 # For GS2:
20 my $gsdl_cgi_path = $ENV{'GSDLHOME'} . "/cgi-bin";
21 # For GS3:
22 $gsdl_cgi_path = $ENV{'GSDL3HOME'} . "/WEB-INF" . "/cgi" if defined $ENV{'GSDL3HOME'};
23
24 my $found_cgi_path = 0;
25 foreach my $inc_path (@INC) {
26 if($inc_path eq $gsdl_cgi_path) {
27 $found_cgi_path = 1;
28 last;
29 }
30 }
31 if(!$found_cgi_path) {
32 unshift (@INC, $gsdl_cgi_path);
33 }
34}
35
36# Set this to 1 to work around IIS 6 craziness
37my $iis6_mode = 0;
38
39
40# IIS 6: for some reason, IIS runs this script with the working
41# directory set to the Greenstone directory rather than the cgi-bin
42# directory, causing lots of stuff to fail
43if ($iis6_mode)
44{
45 # Change into cgi-bin\<OS> directory
46 chdir("cgi-bin");
47 if(defined $ENV{'GSDLARCH'}) {
48 chdir($ENV{'GSDLOS'}.$ENV{'GSDLARCH'});
49 } else {
50 chdir($ENV{'GSDLOS'});
51 }
52}
53
54
55# We use require and an eval here (instead of "use") to catch any
56# errors loading the module (for IIS)
57eval('require "./gsdlCGI.pm"');
58if ($@)
59{
60 print STDOUT "Content-type:text/plain\n\n";
61 print STDOUT "ERROR: $@\n";
62 exit 0;
63}
64
65sub main
66{
67 my $gsdl_cgi = new gsdlCGI();
68 $gsdl_cgi->setup_gsdl();
69
70 my $gsdlhome = $ENV{'GSDLHOME'};
71 $gsdl_cgi->checked_chdir($gsdlhome);
72
73 require cgiactions::ocraction;
74
75 $gsdl_cgi->parse_cgi_args();
76 $gsdl_cgi->{'xml'} = 0;
77
78 my $action = new ocraction($gsdl_cgi,$iis6_mode);
79 $action->do_action();
80}
81
82&main();
Note: See TracBrowser for help on using the repository browser.