[LON-CAPA-cvs] cvs: doc /loncapafiles webserver.piml

harris41 lon-capa-cvs@mail.lon-capa.org
Mon, 13 Jan 2003 22:01:32 -0000


harris41		Mon Jan 13 17:01:32 2003 EDT

  Modified files:              
    /doc/loncapafiles	webserver.piml 
  Log:
  BUG 1114 FIXED; now checks for overlapping/conflicting
  definitions of DocumentRoot and ScriptAlias
  
  
Index: doc/loncapafiles/webserver.piml
diff -u doc/loncapafiles/webserver.piml:1.12 doc/loncapafiles/webserver.piml:1.13
--- doc/loncapafiles/webserver.piml:1.12	Tue Jan  7 14:01:58 2003
+++ doc/loncapafiles/webserver.piml	Mon Jan 13 17:01:32 2003
@@ -3,7 +3,7 @@
 <!-- webserver.piml -->
 <!-- Scott Harrison -->
 
-<!-- $Id: webserver.piml,v 1.12 2003/01/07 19:01:58 harris41 Exp $ -->
+<!-- $Id: webserver.piml,v 1.13 2003/01/13 22:01:32 harris41 Exp $ -->
 
 <!--
 
@@ -54,7 +54,7 @@
 # Generated from doc/loncapafiles/webserver.piml
 unless (-e "<TARGET />") {
   print 'ERROR! httpd.conf should exist! Are you missing the Apache '.
-    'software package';
+    'software package?';
   exit(1);
 }
 else {
@@ -91,6 +91,58 @@
     open(OUT,'&gt;<TARGET />');
     print(OUT $in."\n");
     close(OUT);
+  }
+}
+</perlscript>
+</file>
+<file>
+<target dist='default'>/etc/httpd/conf/httpd.conf</target>
+<note>This is always expected for any version of Apache</note>
+<dependencies dist='default'>
+/etc/httpd/conf/httpd.conf
+</dependencies>
+<perlscript mode='fg'>
+# Generated from doc/loncapafiles/webserver.piml
+# Trying to check for overlapping DocumentRoot or ScriptAlias definitions.
+unless (-e "<TARGET />") {
+  print '**** ERROR **** httpd.conf should exist! Are you missing the Apache '.
+    'software package?';
+  exit(1);
+}
+else {
+  # Append loncapa_apache.conf inclusion to httpd.conf if not present.
+  $scriptalias_flag=0;
+  $documentroot_flag=0;
+  my $scriptalias;
+  my $documentroot;
+  open(IN,'&lt;<TARGET />');
+  while (&lt;IN&gt;) { 
+    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 **** 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 **** httpd.conf has an overlapping definition of '.
+          'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n".
+	  'This conflicts with loncapa_apache.conf.'."\n");
+  }
+  if ($documentroot_flag==1 or $scriptalias_flag==1) {
+    exit(1);
   }
 }
 </perlscript>