/ /etc/httpd/conf/httpd.conf /etc/httpd/httpd.conf /etc/apache2/default-server.conf /etc/apache2/sites-available/loncapa This is for Apache 1.X for Red Hat 4ES, Fedora 2, 3 and 4, SusSE 9.2 and 9.3, and SLES 9 distributions. This is for Apache 2.X for Fedora 5, Red Hat 5, CentOS 5, Scientific Linux 5, SuSE 10.1, SLES 10, Debian 5, Ubuntu LTS 8 and later distributions /etc/httpd/conf/httpd.conf /etc/httpd/httpd.conf /etc/apache2/sites-available/loncapa /etc/apache2/default-server.conf # Generated from doc/loncapafiles/webserver.piml unless (-e "") { print '**** ERROR! should exist! Are you missing the Apache '. 'software package?'; exit(1); } else { # Append loncapa_apache.conf inclusion to httpd.conf # (or sites-available/loncapa) if not present. $flag=0; open(IN,'<'); while (<IN>) { if (/^\s*Include\s+conf\/loncapa_apache.conf/) { $flag=1; } } close(IN); unless ($flag==1) { open(OUT,'>>'); print(OUT 'Include conf/loncapa_apache.conf'."\n"); close(OUT); } # Remove loncapa.conf inclusion from httpd.conf if present. $flag=0; open(IN,'<'); while (<IN>) { if (/^\s*Include\s+conf\/loncapa.conf/) { $flag=1; } } close(IN); $in=''; if ($flag==1) { open(IN,'<'); while(<IN>) { $in.=$_ unless /^\s*Include\s+conf\/loncapa.conf/; } close(IN); open(OUT,'>'); print(OUT $in."\n"); close(OUT); } # Checking for overlapping ScriptAlias and DocumentRoot definitions. $scriptalias_flag=0; $documentroot_flag=0; my $scriptalias; my $documentroot; open(IN,'<'); while (<IN>) { if (m!^\s*ScriptAlias\s+/cgi-bin/\s+(.*)$!) { $scriptalias = $1; if ($scriptalias !~ m!home/httpd/cgi-bin!) { $scriptalias_flag = 1; } } if (m!^\s*DocumentRoot\s+(.*)$!) { $documentroot = $1; if ($documentroot !~ m!home/httpd/html!) { $documentroot_flag = 1; } } } close(IN); if ($scriptalias_flag==1) { my $conffile = '/etc/httpd/conf/httpd.conf'; if ('' eq 'suse9.2' || '' eq 'suse9.3' || '' eq 'sles9') { $conffile = '/etc/httpd/httpd.conf'; } elsif ('' =~ /^(suse|sles)/) { $conffile = '/etc/apache2/default-server.conf'; } elsif ('' =~ /^(debian|ubuntu)/) { $conffile = '/etc/apache2/sites-available/loncapa'; } print('**** ERROR **** '.$conffile.' has an overlapping definition of '. 'ScriptAlias (it is incorrectly set to '.$scriptalias.').'."\n". 'This conflicts with loncapa_apache.conf.'."\n"); } if ($documentroot_flag==1) { print('**** ERROR **** '.$conffile.' has an overlapping definition of '. 'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n". 'This conflicts with loncapa_apache.conf.'."\n"); } # Checking for rewrites of http:// to https:// my $rewrite_dir = '/etc/httpd/conf/rewrites'; my $curr_rewrite = '/etc/httpd/conf/loncapa_rewrite.conf'; if ('' eq 'suse9.2' || '' eq 'suse9.3' || '' eq 'sles9') { $rewrite_dir = '/etc/httpd/rewrites/'; $curr_rewrite = '/etc/httpd/loncapa_rewrite.conf'; } elsif ('' =~ /^(suse|sles|debian|ubuntu)/) { $rewrite_dir = '/etc/apache2/rewrites'; $curr_rewrite = '/etc/apache2/loncapa_rewrite.conf'; } my $rewrite_off = $rewrite_dir.'/loncapa_rewrite_off.conf'; my $rewrite_on = $rewrite_dir.'/loncapa_rewrite_on.conf'; if (!-e $curr_rewrite) { system("cp $rewrite_off $curr_rewrite"); chmod(0644, $curr_rewrite); } else { my ($not_rewrite_on,$not_rewrite_off); if (open(PIPE, "diff --brief $rewrite_off $curr_rewrite |")) { my $diffres = <PIPE> ; close(PIPE); chomp($diffres); if ($diffres) { $not_rewrite_off = 1; } } if (open(PIPE, "diff --brief $rewrite_on $curr_rewrite |")) { my $diffres = <PIPE> ; close(PIPE); chomp($diffres); if ($diffres) { $not_rewrite_on = 1; } } unless ($not_rewrite_off || $not_rewrite_on) { print('**** WARNING **** '.$curr_rewrite.' does not match '. 'either: '.$rewrite_on.' - the file used to enable rewriting '. 'of requests for http:// to https:// or: '.$rewrite_off. ' - the file used to disable such rewriting'."\n\n". 'This may be because '. $curr_rewrite.' has been '. 'previously customized, or it may be because of a change '. 'to the files in '.$rewrite_dir."\n"); } } }