summaryrefslogtreecommitdiffstats
path: root/adei/scripts/run-apache.sh
blob: 90438a75c17b9acacab5ffd131f9e8d881866031 (plain)
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
#! /bin/bash

LOCK_FILE=.lock
(
    flock -x 10
    if [ ! -d /adei/ovr/apache2 ]; then
        cp -ar /opt/apache2 /adei/ovr/ 
    fi
) 10> /adei/ovr/$LOCK_FILE

(
    flock -x 10
    if [ ! -f /adei/cfg/apache.conf ]; then
        cp -a /opt/configs/apache* /adei/cfg
    fi
) 10> /adei/cfg/$LOCK_FILE

sed -i'' -re '/Listen/ { /(80|443)/!d }' /etc/apache2/listen.conf
if [ -n "$ADEI_PORTS" ]; then
    for port in $ADEI_PORTS; do
	[ $port -eq 80 ] && continue
	[ $port -eq 443 ] && continue
	
	echo "Listen $port" >> /etc/apache2/listen.conf
    done
fi

if [ -n "$APACHE_SERVERS" -a "$APACHE_SERVERS" -ne 0 ]; then
    if [ $APACHE_SERVERS -eq 1 ]; then
        start=1
        limit=1
        min_spare=1
        max_spare=1
    elif [ $APACHE_SERVERS -lt 10 ]; then
        start=$(($APACHE_SERVERS / 2))
        limit=$APACHE_SERVERS
        min_spare=$start
        max_spare=$limit
    else
        start=0
        limit=$APACHE_SERVERS
        min_spare=0
        max_spare=0
    fi
    [ $start -eq 0 ] || sed -i'' -re "s/StartServers(.*)/StartServers $start/" /etc/apache2/server-tuning.conf
    [ $limit -eq 0 ] || sed -i'' -re "s/MaxClients(.*)/MaxClients $limit/" /etc/apache2/server-tuning.conf
    [ $min_spare -eq 0 ] || sed -i'' -re "s/MinSpareServers(.*)/MinSpareServers $min_spare/" /etc/apache2/server-tuning.conf
    [ $max_spare -eq 0 ] || sed -i'' -re "s/MaxSpareServers(.*)/MaxSpareServers $max_spare/" /etc/apache2/server-tuning.conf
fi

/usr/sbin/apache2ctl start -D FOREGROUND