blob: 050de3e83c2dac3acf8d3542838c0c5511701031 [file] [log] [blame]
#!/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.
# For this module to work, add the app domains to your /etc/hosts as follows:
# 127.0.0.1 sca-store.com abc.sca-store.com xyz.sca-store.com ...
here=`echo "import os; print os.path.realpath('$0')" | python`; here=`dirname $here`
jsprefix=`echo "import os; print os.path.realpath('$here/../js')" | python`
# Create SSL certificates
../../modules/http/ssl-ca-conf tmp sca-store.com
../../modules/http/ssl-cert-conf tmp sca-store.com server
../../modules/http/ssl-cert-conf tmp *.sca-store.com vhost
# Configure server with virtual hosting
../../modules/http/httpd-conf tmp sca-store.com 8090 htdocs
../../modules/http/httpd-event-conf tmp
../../modules/http/vhost-conf tmp apps htdocs
../../modules/http/httpd-ssl-conf tmp 8453
../../modules/http/vhost-ssl-conf tmp
# Configure authentication
../../modules/http/open-auth-conf tmp
../../modules/http/passwd-auth-conf tmp john john
../../modules/http/passwd-auth-conf tmp jane jane
../../modules/http/passwd-auth-conf tmp admin admin
# Configure mod-security
../../modules/http/mod-security-conf tmp
# Configure Python component support
../../modules/server/server-conf tmp
../../modules/python/python-conf tmp
# Configure error pages
cat >>tmp/conf/svhost-ssl.conf <<EOF
# Error pages
ErrorDocument 404 /notfound/
ErrorDocument 401 /notauth/
ErrorDocument 500 /oops/
EOF
# Configure app home pages
cat >>tmp/conf/dvhost-ssl.conf <<EOF
# App error pages
ErrorDocument 404 /notfound/
ErrorDocument 401 /notauth/
ErrorDocument 500 /oops/
# Redirect www to main home page
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.sca-store\.com [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://sca-store.com:%{SERVER_PORT}%{REQUEST_URI} [L,R]
RewriteCond %{HTTP_HOST} ^www\.sca-store\.com [NC]
RewriteRule .* https://sca-store.com%{REQUEST_URI} [L,R]
EOF
cat >>tmp/conf/dvhost.conf <<EOF
# Redirect www to main home page
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.sca-store\.com [NC]
RewriteCond %{SERVER_PORT} !^80$
RewriteRule .* http://sca-store.com:%{SERVER_PORT}%{REQUEST_URI} [L,R]
RewriteCond %{HTTP_HOST} ^www\.sca-store\.com [NC]
RewriteRule .* http://sca-store.com%{REQUEST_URI} [L,R]
EOF
# Configure SCA contributions
cat >>tmp/conf/httpd.conf <<EOF
# Configure SCA Composite
SCAContribution `pwd`/
SCAComposite edit.composite
# Configure SCA Composite for mass dynamic virtual Hosting
SCAVirtualContribution `pwd`/apps/
SCAVirtualComposite app.composite
EOF
# Configure main aliases
cat >>tmp/conf/httpd.conf <<EOF
Alias /home/home.png $here/htdocs/home/home.png
Alias /home/home.b64 $here/htdocs/home/home.b64
EOF
# Create app links and sub-directories if needed
./mkapplinks
# Configure app aliases
cat >>tmp/conf/dvhost-ssl.conf <<EOF
# Configure aliases
Alias /cache-manifest.cmf $here/htdocs/app/cache-manifest.cmf
Alias /data $here/htdocs/data
Alias /favicon.ico $here/htdocs/favicon.ico
Alias /footconfig.js $here/htdocs/footconfig.js
Alias /frame.html $here/htdocs/app/frame.html
Alias /headconfig.js $here/htdocs/headconfig.js
Alias /index.html $here/htdocs/app/index.html
Alias /login $here/htdocs/login
Alias /logout $here/htdocs/logout
Alias /notauth $here/htdocs/notauth
Alias /notfound $here/htdocs/notfound
Alias /notyet $here/htdocs/notyet
Alias /oops $here/htdocs/oops
Alias /public $here/htdocs/public
Alias /robots.txt $here/htdocs/robots.txt
EOF
# Create application database directories
mkdir -p tmp/appdata/filedb
# Start memcached
../../components/cache/memcached-start
# Start server
../../modules/http/httpd-start tmp