version 1.59, 2007/12/07 06:01:06
|
version 1.64, 2010/01/01 04:29:01
|
Line 124 $|=1;
|
Line 124 $|=1;
|
my $domainDescription; |
my $domainDescription; |
my $domainTabExtras; |
my $domainTabExtras; |
my $primaryLibServer; |
my $primaryLibServer; |
|
my $protocol; |
my @libservers = (); |
my @libservers = (); |
unless (-e "<TARGET />") { |
unless (-e "<TARGET />") { |
print(<<END); |
print(<<END); |
Line 474 END
|
Line 475 END
|
} |
} |
} |
} |
|
|
|
while (!$flag) { |
|
print(<<END); |
|
|
|
**** Web Server Protocol **** |
|
If you plan to run the Apache server with SSL enabled, |
|
the protocol should be: https; otherwise it should be http. |
|
ENTER WEB SERVER PROTOCOL: |
|
END |
|
|
|
my $choice=<>; |
|
chomp($choice); |
|
if ($choice!~/^https?$/) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'protocol'."\t".$choice."\n"); |
|
close(OUT); |
|
$protocol=$choice; |
|
$flag=1; |
|
} |
|
else { |
|
print "Invalid input (only http or https allowed).\n"; |
|
} |
|
} |
|
|
# update loncapa.conf |
# update loncapa.conf |
my $confdir = '/etc/httpd/conf/'; |
my $confdir = '/etc/httpd/conf/'; |
if ('<DIST />' eq 'sles10' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3') { |
if ('<DIST />' eq 'sles10' || '<DIST />' eq 'sles11' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3' || '<DIST />' eq 'suse11.1' || '<DIST />' eq 'suse11.2' || '<DIST />' eq 'debian5' || '<DIST />' eq 'ubuntu6' || '<DIST />' eq 'ubuntu8') { |
$confdir = '/etc/apache2/'; |
$confdir = '/etc/apache2/'; |
} |
} |
my $filename='loncapa.conf'; |
my $filename='loncapa.conf'; |
Line 534 END
|
Line 557 END
|
</file> |
</file> |
<file> |
<file> |
<target dist='default'>/etc/httpd/conf/</target> |
<target dist='default'>/etc/httpd/conf/</target> |
<target dist='sles10 suse10.1 suse10.2 suse10.3'>/etc/apache2/</target> |
<target dist='sles10 sles11 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 debian5 ubuntu6 ubuntu8'>/etc/apache2/</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
sub securesetting { |
sub securesetting { |
my (%perlvar)=@_; |
my (%perlvar)=@_; |
Line 627 my %perlvarstatic;
|
Line 650 my %perlvarstatic;
|
(undef,$domainDescription,$domainTabExtras)=split(/:/,$line,3); |
(undef,$domainDescription,$domainTabExtras)=split(/:/,$line,3); |
chomp($domainDescription); |
chomp($domainDescription); |
chomp($domainTabExtras); |
chomp($domainTabExtras); |
# the remianing field (primary lib server) is handled later |
# the remaining field (primary lib server) is handled later |
$domainTabExtras = join(':',(split(/:/,$domainTabExtras))[0..5]); |
$domainTabExtras = join(':',(split(/:/,$domainTabExtras))[0..5]); |
last; |
last; |
} |
} |
Line 637 my %perlvarstatic;
|
Line 660 my %perlvarstatic;
|
} |
} |
} |
} |
|
|
|
if (!$protocol) { |
|
foreach my $file (@hosts_files) { |
|
open(IN,'<'.$file); |
|
while(my $line = <IN>) { |
|
if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:(https?)/) { |
|
$protocol = $1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
|
|
if (!$protocol) { |
|
$protocol = 'http'; |
|
} |
|
|
while(!$primaryLibServ && (@hosts_file || @domain_files)) { |
while(!$primaryLibServ && (@hosts_file || @domain_files)) { |
my $file = shift(@domain_files); |
my $file = shift(@domain_files); |
open(IN,'<'.$file); |
open(IN,'<'.$file); |
Line 664 my %perlvarstatic;
|
Line 703 my %perlvarstatic;
|
} |
} |
|
|
# implement editing logic below, interactively |
# implement editing logic below, interactively |
# update loncapa.conf until 12 is entered |
# update loncapa.conf until 13 is entered |
|
|
$flag=0; |
$flag=0; |
|
|
Line 679 This is now the current configuration of
|
Line 718 This is now the current configuration of
|
4) ID of primary library server for domain: $primaryLibServer |
4) ID of primary library server for domain: $primaryLibServer |
5) Server Administrator's E-mail Address: $perlvar{'lonAdmEMail'} |
5) Server Administrator's E-mail Address: $perlvar{'lonAdmEMail'} |
6) Support E-mail Address: $perlvar{'lonSupportEMail'} |
6) Support E-mail Address: $perlvar{'lonSupportEMail'} |
7) Role: $perlvar{'lonRole'} |
7) Web Server Protocol (http or https): $protocol |
8) Cache Expiration Time: $perlvar{'lonExpire'} |
8) Role: $perlvar{'lonRole'} |
9) Server Load: $perlvar{'lonLoadLim'} |
9) Cache Expiration Time: $perlvar{'lonExpire'} |
10) User Load: $perlvar{'lonUserLoadLim'} |
10) Server Load: $perlvar{'lonLoadLim'} |
11) Allow only secure connections: $securestatus |
11) User Load: $perlvar{'lonUserLoadLim'} |
12) Everything is correct up above |
12) Allow only secure connections: $securestatus |
|
13) Everything is correct up above |
END |
END |
|
|
my @error; |
my @error; |
Line 715 unless (($perlvar{'lonRole'} eq 'library
|
Line 755 unless (($perlvar{'lonRole'} eq 'library
|
push(@error,"Invalid Role"); |
push(@error,"Invalid Role"); |
} |
} |
|
|
|
unless (($protocol eq 'http') || ($protocol eq 'https')) { |
|
push(@error,"Invalid Protocol (must be http or https"); |
|
} |
|
|
if (!defined($primaryLibServer)) { |
if (!defined($primaryLibServer)) { |
if (@libservers > 0) { |
if (@libservers > 0) { |
push(@error,"No primary library server ID designated. Choose from: ".join(',',sort(@libservers))); |
push(@error,"No primary library server ID designated. Choose from: ".join(',',sort(@libservers))); |
Line 740 if (!defined($primaryLibServer)) {
|
Line 784 if (!defined($primaryLibServer)) {
|
|
|
if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; } |
if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; } |
print(<<END); |
print(<<END); |
ENTER A CHOICE OF 1-11 TO CHANGE, otherwise ENTER 12: |
ENTER A CHOICE OF 1-12 TO CHANGE, otherwise ENTER 13: |
END |
END |
my $choice=<>; |
my $choice=<>; |
chomp($choice); |
chomp($choice); |
Line 812 END
|
Line 856 END
|
} |
} |
elsif ($choice==7) { |
elsif ($choice==7) { |
print(<<END); |
print(<<END); |
7) Role: $perlvar{'lonRole'} |
7) Server Protocol (http or https): |
|
ENTER NEW VALUE: (this should be either 'http' or 'https' |
|
if in doubt set to 'http'): |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$protocol=$choice2; |
|
} |
|
elsif ($choice==8) { |
|
print(<<END); |
|
8) Role: $perlvar{'lonRole'} |
ENTER NEW VALUE (this should be either 'access' or 'library' |
ENTER NEW VALUE (this should be either 'access' or 'library' |
if in doubt select 'library'): |
if in doubt select 'library'): |
END |
END |
Line 820 END
|
Line 874 END
|
chomp($choice2); |
chomp($choice2); |
$perlvar{'lonRole'}=$choice2; |
$perlvar{'lonRole'}=$choice2; |
} |
} |
elsif ($choice==8) { |
elsif ($choice==9) { |
print(<<END); |
print(<<END); |
8) Cache Expiration Time: $perlvar{'lonExpire'} |
9) Cache Expiration Time: $perlvar{'lonExpire'} |
ENTER NEW VALUE (in seconds, 86400 is a reasonable value): |
ENTER NEW VALUE (in seconds, 86400 is a reasonable value): |
END |
END |
my $choice2=<>; |
my $choice2=<>; |
chomp($choice2); |
chomp($choice2); |
$perlvar{'lonExpire'}=$choice2; |
$perlvar{'lonExpire'}=$choice2; |
} |
} |
elsif ($choice==9) { |
elsif ($choice==10) { |
print(<<END); |
print(<<END); |
9) Server Load: $perlvar{'lonLoadLim'} |
10) Server Load: $perlvar{'lonLoadLim'} |
ENTER NEW VALUE: |
ENTER NEW VALUE: |
END |
END |
my $choice2=<>; |
my $choice2=<>; |
chomp($choice2); |
chomp($choice2); |
$perlvar{'lonLoadLim'}=$choice2; |
$perlvar{'lonLoadLim'}=$choice2; |
} |
} |
elsif ($choice==10) { |
elsif ($choice==11) { |
print(<<END); |
print(<<END); |
10) User Load: $perlvar{'lonUserLoadLim'} |
11) User Load: $perlvar{'lonUserLoadLim'} |
Numer of users that can login before machine is 'overloaded' |
Numer of users that can login before machine is 'overloaded' |
ENTER NEW VALUE (integer value, 0 means there is no limit): |
ENTER NEW VALUE (integer value, 0 means there is no limit): |
END |
END |
Line 848 END
|
Line 902 END
|
chomp($choice2); |
chomp($choice2); |
$perlvar{'lonUserLoadLim'}=$choice2; |
$perlvar{'lonUserLoadLim'}=$choice2; |
} |
} |
elsif ($choice==11) { |
elsif ($choice==12) { |
print(<<END); |
print(<<END); |
11) Allow only secure connections: $securestatus |
12) Allow only secure connections: $securestatus |
The Lon-CAPA communication daemons lonc and lond can be configured to |
The Lon-CAPA communication daemons lonc and lond can be configured to |
allow only secure connections by default. |
allow only secure connections by default. |
|
|
Line 877 END
|
Line 931 END
|
} |
} |
($securestatus,$securenum)=&securesetting(%perlvar); |
($securestatus,$securenum)=&securesetting(%perlvar); |
} |
} |
elsif (($choice==12) && (!$error)) { |
elsif (($choice==13) && (!$error)) { |
$flag=1; |
$flag=1; |
} |
} |
else { |
else { |
Line 910 unless (-l "<TARGET />") {
|
Line 964 unless (-l "<TARGET />") {
|
$lineexistflag=0; |
$lineexistflag=0; |
$hostidexistflag=0; |
$hostidexistflag=0; |
$line2insert=<<END; |
$line2insert=<<END; |
$perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname |
$perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$protocol |
END |
END |
if (!$domainTabExtras) { |
if (!$domainTabExtras) { |
$domainTabExtras=':::::'; |
$domainTabExtras=':::::'; |
Line 920 END
|
Line 974 END
|
open(OUT,'>../'.$lonCluster.'_hosts.tab') or |
open(OUT,'>../'.$lonCluster.'_hosts.tab') or |
die('file generation error'); |
die('file generation error'); |
print(OUT $line2insert); |
print(OUT $line2insert); |
print OUT ("^$hostname\n"); |
print OUT ("^$hostname:$protocol\n"); |
close(OUT); |
close(OUT); |
open(OUT,'>../'.$lonCluster.'_dns_hosts.tab') or |
open(OUT,'>../'.$lonCluster.'_dns_hosts.tab') or |
die('file generation error'); |
die('file generation error'); |
Line 964 END
|
Line 1018 END
|
close(OUT); |
close(OUT); |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
# email appropriate message |
# email appropriate message |
`echo "REPLACE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "REPLACE:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`; |
`echo "REPLACE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "REPLACE:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`; |
} |
} |
elsif ($hostidexistflag and $lineexistflag) { |
elsif ($hostidexistflag and $lineexistflag) { |
print <<END; |
print <<END; |
Line 977 END
|
Line 1031 END
|
close(OUT); |
close(OUT); |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
# email appropriate message |
# email appropriate message |
`echo "STABLEUPDATE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "STABLEUPDATE:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`; |
`echo "STABLEUPDATE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "STABLEUPDATE:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`; |
} |
} |
elsif (!$hostidexistflag and !$lineexistflag) { |
elsif (!$hostidexistflag and !$lineexistflag) { |
print <<END; |
print <<END; |
Line 990 END
|
Line 1044 END
|
close(OUT); |
close(OUT); |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
`ln -s new_${lonCluster}_hosts.tab ../hosts.tab`; |
# email appropriate message |
# email appropriate message |
`echo "INSERT:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "INSERT:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`; |
`echo "INSERT:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "INSERT:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`; |
} |
} |
} |
} |
$lineexistflag=0; |
$lineexistflag=0; |