#!/bin/sh # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # Generate a minimal HTTPD configuration here=`readlink -f $0`; here=`dirname $here` root=`readlink -f $1` host=$2 port=`echo $3 | awk -F "/" '{ print $1 }'` pport=`echo $3 | awk -F "/" '{ print $2 }'` if [ "$pport" = "" ]; then pport=$port fi htdocs=`readlink -f $4` user=`id -un` group=`id -gn` modules_prefix=`cat $here/httpd-modules.prefix` vhost=$5 mkdir -p $root mkdir -p $root/logs mkdir -p $root/conf cat >$root/conf/httpd.conf < LoadModule log_config_module ${modules_prefix}/modules/mod_log_config.so LoadModule vhost_alias_module ${modules_prefix}/modules/mod_vhost_alias.so # Basic security precautions User $user Group $group ServerSignature Off ServerTokens Prod Timeout 45 LimitRequestBody 1048576 HostNameLookups Off # Logging ErrorLog $root/logs/error_log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined CustomLog $root/logs/access_log combined LogLevel warn # Configure Mime types DefaultType text/plain TypesConfig $here/conf/mime.types # Set document root DocumentRoot $htdocs DirectoryIndex index.html # Protect server files Options None AllowOverride None Order deny,allow Deny from all Order deny,allow Deny from all Satisfy Any # Allow access to document root Options FollowSymLinks Allow from all # Allow access to service components Options FollowSymLinks Allow from all # Setup HTTP virtual hosts Listen $port ServerName http://$host:$pport UseCanonicalName Off EOF # Generate mass dynamic virtual hosting configuration if [ "$vhost" = "vhost" ]; then cat >>$root/conf/httpd.conf < ServerName http://vhost.$host:$pport ServerAlias *.$host UseCanonicalName Off VirtualDocumentRoot $htdocs/domains/%1/ # Isolate virtual host based requests MaxRequestsPerChild 1 EOF fi