#!/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` mkdir -p $1 root=`readlink -f $1` host=$2 port=`$here/httpd-addr port $3` pport=`$here/httpd-addr pport $3` listen=`$here/httpd-addr listen $3` vhost=`$here/httpd-addr vhost $3` mkdir -p $4 htdocs=`readlink -f $4` user=`id -un` group=`id -gn` modules_prefix=`cat $here/httpd-modules.prefix` 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 logio_module ${modules_prefix}/modules/mod_logio.so LoadModule usertrack_module ${modules_prefix}/modules/mod_usertrack.so LoadModule vhost_alias_module ${modules_prefix}/modules/mod_vhost_alias.so LoadModule cgi_module ${modules_prefix}/modules/mod_cgi.so LoadModule unixd_module ${modules_prefix}/modules/mod_unixd.so LoadModule session_module ${modules_prefix}/modules/mod_session.so #LoadModule session_crypto_module ${modules_prefix}/modules/mod_session_crypto.so LoadModule session_cookie_module ${modules_prefix}/modules/mod_session_cookie.so LoadModule slotmem_shm_module ${modules_prefix}/modules/mod_slotmem_shm.so LoadModule ratelimit_module ${modules_prefix}/modules/mod_ratelimit.so LoadModule reqtimeout_module ${modules_prefix}/modules/mod_reqtimeout.so LoadModule mod_tuscany_ssltunnel $here/libmod_tuscany_ssltunnel.so LoadModule mod_tuscany_openauth $here/libmod_tuscany_openauth.so # Basic security precautions User $user Group $group ServerSignature Off ServerTokens Prod Timeout 45 LimitRequestBody 1048576 HostNameLookups Off # Log HTTP requests # [timestamp] [access] remote-host remote-ident remote-user "request-line" # status response-size "referrer" "user-agent" "user-track" local-IP # virtual-host response-time bytes-received bytes-sent LogLevel info ErrorLog $root/logs/error_log LogFormat "[%{%a %b %d %H:%M:%S %Y}t] [access] %h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{cookie}n\" %A %V %D %I %O" combined CustomLog $root/logs/access_log combined CookieTracking on CookieName TuscanyVisitorId # Configure Mime types TypesConfig $here/conf/mime.types # Set default document root DocumentRoot $htdocs DirectoryIndex index.html # Protect server files Options None AllowOverride None Require all denied # Configure authentication Include conf/auth.conf # Allow access to public locations AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted AuthType None Require all granted # Listen on HTTP port Listen $listen # Setup HTTP virtual host ServerName http://$host:$pport RewriteEngine on RewriteCond %{HTTP_HOST} !^$host [NC] RewriteRule .* http://$host:$pport%{REQUEST_URI} [R,L] Include conf/svhost.conf EOF # Generate auth configuration cat >$root/conf/auth.conf < Options FollowSymLinks Require all granted # Allow access to root location Options FollowSymLinks Require all granted EOF # Generate vhost configuration cat >$root/conf/vhost.conf <$root/conf/svhost.conf <$root/conf/dvhost.conf <