git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@980009 13f79535-47bb-0310-9956-ffa450edef68
155 lines
4.5 KiB
Bash
Executable file
155 lines
4.5 KiB
Bash
Executable file
#!/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=`echo $3 | awk -F "/" '{ print $1 }'`
|
|
pport=`echo $3 | awk -F "/" '{ print $2 }'`
|
|
if [ "$pport" = "" ]; then
|
|
pport=$port
|
|
fi
|
|
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 <<EOF
|
|
# Generated by: httpd-conf $*
|
|
# Apache HTTPD server configuration
|
|
|
|
# Main server name
|
|
ServerName http://$host:$pport
|
|
PidFile $root/logs/httpd.pid
|
|
|
|
# Minimal set of modules
|
|
LoadModule alias_module ${modules_prefix}/modules/mod_alias.so
|
|
LoadModule authn_file_module ${modules_prefix}/modules/mod_authn_file.so
|
|
LoadModule authn_default_module ${modules_prefix}/modules/mod_authn_default.so
|
|
LoadModule authz_host_module ${modules_prefix}/modules/mod_authz_host.so
|
|
LoadModule authz_groupfile_module ${modules_prefix}/modules/mod_authz_groupfile.so
|
|
LoadModule authz_user_module ${modules_prefix}/modules/mod_authz_user.so
|
|
LoadModule authz_default_module ${modules_prefix}/modules/mod_authz_default.so
|
|
LoadModule auth_basic_module ${modules_prefix}/modules/mod_auth_basic.so
|
|
LoadModule filter_module ${modules_prefix}/modules/mod_filter.so
|
|
LoadModule proxy_module ${modules_prefix}/modules/mod_proxy.so
|
|
LoadModule proxy_connect_module ${modules_prefix}/modules/mod_proxy_connect.so
|
|
LoadModule proxy_http_module ${modules_prefix}/modules/mod_proxy_http.so
|
|
LoadModule proxy_balancer_module ${modules_prefix}/modules/mod_proxy_balancer.so
|
|
LoadModule ssl_module ${modules_prefix}/modules/mod_ssl.so
|
|
LoadModule mime_module ${modules_prefix}/modules/mod_mime.so
|
|
LoadModule status_module ${modules_prefix}/modules/mod_status.so
|
|
LoadModule asis_module ${modules_prefix}/modules/mod_asis.so
|
|
LoadModule negotiation_module ${modules_prefix}/modules/mod_negotiation.so
|
|
LoadModule dir_module ${modules_prefix}/modules/mod_dir.so
|
|
LoadModule rewrite_module ${modules_prefix}/modules/mod_rewrite.so
|
|
LoadModule setenvif_module ${modules_prefix}/modules/mod_setenvif.so
|
|
<IfModule !log_config_module>
|
|
LoadModule log_config_module ${modules_prefix}/modules/mod_log_config.so
|
|
</IfModule>
|
|
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
|
|
<Directory />
|
|
Options None
|
|
AllowOverride None
|
|
Order deny,allow
|
|
Deny from all
|
|
</Directory>
|
|
<FilesMatch "^\.ht">
|
|
Order deny,allow
|
|
Deny from all
|
|
Satisfy Any
|
|
</FilesMatch>
|
|
|
|
# Allow access to document root
|
|
<Directory "$htdocs">
|
|
Options FollowSymLinks
|
|
Allow from all
|
|
</Directory>
|
|
|
|
# Allow access to service components
|
|
<Location />
|
|
Options FollowSymLinks
|
|
Order deny,allow
|
|
Allow from all
|
|
</Location>
|
|
|
|
# Setup HTTP virtual host
|
|
Listen $port
|
|
|
|
<VirtualHost *:$port>
|
|
ServerName http://$host:$pport
|
|
|
|
Include conf/svhost.conf
|
|
</VirtualHost>
|
|
|
|
EOF
|
|
|
|
# Generate vhost configuration
|
|
cat >$root/conf/vhost.conf <<EOF
|
|
# Generated by: httpd-conf $*
|
|
# Virtual host configuration
|
|
UseCanonicalName Off
|
|
|
|
EOF
|
|
|
|
cat >$root/conf/svhost.conf <<EOF
|
|
# Generated by: httpd-conf $*
|
|
# Static virtual host configuration
|
|
Include conf/vhost.conf
|
|
|
|
EOF
|
|
|
|
cat >$root/conf/dvhost.conf <<EOF
|
|
# Generated by: httpd-conf $*
|
|
# Mass dynamic virtual host configuration
|
|
Include conf/vhost.conf
|
|
|
|
EOF
|
|
|