File:
[LON-CAPA] /
doc /
loncapafiles /
webserver.piml
Revision
1.19:
download - view:
text,
annotated -
select for diffs
Mon Jan 23 19:36:03 2006 UTC (18 years, 7 months ago) by
raeburn
Branches:
MAIN
CVS tags:
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
HEAD
SuSE and SLES distros were still looking for httpd.conf in /etc/httpd/conf. This should stop that. Also SuSE/SLES were finding DocumentRoot in VirtualHost and reporting spurious error. No longer do.
<!DOCTYPE piml PUBLIC "-//TUX/DTD piml 1.0 Final//EN"
"http://lpml.sourceforge.net/DTD/piml.dtd">
<!-- webserver.piml -->
<!-- $Id: webserver.piml,v 1.19 2006/01/23 19:36:03 raeburn Exp $ -->
<!--
Copyright Michigan State University Board of Trustees
This file is part of the LearningOnline Network with CAPA (LON-CAPA).
LON-CAPA is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
LON-CAPA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with LON-CAPA; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
/home/httpd/html/adm/gpl.txt
http://www.lon-capa.org/
-->
<!-- Default values must be defined before specific values. -->
<!-- If no 'dist' attribute is specified, then it is always installed. -->
<!-- If 'dist' attribute is set to 'default', then the specification. -->
<!-- is accepted if an alternative distribution is not requested or not -->
<!-- defined. -->
<piml>
<targetroot>/</targetroot>
<specialnotices>
<specialnotice>
</specialnotice>
</specialnotices>
<files>
<file>
<target dist='default'>/etc/httpd/conf/httpd.conf</target>
<note>This is for Apache 1.X for Red Hat and Fedora distributions</note>
<dependencies dist='default'>
/etc/httpd/conf/httpd.conf
</dependencies>
<perlscript mode='fg' dist="default">
# Generated from doc/loncapafiles/webserver.piml
unless (-e "<TARGET />") {
print '**** ERROR! /etc/httpd/conf/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.
$flag=0;
open(IN,'<<TARGET />');
while (<IN>) {
if (/^\s*Include\s+conf\/loncapa_apache.conf/) {
$flag=1;
}
}
close(IN);
unless ($flag==1) {
open(OUT,'>><TARGET />');
print(OUT 'Include conf/loncapa_apache.conf'."\n");
close(OUT);
}
# Remove loncapa.conf inclusion from httpd.conf if present.
$flag=0;
open(IN,'<<TARGET />');
while (<IN>) {
if (/^\s*Include\s+conf\/loncapa.conf/) {
$flag=1;
}
}
close(IN);
$in='';
if ($flag==1) {
open(IN,'<<TARGET />');
while(<IN>) {
$in.=$_ unless /^\s*Include\s+conf\/loncapa.conf/;
}
close(IN);
open(OUT,'><TARGET />');
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,'<<TARGET />');
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");
}
}
</perlscript>
<perlscript mode='fg' dist="suse9.2 suse9.3 sles9">
</perlscript>
<target dist='suse9.2 suse9.3 sles9'>/etc/httpd/httpd.conf</target>
<note>This is for Apache 1.X for SuSE distributions</note>
<dependencies dist='suse9.2 suse9.3 sles9'>
/etc/httpd/httpd.conf
</dependencies>
<perlscript mode='fg' dist='suse9.2 suse9.3 sles9'>
# Generated from doc/loncapafiles/webserver.piml
# Trying to check for overlapping DocumentRoot or ScriptAlias definitions.
unless (-e "<TARGET />") {
print '**** ERROR **** /etc/httpd/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.
$flag=0;
open(IN,'<<TARGET />');
while (<IN>) {
if (/^\s*Include\s+conf\/loncapa_apache.conf/) {
$flag=1;
}
}
close(IN);
unless ($flag==1) {
open(OUT,'>><TARGET />');
print(OUT 'Include conf/loncapa_apache.conf'."\n");
close(OUT);
}
# Remove loncapa.conf inclusion from httpd.conf if present.
$flag=0;
open(IN,'<<TARGET />');
while (<IN>) {
if (/^\s*Include\s+conf\/loncapa.conf/) {
$flag=1;
}
}
close(IN);
$in='';
if ($flag==1) {
open(IN,'<<TARGET />');
while(<IN>) {
$in.=$_ unless /^\s*Include\s+conf\/loncapa.conf/;
}
close(IN);
open(OUT,'><TARGET />');
print(OUT $in."\n");
close(OUT);
}
# Checking for overlapping ScriptAlias and DocumentRoot definitions.
$scriptalias_flag=0;
$documentroot_flag=0;
my $scriptalias;
my $documentroot;
my $virtualhost = 0;
open(IN,'<<TARGET />');
while (<IN>) {
if (m!^\s*ScriptAlias\s+/cgi-bin/\s+(.*)$!) {
$scriptalias = $1;
if ($scriptalias !~ m!home/httpd/cgi-bin!) {
$scriptalias_flag = 1;
}
}
if (m!^<VirtualHost[^>]*>\s*$!) {
$virtualhost = 1;
}
if (m!^</VirtualHost>\s*$!) {
$virtualhost = 0;
}
if (m!^\s*DocumentRoot\s+(.*)$!) {
$documentroot = $1;
if ($documentroot !~ m!home/httpd/html!) {
if (!$virtualhost) {
$documentroot_flag = 1;
}
}
}
}
close(IN);
if ($scriptalias_flag==1) {
print('**** ERROR **** /etc/httpd/httpd.conf has an overlapping definition of '.
'ScriptAlias (it is incorrectly set to '.$scriptalias.').'."\n".
'This conflicts with conf/loncapa_apache.conf.'."\n");
}
if ($documentroot_flag==1) {
print('**** ERROR **** /etc/httpd/httpd.conf has an overlapping definition of '.
'DocumentRoot (it is incorrectly set to '.$documentroot.').'."\n".
'This conflicts with conf/loncapa_apache.conf.'."\n");
}
}
</perlscript>
</file>
</files>
</piml>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>