blob: daa913e06c660bfaa3b37149ad76a301c099dd65 [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script can be used to set up apache to interact with the devserver.
# This apache server will run on port 8082 and rewrite requests to the
# devserver that aren't stored in the IMAGE_ROOT.
# Usage:
# ./setup_apache.sh -- Sets up using default static directory.
# ./setup_apache.sh DIR -- Sets up apache to serve images from DIR.
DEFAULT_IMAGE_ROOT=/home/chromeos-test/images
APACHE_CONFIG=/etc/apache2
ARCHIVE_ROOT=/var/www
MY_DIR="$(dirname $0)"
codename=$(cat /etc/lsb-release | grep DISTRIB_CODENAME | awk -F '=' '{print $2}')
set -e
main () {
sudo apt-get install apache2
# Copy over configuration data.
mkdir -m 755 -p "${ARCHIVE_ROOT}"
cp -f "${MY_DIR}"/htaccess "${ARCHIVE_ROOT}/.htaccess"
cp -f "${MY_DIR}"/ports.conf "${APACHE_CONFIG}"
cp -f "${MY_DIR}"/devserver "${APACHE_CONFIG}"/sites-available
if [ "$codename" = "trusty" ] ; then
cp -f "${MY_DIR}"/apache2.conf.trusty "${APACHE_CONFIG}"/apache2.conf
else
cp -f "${MY_DIR}"/apache2.conf "${APACHE_CONFIG}"
fi
sudo chmod a+r -R ${ARCHIVE_ROOT}
# Enable configurations.
ln -sf "${APACHE_CONFIG}"/sites-available/devserver \
"${APACHE_CONFIG}"/sites-enabled
ln -sf "${APACHE_CONFIG}"/mods-available/proxy.load \
"${APACHE_CONFIG}"/mods-enabled
ln -sf "${APACHE_CONFIG}"/mods-available/proxy_http.load \
"${APACHE_CONFIG}"/mods-enabled
ln -sf "${APACHE_CONFIG}"/mods-available/rewrite.load \
"${APACHE_CONFIG}"/mods-enabled
# Disable dir module so that it won't redirect empty path to index.html
if [ "$codename" = "trusty" ] ; then
sudo a2dismod dir
fi
# Setup devserver archive location.
local image_root="${DEFAULT_IMAGE_ROOT}"
[ -n "${1}" ] && image_root="$(readlink -f "${1}")"
local static_dir="${ARCHIVE_ROOT}"/static
if [ -h "${static_dir}" ]; then
unlink "${static_dir}"
fi
ln -sf "${image_root}" "${static_dir}"
if [ -e "${static_dir}/archive" ]; then
unlink "${static_dir}/archive"
fi
/etc/init.d/apache2 restart
}
main $@