Annotation of doc/loncapafiles/webserver.piml, revision 1.19
1.8 harris41 1: <!DOCTYPE piml PUBLIC "-//TUX/DTD piml 1.0 Final//EN"
2: "http://lpml.sourceforge.net/DTD/piml.dtd">
1.1 harris41 3: <!-- webserver.piml -->
4:
1.19 ! raeburn 5: <!-- $Id: webserver.piml,v 1.18 2005/10/10 02:30:46 raeburn Exp $ -->
1.1 harris41 6:
7: <!--
8:
9: Copyright Michigan State University Board of Trustees
10:
11: This file is part of the LearningOnline Network with CAPA (LON-CAPA).
12:
13: LON-CAPA is free software; you can redistribute it and/or modify
14: it under the terms of the GNU General Public License as published by
15: the Free Software Foundation; either version 2 of the License, or
16: (at your option) any later version.
17:
18: LON-CAPA is distributed in the hope that it will be useful,
19: but WITHOUT ANY WARRANTY; without even the implied warranty of
20: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21: GNU General Public License for more details.
22:
23: You should have received a copy of the GNU General Public License
24: along with LON-CAPA; if not, write to the Free Software
25: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26:
27: /home/httpd/html/adm/gpl.txt
28:
29: http://www.lon-capa.org/
30:
31: -->
32:
33: <!-- Default values must be defined before specific values. -->
34: <!-- If no 'dist' attribute is specified, then it is always installed. -->
35: <!-- If 'dist' attribute is set to 'default', then the specification. -->
36: <!-- is accepted if an alternative distribution is not requested or not -->
37: <!-- defined. -->
38:
39: <piml>
1.6 harris41 40: <targetroot>/</targetroot>
1.2 harris41 41: <specialnotices>
42: <specialnotice>
43: </specialnotice>
44: </specialnotices>
1.1 harris41 45: <files>
46: <file>
47: <target dist='default'>/etc/httpd/conf/httpd.conf</target>
1.18 raeburn 48: <note>This is for Apache 1.X for Red Hat and Fedora distributions</note>
1.1 harris41 49: <dependencies dist='default'>
50: /etc/httpd/conf/httpd.conf
51: </dependencies>
1.19 ! raeburn 52: <perlscript mode='fg' dist="default">
1.11 harris41 53: # Generated from doc/loncapafiles/webserver.piml
1.1 harris41 54: unless (-e "<TARGET />") {
1.17 matthew 55: print '**** ERROR! /etc/httpd/conf/httpd.conf should exist! Are you missing the Apache '.
1.13 harris41 56: 'software package?';
1.11 harris41 57: exit(1);
1.1 harris41 58: }
59: else {
1.12 harris41 60: # Append loncapa_apache.conf inclusion to httpd.conf if not present.
1.9 harris41 61: $flag=0;
1.11 harris41 62: open(IN,'<<TARGET />');
1.9 harris41 63: while (<IN>) {
64: if (/^\s*Include\s+conf\/loncapa_apache.conf/) {
65: $flag=1;
66: }
67: }
1.11 harris41 68: close(IN);
1.9 harris41 69: unless ($flag==1) {
1.11 harris41 70: open(OUT,'>><TARGET />');
71: print(OUT 'Include conf/loncapa_apache.conf'."\n");
72: close(OUT);
1.9 harris41 73: }
1.12 harris41 74: # Remove loncapa.conf inclusion from httpd.conf if present.
1.11 harris41 75: $flag=0;
76: open(IN,'<<TARGET />');
77: while (<IN>) {
78: if (/^\s*Include\s+conf\/loncapa.conf/) {
79: $flag=1;
80: }
81: }
82: close(IN);
83: $in='';
84: if ($flag==1) {
85: open(IN,'<<TARGET />');
86: while(<IN>) {
87: $in.=$_ unless /^\s*Include\s+conf\/loncapa.conf/;
88: }
89: close(IN);
90: open(OUT,'><TARGET />');
91: print(OUT $in."\n");
92: close(OUT);
1.13 harris41 93: }
1.18 raeburn 94:
95: # Checking for overlapping ScriptAlias and DocumentRoot definitions.
96: $scriptalias_flag=0;
97: $documentroot_flag=0;
98: my $scriptalias;
99: my $documentroot;
100: open(IN,'<<TARGET />');
101: while (<IN>) {
102: if (m!^\s*ScriptAlias\s+/cgi-bin/\s+(.*)$!) {
103: $scriptalias = $1;
104: if ($scriptalias !~ m!home/httpd/cgi-bin!) {
105: $scriptalias_flag = 1;
106: }
107: }
108: if (m!^\s*DocumentRoot\s+(.*)$!) {
109: $documentroot = $1;
110: if ($documentroot !~ m!home/httpd/html!) {
111: $documentroot_flag = 1;
112: }
113: }
114: }
115: close(IN);
116: if ($scriptalias_flag==1) {
117: print('**** ERROR **** /etc/httpd/conf/httpd.conf has an overlapping definition of '.
118: 'ScriptAlias (it is incorrectly set to '.$scriptalias.').'."\n".
119: 'This conflicts with loncapa_apache.conf.'."\n");
120: }
121: if ($documentroot_flag==1) {
122: print('**** ERROR **** /etc/httpd/conf/httpd.conf has an overlapping definition of '.
123: 'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n".
124: 'This conflicts with loncapa_apache.conf.'."\n");
125: }
1.13 harris41 126: }
127: </perlscript>
1.19 ! raeburn 128: <perlscript mode='fg' dist="suse9.2 suse9.3 sles9">
! 129: </perlscript>
1.18 raeburn 130: <target dist='suse9.2 suse9.3 sles9'>/etc/httpd/httpd.conf</target>
131: <note>This is for Apache 1.X for SuSE distributions</note>
132: <dependencies dist='suse9.2 suse9.3 sles9'>
133: /etc/httpd/httpd.conf
1.13 harris41 134: </dependencies>
1.18 raeburn 135: <perlscript mode='fg' dist='suse9.2 suse9.3 sles9'>
1.13 harris41 136: # Generated from doc/loncapafiles/webserver.piml
137: # Trying to check for overlapping DocumentRoot or ScriptAlias definitions.
138: unless (-e "<TARGET />") {
1.18 raeburn 139: print '**** ERROR **** /etc/httpd/httpd.conf should exist! Are you missing the Apache '.
1.13 harris41 140: 'software package?';
141: exit(1);
142: }
143: else {
144: # Append loncapa_apache.conf inclusion to httpd.conf if not present.
1.18 raeburn 145: $flag=0;
146: open(IN,'<<TARGET />');
147: while (<IN>) {
148: if (/^\s*Include\s+conf\/loncapa_apache.conf/) {
149: $flag=1;
150: }
151: }
152: close(IN);
153: unless ($flag==1) {
154: open(OUT,'>><TARGET />');
155: print(OUT 'Include conf/loncapa_apache.conf'."\n");
156: close(OUT);
157: }
158: # Remove loncapa.conf inclusion from httpd.conf if present.
159: $flag=0;
160: open(IN,'<<TARGET />');
161: while (<IN>) {
162: if (/^\s*Include\s+conf\/loncapa.conf/) {
163: $flag=1;
164: }
165: }
166: close(IN);
167: $in='';
168: if ($flag==1) {
169: open(IN,'<<TARGET />');
170: while(<IN>) {
171: $in.=$_ unless /^\s*Include\s+conf\/loncapa.conf/;
172: }
173: close(IN);
174: open(OUT,'><TARGET />');
175: print(OUT $in."\n");
176: close(OUT);
177: }
178:
179: # Checking for overlapping ScriptAlias and DocumentRoot definitions.
1.13 harris41 180: $scriptalias_flag=0;
181: $documentroot_flag=0;
182: my $scriptalias;
183: my $documentroot;
1.19 ! raeburn 184: my $virtualhost = 0;
1.13 harris41 185: open(IN,'<<TARGET />');
1.19 ! raeburn 186: while (<IN>) {
1.13 harris41 187: if (m!^\s*ScriptAlias\s+/cgi-bin/\s+(.*)$!) {
188: $scriptalias = $1;
189: if ($scriptalias !~ m!home/httpd/cgi-bin!) {
190: $scriptalias_flag = 1;
191: }
192: }
1.19 ! raeburn 193: if (m!^<VirtualHost[^>]*>\s*$!) {
! 194: $virtualhost = 1;
! 195: }
! 196: if (m!^</VirtualHost>\s*$!) {
! 197: $virtualhost = 0;
! 198: }
1.13 harris41 199: if (m!^\s*DocumentRoot\s+(.*)$!) {
200: $documentroot = $1;
201: if ($documentroot !~ m!home/httpd/html!) {
1.19 ! raeburn 202: if (!$virtualhost) {
! 203: $documentroot_flag = 1;
! 204: }
1.13 harris41 205: }
206: }
207: }
208: close(IN);
209: if ($scriptalias_flag==1) {
1.18 raeburn 210: print('**** ERROR **** /etc/httpd/httpd.conf has an overlapping definition of '.
1.13 harris41 211: 'ScriptAlias (it is incorrectly set to '.$scriptalias.').'."\n".
1.18 raeburn 212: 'This conflicts with conf/loncapa_apache.conf.'."\n");
1.13 harris41 213: }
214: if ($documentroot_flag==1) {
1.18 raeburn 215: print('**** ERROR **** /etc/httpd/httpd.conf has an overlapping definition of '.
1.13 harris41 216: 'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n".
1.18 raeburn 217: 'This conflicts with conf/loncapa_apache.conf.'."\n");
1.11 harris41 218: }
1.3 harris41 219: }
1.1 harris41 220: </perlscript>
221: </file>
222: </files>
223: </piml>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>