From 262427c7768410a4b73bf209e7d32b061605a477 Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 18 Dec 2016 22:50:23 +0000 Subject: [PATCH] Apply updates to make mod_perl work properly --- index.cgi | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/index.cgi b/index.cgi index e51a06b..a8118d1 100755 --- a/index.cgi +++ b/index.cgi @@ -1,28 +1,35 @@ #!/usr/bin/perl -w # Note: above -w flag should be removed in production, as it will cause warnings in # 3rd party modules to appear in the server error log +# When running through mod_perl, remove the -T flag and use 'PerlSwitches -T' +# in the apache configuration. use utf8; use v5.12; use lib qw(/var/www/webperl); use FindBin; -# Work out where the script is, so module and config loading can work. -my $scriptpath; +our ($scriptpath, $fallbackpath, $contact); + +# Handle very early startup tasks BEGIN { - if($FindBin::Bin =~ /(.*)/) { + # Modify these two defaults to suit your environment + $fallbackpath = "/var/www/vhosts/orb.starforge.co.uk/orb"; + $contact = 'chris@starforge.co.uk'; + + # Location autodetect will fail under mod_perl, so use a hard-coded location. + if($ENV{MOD_PERL}) { + $scriptpath = $fallbackpath; + # Otherwise use the script's location as the script path + } elsif($FindBin::Bin =~ /(.*)/) { $scriptpath = $1; } } -use CGI::Carp qw(fatalsToBrowser set_message); # Catch as many fatals as possible and send them to the user as well as stderr - use lib "$scriptpath/modules"; -my $contact = 'contact@email.address'; # global contact address, for error messages - -# System modules -use CGI::Carp qw(fatalsToBrowser set_message); # Catch as many fatals as possible and send them to the user as well as stderr +# Catch as many fatals as possible and send them to the user as well as stderr +use CGI::Carp qw(fatalsToBrowser set_message); # Webperl modules use Webperl::Application; @@ -46,7 +53,8 @@ set_message(\&handle_errors); do { my $app = Webperl::Application -> new(appuser => ORB::AppUser -> new(), system => ORB::System -> new(), - block_selector => ORB::BlockSelector -> new()) + block_selector => ORB::BlockSelector -> new(), + config => "$scriptpath/config/config.cfg") or die "Unable to create application"; $app -> run(); -} +};