--- doc/loncapafiles/webserver.piml 2002/02/05 01:43:24 1.5 +++ doc/loncapafiles/webserver.piml 2006/09/15 21:02:15 1.20 @@ -1,7 +1,8 @@ + - - + -/abc/ +/ @@ -44,112 +45,92 @@ http://www.lon-capa.org/ /etc/httpd/conf/httpd.conf -This is always expected for any version of Apache +/etc/httpd/httpd.conf +/etc/apache2/default-server.conf +This is for Apache 1.X for Red Hat, Fedora 2,3 and 4, and SusSE 9.2, 9.3 and SLES 9 distributions. This is for Apache 2.X for Fedora 5 and SuSE 10.1 and SLES 10 distribtions /etc/httpd/conf/httpd.conf - + +/etc/httpd/httpd.conf + + +/etc/apache2/default-server.conf + + +# Generated from doc/loncapafiles/webserver.piml unless (-e "") { - print 'ERROR! httpd.conf should exist! Are you missing the Apache '. - 'software package'; + print '**** ERROR! should exist! Are you missing the Apache '. + 'software package?'; + exit(1); } else { + # Append loncapa_apache.conf inclusion to httpd.conf if not present. $flag=0; - open IN, "<"; - while (<IN>) { if (/^\s*Include\s+conf\/srm.conf/) { $flag=1; } } - close IN; - unless ($flag==0) { - open OUT,">>"; - print OUT 'Include conf/srm.conf'."\n"; - close OUT; + open(IN,'<'); + while (<IN>) { + if (/^\s*Include\s+conf\/loncapa_apache.conf/) { + $flag=1; + } } - $flag=0; - open IN, "<"; - while (<IN>) { if (/^\s*Include\s+conf\/access.conf/) { $flag=1; } } - close IN; - unless ($flag==0) { - open OUT,">>"; - print OUT 'Include conf/access.conf'."\n"; - close OUT; + 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; - my $eflag=0; - open IN, "<"; - while (<IN>) { + open(IN,'<'); + while (<IN>) { if (/^\s*Include\s+conf\/loncapa.conf/) { - $flag=1; + $flag=1; } } - close IN; - unless ($flag==0) { - open OUT,">>"; - print OUT 'Include conf/loncapa.conf'."\n"; - close OUT; + 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) { + print('**** ERROR **** /etc/httpd/conf/httpd.conf 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 **** /etc/httpd/conf/httpd.conf has an overlapping definition of '. + 'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n". + 'This conflicts with loncapa_apache.conf.'."\n"); } -} - - - -/etc/httpd/conf/access.conf -This may or may not exist on a system depending on the version of -Apache - -/etc/httpd/conf/access.conf - - -unless (-e "") { - print <<END -WARNING! access.conf is not currently present on your system. -This is either due to -* you are missing the Apache software package, -* you have a newer version of Apache that does not - ordinarily install an access.conf -* configuration files are installed in a directory location - different than for -For backwards compatibility, - is being generated. -END -} -my $flag=0; -open IN, "<"; -while (<IN>) { if (/^\s*Include\s+conf\/loncapa.conf/) { $flag=1; } } -close IN; -unless ($flag==0) { -open OUT,">>"; -print OUT 'Include conf/loncapa.conf'."\n"; -close OUT; -} - - - -/etc/httpd/conf/srm.conf -This may or may not exist on a system depending on the version of -Apache - -/etc/httpd/conf/srm.conf - - -unless (-e "") { - print <<END -WARNING! srm.conf is not currently present on your system. -This is either due to -* you are missing the Apache software package, -* you have a newer version of Apache that does not - ordinarily install an srm.conf -* configuration files are installed in a directory location - different than for -For backwards compatibility, - is being generated. -END -} -my $flag=0; -open IN, "<"; -while (<IN>) { if (/^\s*Include\s+conf\/loncapa.conf/) { $flag=1; } } -close IN; -unless ($flag==0) { -open OUT,">>"; -print OUT 'Include conf/loncapa.conf'."\n"; -close OUT; }