Skip to content

Commit f0096f6

Browse files
ReactDevs007web-flow
authored andcommitted
Merge pull request #330 from twang2218/tmpfs
Setup the `$APACHE_RUN_DIR` and `$APACHE_LOCK_DIR` directories in runtime
2 parents b825e0d + 8af7ca4 commit f0096f6

File tree

3 files changed

+72
-3
lines changed

3 files changed

+72
-3
lines changed

5.6/apache/apache2-foreground

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,30 @@ if test -f "$APACHE_ENVVARS"; then
1111
fi
1212

1313
# Apache gets grumpy about PID files pre-existing
14-
: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
14+
: "${APACHE_RUN_DIR:=/var/run/apache2}"
15+
: "${APACHE_PID_FILE:=$APACHE_RUN_DIR/apache2.pid}"
1516
rm -f "$APACHE_PID_FILE"
1617

18+
# create missing directories
19+
# (especially APACHE_RUN_DIR, APACHE_LOCK_DIR, and APACHE_LOG_DIR)
20+
for e in "${!APACHE_@}"; do
21+
if [[ "$e" == *_DIR ]] && [[ "${!e}" == /* ]]; then
22+
# handle "/var/lock" being a symlink to "/run/lock", but "/run/lock" not existing beforehand, so "/var/lock/something" fails to mkdir
23+
# mkdir: cannot create directory '/var/lock': File exists
24+
dir="${!e}"
25+
while [ "$dir" != "$(dirname "$dir")" ]; do
26+
dir="$(dirname "$dir")"
27+
if [ -d "$dir" ]; then
28+
break
29+
fi
30+
absDir="$(readlink -f "$dir" 2>/dev/null || :)"
31+
if [ -n "$absDir" ]; then
32+
mkdir -p "$absDir"
33+
fi
34+
done
35+
36+
mkdir -p "${!e}"
37+
fi
38+
done
39+
1740
exec apache2 -DFOREGROUND "$@"

7.0/apache/apache2-foreground

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,30 @@ if test -f "$APACHE_ENVVARS"; then
1111
fi
1212

1313
# Apache gets grumpy about PID files pre-existing
14-
: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
14+
: "${APACHE_RUN_DIR:=/var/run/apache2}"
15+
: "${APACHE_PID_FILE:=$APACHE_RUN_DIR/apache2.pid}"
1516
rm -f "$APACHE_PID_FILE"
1617

18+
# create missing directories
19+
# (especially APACHE_RUN_DIR, APACHE_LOCK_DIR, and APACHE_LOG_DIR)
20+
for e in "${!APACHE_@}"; do
21+
if [[ "$e" == *_DIR ]] && [[ "${!e}" == /* ]]; then
22+
# handle "/var/lock" being a symlink to "/run/lock", but "/run/lock" not existing beforehand, so "/var/lock/something" fails to mkdir
23+
# mkdir: cannot create directory '/var/lock': File exists
24+
dir="${!e}"
25+
while [ "$dir" != "$(dirname "$dir")" ]; do
26+
dir="$(dirname "$dir")"
27+
if [ -d "$dir" ]; then
28+
break
29+
fi
30+
absDir="$(readlink -f "$dir" 2>/dev/null || :)"
31+
if [ -n "$absDir" ]; then
32+
mkdir -p "$absDir"
33+
fi
34+
done
35+
36+
mkdir -p "${!e}"
37+
fi
38+
done
39+
1740
exec apache2 -DFOREGROUND "$@"

7.1/apache/apache2-foreground

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,30 @@ if test -f "$APACHE_ENVVARS"; then
1111
fi
1212

1313
# Apache gets grumpy about PID files pre-existing
14-
: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
14+
: "${APACHE_RUN_DIR:=/var/run/apache2}"
15+
: "${APACHE_PID_FILE:=$APACHE_RUN_DIR/apache2.pid}"
1516
rm -f "$APACHE_PID_FILE"
1617

18+
# create missing directories
19+
# (especially APACHE_RUN_DIR, APACHE_LOCK_DIR, and APACHE_LOG_DIR)
20+
for e in "${!APACHE_@}"; do
21+
if [[ "$e" == *_DIR ]] && [[ "${!e}" == /* ]]; then
22+
# handle "/var/lock" being a symlink to "/run/lock", but "/run/lock" not existing beforehand, so "/var/lock/something" fails to mkdir
23+
# mkdir: cannot create directory '/var/lock': File exists
24+
dir="${!e}"
25+
while [ "$dir" != "$(dirname "$dir")" ]; do
26+
dir="$(dirname "$dir")"
27+
if [ -d "$dir" ]; then
28+
break
29+
fi
30+
absDir="$(readlink -f "$dir" 2>/dev/null || :)"
31+
if [ -n "$absDir" ]; then
32+
mkdir -p "$absDir"
33+
fi
34+
done
35+
36+
mkdir -p "${!e}"
37+
fi
38+
done
39+
1740
exec apache2 -DFOREGROUND "$@"

0 commit comments

Comments
 (0)