--- doc/install/linux/install.pl 2019/07/07 23:36:03 1.57 +++ doc/install/linux/install.pl 2020/05/01 14:13:31 1.63 @@ -77,7 +77,7 @@ if (!open(LOG,">>loncapa_install.log")) &mt('Stopping execution.')."\n"; exit; } else { - print LOG '$Id: install.pl,v 1.57 2019/07/07 23:36:03 raeburn Exp $'."\n"; + print LOG '$Id: install.pl,v 1.63 2020/05/01 14:13:31 raeburn Exp $'."\n"; } # @@ -357,7 +357,7 @@ sub get_hostname { } # -# get_hostname() prompts the user to provide the server's IPv4 IP address +# get_hostip() prompts the user to provide the server's IPv4 IP address # # If invalid input is provided, the routine is called recursively # until, a valid IPv4 address is provided. @@ -421,23 +421,26 @@ sub check_prerequisites { sub check_locale { my ($distro) = @_; - my ($fh,$langvar,$command); + my ($fh,$langvar,$command,$earlyout); $langvar = 'LANG'; if ($distro =~ /^(ubuntu|debian)/) { if (!open($fh,"= 15)) { if (!open($fh,"; chomp(@data); foreach my $item (@data) { @@ -484,7 +492,7 @@ sub check_locale { } elsif (-e '/usr/bin/system-config-language') { $command = 'system-config-language'; } elsif (-e '/usr/bin/localectl') { - $command = 'localectl set-locale en_US.UTF-8'; + $command = '/usr/bin/localectl set-locale LANG=en_US.UTF-8'; } else { $command = 'No standard command found'; } @@ -734,6 +742,9 @@ sub chkconfig { if (($distro =~ /^ubuntu/) && ($version <= 8)) { $daemon{'cups'} = 'cupsys'; } + if (($distro =~ /^ubuntu/) && ($version >= 18)) { + $daemon{'ntp'} = 'chrony'; + } } elsif ($distro =~ /^fedora(\d+)/) { my $version = $1; if ($version >= 15) { @@ -748,6 +759,9 @@ sub chkconfig { if ($version >= 19) { $daemon{'mysql'} = 'mariadb'; } + if ($version >= 26) { + $daemon{'ntp'} = 'chronyd'; + } } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { my $version = $1; if ($version >= 7) { @@ -1042,6 +1056,7 @@ sub chkapache { } } else { my $configfile = 'httpd.conf'; + my $mpmfile = 'mpm.conf'; if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { if ($1 >= 7) { $configfile = 'apache2.4/httpd.conf'; @@ -1050,7 +1065,7 @@ sub chkapache { } } elsif ($distro =~ /^fedora(\d+)$/) { if ($1 > 17) { - $configfile = 'apache2.4/httpd.conf'; + $configfile = 'apache2.4/httpd.conf'; } elsif ($1 > 10) { $configfile = 'new/httpd.conf'; } @@ -1068,6 +1083,20 @@ sub chkapache { } } } + if (-e "/etc/httpd/conf.modules.d/00-mpm.conf") { + if (!-e "$instdir/centos-rhes-fedora-sl/$mpmfile") { + print &mt('Warning: No LON-CAPA Apache MPM configuration file found for installation check.')."\n"; + } elsif ((-e "/etc/httpd/conf.modules.d/00-mpm.conf") && (-e "$instdir/centos-rhes-fedora-sl/$mpmfile")) { + if (open(PIPE, "diff --brief $instdir/centos-rhes-fedora-sl/$mpmfile /etc/httpd/conf.modules.d/00-mpm.conf |")) { + my $diffres = ; + close(PIPE); + chomp($diffres); + if ($diffres) { + $fixapache = 1; + } + } + } + } } return $fixapache; } @@ -1986,6 +2015,7 @@ if ($callsub{'apache'}) { ©_apache2_debconf($instdir,$distro,$hostname); } else { ©_httpd_conf($instdir,$distro,$hostname); + ©_mpm_conf($instdir,$distro); } } else { print_and_log(&mt('Skipping configuration of Apache web server.')."\n"); @@ -2577,6 +2607,50 @@ sub copy_httpd_conf { print_and_log("\n"); } +########################################################### +## +## RHEL/CentOS/Fedora/Scientific Linux +## Copy LON-CAPA mpm.conf to /etc/httpd/conf.modules.d/00-mpm.conf +## +## The LON-CAPA mpm.conf enables the prefork MPM module in +## Apache. This is also the default for RHEL/CentOS/Oracle +## Linux 7 and earlier, and Fedora 26 and earlier. For more +## recent versions of those distros, the event MPM is enabled +## by default. After ©_mpm_conf() is run, the prefork MPM +## module will be enabled instead of the event MPM module. +## +########################################################### + +sub copy_mpm_conf { + my ($instdir,$distro) = @_; + my $mpmfile = 'mpm.conf'; + if ((-e "/etc/httpd/conf.modules.d/00-mpm.conf") && + (-e "$instdir/centos-rhes-fedora-sl/$mpmfile")) { + print_and_log(&mt('Copying the LON-CAPA [_1] to [_2].',"'mpm.conf'", + "'/etc/httpd/conf.modules.d/00-mpm.conf'")."\n"); + copy "$instdir/centos-rhes-fedora-sl/$mpmfile","/etc/httpd/conf.modules.d/00-mpm.conf"; + chmod(0644,"/etc/httpd/conf.modules.d/00-mpm.conf"); + print_and_log("\n"); + } else { + my $logfail; + if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { + if ($1 > 7) { + $logfail = 1; + } + } elsif ($distro =~ /^fedora(\d+)$/) { + if ($1 > 26) { + $logfail = 1; + } + } + if ($logfail) { + print_and_log(&mt('Warning: copying the LON-CAPA [_1] failed because [_2] and/or [_3] are missing.', + $mpmfile,"'$instdir/centos-rhes-fedora-sl/$mpmfile'", + "'/etc/httpd/conf.modules.d/00-mpm.conf'")); + print_and_log("\n"); + } + } +} + ############################################### ## ## Copy loncapassl.conf and sslrewrite.conf @@ -3310,7 +3384,7 @@ wget http://install.loncapa.org/versions print &mt('LON-CAPA source files extracted.')."\n". &mt('It remains for you to execute the following commands:')." -cd /root/loncapa-N.N (N.N should correspond to a version number like '0.4') +cd /root/loncapa-X.Y.Z (X.Y.Z should correspond to a version number like '2.11.3') ./UPDATE ".&mt('If you have any trouble, please see [_1] and [_2]',