41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Note: we don't just use "apache2ctl" here because it itself is just a shell-script wrapper around apache2 which provides extra functionality like "apache2ctl start" for launching apache2 in the background.
|
|
# (also, when run as "apache2ctl <apache args>", it does not use "exec", which leaves an undesirable resident shell process)
|
|
|
|
: "${APACHE_CONFDIR:=/etc/apache2}"
|
|
: "${APACHE_ENVVARS:=$APACHE_CONFDIR/envvars}"
|
|
if test -f "$APACHE_ENVVARS"; then
|
|
. "$APACHE_ENVVARS"
|
|
fi
|
|
|
|
# Apache gets grumpy about PID files pre-existing
|
|
: "${APACHE_RUN_DIR:=/var/run/apache2}"
|
|
: "${APACHE_PID_FILE:=$APACHE_RUN_DIR/apache2.pid}"
|
|
rm -f "$APACHE_PID_FILE"
|
|
|
|
# create missing directories
|
|
# (especially APACHE_RUN_DIR, APACHE_LOCK_DIR, and APACHE_LOG_DIR)
|
|
for e in "${!APACHE_@}"; do
|
|
if [[ "$e" == *_DIR ]] && [[ "${!e}" == /* ]]; then
|
|
# handle "/var/lock" being a symlink to "/run/lock", but "/run/lock" not existing beforehand, so "/var/lock/something" fails to mkdir
|
|
# mkdir: cannot create directory '/var/lock': File exists
|
|
dir="${!e}"
|
|
while [ "$dir" != "$(dirname "$dir")" ]; do
|
|
dir="$(dirname "$dir")"
|
|
if [ -d "$dir" ]; then
|
|
break
|
|
fi
|
|
absDir="$(readlink -f "$dir" 2>/dev/null || :)"
|
|
if [ -n "$absDir" ]; then
|
|
mkdir -p "$absDir"
|
|
fi
|
|
done
|
|
|
|
mkdir -p "${!e}"
|
|
fi
|
|
done
|
|
|
|
exec apache2 -DFOREGROUND "$@"
|