File: install_apache2.sh

package info (click to toggle)
aws-crt-python 0.20.4%2Bdfsg-1~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 72,656 kB
  • sloc: ansic: 381,805; python: 23,008; makefile: 6,251; sh: 4,536; cpp: 699; ruby: 208; java: 77; perl: 73; javascript: 46; xml: 11
file content (82 lines) | stat: -rwxr-xr-x 2,228 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
#
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
#  http://aws.amazon.com/apache2.0
#
# or in the "license" file accompanying this file. This file 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.
#

set -eu
source codebuild/bin/s2n_setup_env.sh

usage() {
    echo "install_apache2.sh config_dir install_dir"
    exit 1
}

if [ "$#" -ne "2" ]; then
    usage
fi

APACHE2_CONFIG_DIR="$1"
APACHE2_INSTALL_DIR="$2"

apache_enable() {
    item_type="$1"
    item="$2"
    required="$3"

    source_path="/etc/apache2/${item_type}-available/${item}"
    dest_path="${APACHE2_INSTALL_DIR}/${item_type}-enabled/${item}"

    if [ ! -f "${source_path}" ]; then
        if [ "$required" = true ]; then
            echo "apache item not found: ${source_path}"
            exit 1
        fi

        return
    fi

    ln -s "$source_path" "$dest_path"
}

mod_enable() {
    mod="$1"
    apache_enable "mods" "${mod}.load" true
    apache_enable "mods" "${mod}.conf" false
}

conf_enable() {
    conf="$1"
    apache_enable "conf" "${conf}.conf" true
}

cp -r "${APACHE2_CONFIG_DIR}" "${APACHE2_INSTALL_DIR}"
mkdir "${APACHE2_INSTALL_DIR}/mods-enabled"
mkdir "${APACHE2_INSTALL_DIR}/conf-enabled"
mkdir "${APACHE2_INSTALL_DIR}/run"
mkdir "${APACHE2_INSTALL_DIR}/lock"
mkdir "${APACHE2_INSTALL_DIR}/log"

# Enable default mods
DEFAULT_MODS=("access_compat" "alias" "auth_basic" "authn_core" "authn_file" "authz_core" "authz_host" "authz_user"
              "autoindex" "deflate" "dir" "env" "filter" "mime" "mpm_event" "negotiation" "reqtimeout" "setenvif"
              "socache_shmcb" "status" "ssl")
for mod in "${DEFAULT_MODS[@]}"; do
    mod_enable "$mod"
done

# Enable default configuration
DEFAULT_CONF=("charset" "localized-error-pages" "other-vhosts-access-log" "security" "serve-cgi-bin")
for conf in "${DEFAULT_CONF[@]}"; do
    conf_enable "$conf"
done