Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit c5c56f5

Browse files
committed
Merge pull request #51 from jdeathe/issue/43
ISSUE 43: Simplify enable/disable of SSL support.
2 parents 67108fc + b691991 commit c5c56f5

File tree

3 files changed

+61
-51
lines changed

3 files changed

+61
-51
lines changed

etc/apache-bootstrap

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,8 @@ if [[ ${OPTS_APACHE_MOD_SSL_ENABLED} == true ]] && [[ ! -f ${OPTS_APP_HOME_DIR}/
104104

105105
# Enable the SSL VirtualHosts configuration
106106
sed -i \
107-
-e 's~^<VirtualHost \*:80>$~#<VirtualHost \*:80>~g' \
108-
-e 's~^#<VirtualHost \*:443>$~<VirtualHost \*:443>~g' \
109-
-e 's~#SSLEngine \(.*\)$~SSLEngine \1~g' \
110-
-e 's~#SSLOptions \(.*\)$~SSLOptions \1~g' \
111-
-e 's~#SSLProtocol \(.*\)$~SSLProtocol \1~g' \
112-
-e 's~#SSLCipherSuite \(.*\)$~SSLCipherSuite \1~g' \
113-
-e 's~#SSLCertificateFile \(.*\)$~SSLCertificateFile \1~g' \
114-
-e 's~#SSLCertificateKeyFile \(.*\)$~SSLCertificateKeyFile \1~g' \
107+
-e 's~^<VirtualHost \*:80 \*:8443>$~<VirtualHost \*:443>~g' \
108+
-e '/<IfModule mod_ssl.c>/,/<\/IfModule>/ s~\( *\)\(#\( \([^ ]\)\)\?\)\(.*\)$~\1\4\5~' \
115109
${OPTS_APP_HOME_DIR}/vhost-ssl.conf
116110
fi
117111

@@ -120,11 +114,6 @@ if [[ ${OPTS_APACHE_MOD_SSL_ENABLED} == true ]]; then
120114
echo "Enabling SSL support."
121115
cat /etc/httpd/conf.d/ssl.conf.off > /etc/httpd/conf.d/ssl.conf
122116

123-
sed -i \
124-
-e 's~^#NameVirtualHost \*:443$~NameVirtualHost \*:443~g' \
125-
-e 's~^#Include ${OPTS_APP_HOME_DIR}/vhost-ssl.conf$~Include ${OPTS_APP_HOME_DIR}/vhost-ssl.conf~g' \
126-
/etc/httpd/conf/httpd.conf
127-
128117
if [[ ! -f /etc/services-config/ssl/private/localhost.key ]] || [[ ! -f /etc/services-config/ssl/certs/localhost.crt ]]; then
129118
echo "Generating new certificate."
130119
openssl req \
@@ -141,11 +130,6 @@ if [[ ${OPTS_APACHE_MOD_SSL_ENABLED} == true ]]; then
141130
else
142131
echo "Disabling SSL support."
143132
> /etc/httpd/conf.d/ssl.conf
144-
145-
sed -i \
146-
-e 's~^NameVirtualHost \*:443$~#NameVirtualHost \*:443~g' \
147-
-e 's~^Include ${OPTS_APP_HOME_DIR}/vhost-ssl.conf$~#Include ${OPTS_APP_HOME_DIR}/vhost-ssl.conf~g' \
148-
/etc/httpd/conf/httpd.conf
149133
fi
150134

151135
# Set the service user / service group user

run.conf

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ SERVICE_UNIT_SHARED_GROUP=pool-1
88
SERVICE_UNIT_LOCAL_ID=1
99
SERVICE_UNIT_INSTANCE=1
1010

11-
DATE_TIMEZONE=UTC
12-
13-
DOCKER_NAME_DB_MYSQL=mysql.${SERVICE_UNIT_SHARED_GROUP}.1.1
14-
1511
MOUNT_PATH_CONFIG=/etc/services-config
1612
# Mac hosts need to be in User writable directory
1713
if [ "$(uname)" == "Darwin" ]; then
@@ -26,7 +22,40 @@ fi
2622
DOCKER_IMAGE_REPOSITORY_NAME=${DOCKER_USER}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}
2723
DOCKER_NAME=${SERVICE_UNIT_NAME}.${SERVICE_UNIT_APP_GROUP}.${SERVICE_UNIT_LOCAL_ID}.${SERVICE_UNIT_INSTANCE}
2824

25+
DOCKER_HOST_PORT_HTTP=8080
26+
DOCKER_HOST_PORT_HTTPS=8580
27+
DOCKER_HOST_PORT_SSH=2312
28+
DOCKER_HOST_PORT_XDEBUG=9000
29+
2930
VOLUME_CONFIG_NAME=volume-config.${DOCKER_NAME}
3031

32+
# Application configuration
33+
APACHE_LOAD_MODULES_DEFAULT="
34+
authz_user_module
35+
log_config_module
36+
expires_module
37+
deflate_module
38+
headers_module
39+
setenvif_module
40+
mime_module
41+
status_module
42+
dir_module
43+
alias_module
44+
"
45+
46+
APACHE_LOAD_MODULES="${APACHE_LOAD_MODULES_DEFAULT}"
3147
APACHE_MOD_SSL_ENABLED=false
32-
HTTPD=/usr/sbin/httpd.worker
48+
APACHE_SERVER_ALIAS=app-1
49+
APACHE_SERVER_NAME=app-1.local
50+
APP_HOME_DIR=/var/www/app
51+
DATE_TIMEZONE=UTC
52+
HTTPD=/usr/sbin/httpd.worker
53+
SERVICE_USER=app
54+
SERVICE_USER_GROUP=app-www
55+
SERVICE_USER_GROUP_PASSWORD=
56+
SERVICE_USER_PASSWORD=
57+
SUEXECUSERGROUP=false
58+
59+
# Linked container
60+
DOCKER_LINK_NAME_DB_MYSQL=mysql.${SERVICE_UNIT_SHARED_GROUP}.1.1
61+
DOCKER_LINK_ID_DB_MYSQL=db_mysql

run.sh

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@ if [[ ${DIR_PATH} == */* ]] && [[ ${DIR_PATH} != $( pwd ) ]]; then
77
fi
88

99
source run.conf
10-
source etc/services-config/httpd/apache-bootstrap.conf
11-
12-
# Enable/Disable SSL support
13-
if [[ ${APACHE_MOD_SSL_ENABLED} == true ]]; then
14-
OPTS_HTTPS_PORT=443
15-
else
16-
OPTS_HTTPS_PORT=8443
17-
fi
1810

1911
have_docker_container_name ()
2012
{
@@ -142,28 +134,34 @@ else
142134
DOCKER_OPERATOR_OPTIONS="-it --entrypoint /bin/bash --env TERM=${TERM:-xterm}"
143135
fi
144136

137+
# Enable/Disable SSL support
138+
if [[ ${APACHE_MOD_SSL_ENABLED} == true ]]; then
139+
DOCKER_PORT_OPTIONS="-p ${DOCKER_HOST_PORT_HTTP:-}:80 -p ${DOCKER_HOST_PORT_HTTPS:-}:443"
140+
else
141+
DOCKER_PORT_OPTIONS="-p ${DOCKER_HOST_PORT_HTTP:-}:80 -p ${DOCKER_HOST_PORT_HTTPS:-}:8443"
142+
fi
143+
145144
# In a sub-shell set xtrace - prints the docker command to screen for reference
146145
(
147146
set -x
148147
docker run \
149148
${DOCKER_OPERATOR_OPTIONS} \
150149
--name "${DOCKER_NAME}" \
151-
-p 8080:80 \
152-
-p 8580:${OPTS_HTTPS_PORT} \
153-
--env "SERVICE_UNIT_APP_GROUP=app-1" \
154-
--env "SERVICE_UNIT_LOCAL_ID=1" \
155-
--env "SERVICE_UNIT_INSTANCE=1" \
156-
--env "APACHE_SERVER_ALIAS=app-1" \
157-
--env "APACHE_SERVER_NAME=app-1.local" \
150+
${DOCKER_PORT_OPTIONS} \
151+
--env "SERVICE_UNIT_APP_GROUP=${SERVICE_UNIT_APP_GROUP}" \
152+
--env "SERVICE_UNIT_LOCAL_ID=${SERVICE_UNIT_LOCAL_ID}" \
153+
--env "SERVICE_UNIT_INSTANCE=${SERVICE_UNIT_INSTANCE}" \
158154
--env "APACHE_LOAD_MODULES=${APACHE_LOAD_MODULES}" \
159-
--env "APACHE_MOD_SSL_ENABLED=false" \
155+
--env "APACHE_MOD_SSL_ENABLED=${APACHE_MOD_SSL_ENABLED}" \
156+
--env "APACHE_SERVER_ALIAS=${APACHE_SERVER_ALIAS}" \
157+
--env "APACHE_SERVER_NAME=${APACHE_SERVER_NAME}" \
160158
--env "APP_HOME_DIR=${APP_HOME_DIR}" \
161-
--env "DATE_TIMEZONE=UTC" \
159+
--env "DATE_TIMEZONE=${DATE_TIMEZONE}" \
162160
--env "HTTPD=${HTTPD}" \
163-
--env "SERVICE_USER=app" \
164-
--env "SERVICE_USER_GROUP=app-www" \
165-
--env "SERVICE_USER_PASSWORD=" \
166-
--env "SUEXECUSERGROUP=false" \
161+
--env "SERVICE_USER=${SERVICE_USER}" \
162+
--env "SERVICE_USER_GROUP=${SERVICE_USER_GROUP}" \
163+
--env "SERVICE_USER_PASSWORD=${SERVICE_USER_PASSWORD}" \
164+
--env "SUEXECUSERGROUP=${SUEXECUSERGROUP}" \
167165
--volumes-from ${VOLUME_CONFIG_NAME} \
168166
-v ${MOUNT_PATH_DATA}/${SERVICE_UNIT_NAME}/${SERVICE_UNIT_APP_GROUP}:${APP_HOME_DIR} \
169167
${DOCKER_IMAGE_REPOSITORY_NAME}${@:+ -c }"${@}"
@@ -175,18 +173,17 @@ docker run \
175173
# docker run \
176174
# ${DOCKER_OPERATOR_OPTIONS} \
177175
# --name "${DOCKER_NAME}" \
178-
# -p 8080:80 \
179-
# -p 8580:${OPTS_HTTPS_PORT} \
180-
# -p 2312:22 \
181-
# -p :9000 \
182-
# --link ${DOCKER_NAME_DB_MYSQL}:db_mysql \
176+
# ${DOCKER_PORT_OPTIONS} \
177+
# -p ${DOCKER_HOST_PORT_SSH:-}:22 \
178+
# -p ${DOCKER_HOST_PORT_XDEBUG:-}:9000 \
179+
# --link ${DOCKER_LINK_NAME_DB_MYSQL}:${DOCKER_LINK_ID_DB_MYSQL} \
183180
# --env "SERVICE_UNIT_APP_GROUP=app-1" \
184181
# --env "SERVICE_UNIT_LOCAL_ID=1" \
185182
# --env "SERVICE_UNIT_INSTANCE=1" \
186-
# --env "APACHE_SERVER_ALIAS=app-1 www.app-1 www.app-1.local" \
187-
# --env "APACHE_SERVER_NAME=app-1.local" \
188183
# --env "APACHE_LOAD_MODULES=${APACHE_LOAD_MODULES} rewrite_module" \
189184
# --env "APACHE_MOD_SSL_ENABLED=false" \
185+
# --env "APACHE_SERVER_ALIAS=app-1 www.app-1 www.app-1.local" \
186+
# --env "APACHE_SERVER_NAME=app-1.local" \
190187
# --env "APP_HOME_DIR=/var/www/app-1" \
191188
# --env "DATE_TIMEZONE=Europe/London" \
192189
# --env "HTTPD=/usr/sbin/httpd.worker" \

0 commit comments

Comments
 (0)