--- doc/install/linux/install.pl 2013/01/06 23:04:07 1.24 +++ doc/install/linux/install.pl 2014/06/04 00:25:32 1.28 @@ -72,7 +72,7 @@ if (!open(LOG,">>loncapa_install.log")) &mt('Stopping execution.')."\n"; exit; } else { - print LOG '$Id: install.pl,v 1.24 2013/01/06 23:04:07 raeburn Exp $'."\n"; + print LOG '$Id: install.pl,v 1.28 2014/06/04 00:25:32 raeburn Exp $'."\n"; } # @@ -339,13 +339,15 @@ sub check_locale { my @data = <$fh>; chomp(@data); foreach my $item (@data) { - if ($item =~ /^\Q$langvar\E=\"([^\"]*)\"/) { + if ($item =~ /^\Q$langvar\E=\"?([^\"]*)\"?/) { my $default = $1; if ($default ne 'en_US.UTF-8') { if ($distro =~ /^debian/) { - $command = 'dpkg-reconfigure locales'; + $command = 'locale-gen en_US.UTF-8'."\n". + 'update-locale LANG=en_US.UTF-8'; } elsif ($distro =~ /^ubuntu/) { - $command = 'sudo set-language-env -E'; + $command = 'sudo locale-gen en_US.UTF-8'."\n". + 'sudo update-locale LANG=en_US.UTF-8'; } elsif ($distro =~ /^(suse|sles)/) { $command = 'yast language'; } else { @@ -503,6 +505,11 @@ sub chkconfig { if ($distro =~ /^(suse|sles)9/) { $daemon{'apache'} = 'apache'; } + if ($distro =~ /^suse(\d+)/) { + if ($1 > 11) { + $uses_systemctl{'apache'} = 1; + } + } } elsif ($distro =~ /^(?:debian|ubuntu)(\d+)/) { my $version = $1; @runlevels = qw/2 3 4 5/; @@ -514,7 +521,7 @@ sub chkconfig { if (($distro =~ /^ubuntu/) && ($version <= 8)) { $daemon{'cups'} = 'cupsys'; } - } elsif ($distro =~ /^(?:fedora)(\d+)/) { + } elsif ($distro =~ /^fedora(\d+)/) { my $version = $1; if ($version >= 15) { $uses_systemctl{'ntp'} = 1; @@ -649,17 +656,25 @@ sub chkfirewall { sub chkapache { my ($distro,$instdir) = @_; my $fixapache = 1; - if ($distro =~ /^(debian|ubuntu)/) { + if ($distro =~ /^(debian|ubuntu)(\d+)$/) { + my $distname = $1; + my $version = $2; if (!-e "$instdir/debian-ubuntu/loncapa") { $fixapache = 0; print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n"; - } elsif ((-e "/etc/apache2/sites-available/loncapa") && (-e "$instdir/debian-ubuntu/loncapa")) { - if (open(PIPE, "diff --brief $instdir/debian-ubuntu/loncapa /etc/apache2/sites-available/loncapa |")) { - my $diffres = ; - close(PIPE); - chomp($diffres); - unless ($diffres) { - $fixapache = 0; + } else { + my $configfile = "/etc/apache2/sites-available/loncapa"; + if (($distname eq 'ubuntu') && ($version > 12)) { + $configfile = "/etc/apache2/conf-available/loncapa"; + } + if (-e $configfile) { + if (open(PIPE, "diff --brief $instdir/debian-ubuntu/loncapa /etc/apache2/sites-available/loncapa |")) { + my $diffres = ; + close(PIPE); + chomp($diffres); + unless ($diffres) { + $fixapache = 0; + } } } } @@ -1313,7 +1328,7 @@ if ($callsub{'apache'}) { if ($distro =~ /^(suse|sles)/) { ©_apache2_suseconf($instdir); } elsif ($distro =~ /^(debian|ubuntu)/) { - ©_apache2_debconf($instdir); + ©_apache2_debconf($instdir,$distro); } else { ©_httpd_conf($instdir,$distro); } @@ -1776,19 +1791,7 @@ sub copy_httpd_conf { ######################################################### sub copy_apache2_debconf { - my ($instdir) = @_; - print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default symlink'")."\n"); - my $apache2_sites_enabled_dir = '/etc/apache2/sites-enabled'; - my $apache2_sites_available_dir = '/etc/apache2/sites-available'; - if (-l "$apache2_sites_enabled_dir/000-default") { - unlink("$apache2_sites_enabled_dir/000-default"); - } - if (-e "$apache2_sites_available_dir/loncapa") { - copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original"); - } - copy("$instdir/debian-ubuntu/loncapa","$apache2_sites_available_dir/loncapa"); - chmod(0444,"$apache2_sites_available_dir/loncapa"); - symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default"); + my ($instdir,$distro) = @_; my $apache2_mods_enabled_dir = '/etc/apache2/mods-enabled'; my $apache2_mods_available_dir = '/etc/apache2/mods-available'; foreach my $module ('headers.load','expires.load') { @@ -1797,6 +1800,39 @@ sub copy_apache2_debconf { print_and_log(&mt('Enabling "[_1]" Apache module.',$module)."\n"); } } + my $apache2_sites_enabled_dir = '/etc/apache2/sites-enabled'; + my $apache2_sites_available_dir = '/etc/apache2/sites-available'; + my $defaultconfig = "$apache2_sites_enabled_dir/000-default"; + my ($distname,$version); + if ($distro =~ /^(debian|ubuntu)(\d+)$/) { + $distname = $1; + $version = $2; + } + if (($distname eq 'ubuntu') && ($version > 12)) { + $defaultconfig = "$apache2_sites_enabled_dir/000-default.conf"; + } + if (-l $defaultconfig) { + unlink($defaultconfig); + } + if (($distname eq 'ubuntu') && ($version > 12)) { + print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from conf-enabled.',"'apache2'","'/etc/apache2/conf-available'","'loncapa symlink'")."\n"); + my $apache2_conf_enabled_dir = '/etc/apache2/conf-enabled'; + my $apache2_conf_available_dir = '/etc/apache2/conf-available'; + if (-e "$apache2_conf_available_dir/loncapa") { + copy("$apache2_conf_available_dir/loncapa","$apache2_conf_available_dir/loncapa.original"); + } + copy("$instdir/debian-ubuntu/loncapa","$apache2_conf_available_dir/loncapa"); + chmod(0444,"$apache2_conf_available_dir/loncapa"); + symlink("$apache2_conf_available_dir/loncapa","$apache2_conf_enabled_dir/loncapa.conf"); + } else { + print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default symlink'")."\n"); + if (-e "$apache2_sites_available_dir/loncapa") { + copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original"); + } + copy("$instdir/debian-ubuntu/loncapa","$apache2_sites_available_dir/loncapa"); + chmod(0444,"$apache2_sites_available_dir/loncapa"); + symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default"); + } print_and_log("\n"); }