From 6befcbe30e7be2bdf1d938f7cac1dba1ea9d84cb Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Thu, 26 Oct 2017 21:15:24 -0400 Subject: [PATCH] apache site adder fixes got the thing writing the config file and doing the proper magic to configure it. now also hides output from a2ensite unless error occurs. also fixed bug in log files in site config. --- scripts/system/add_apache_site.sh | 64 ++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/scripts/system/add_apache_site.sh b/scripts/system/add_apache_site.sh index 558b418d..897664e4 100644 --- a/scripts/system/add_apache_site.sh +++ b/scripts/system/add_apache_site.sh @@ -44,31 +44,35 @@ echo " ServerName ${sitename} # ServerAlias ${sitename} *.${sitename} DocumentRoot ${fullpath} - ErrorLog ${APACHE_LOG_DIR}/${sitename}-error.log - CustomLog ${APACHE_LOG_DIR}/${sitename}-access.log combined + ErrorLog \${APACHE_LOG_DIR}/${sitename}-error.log + CustomLog \${APACHE_LOG_DIR}/${sitename}-access.log combined Include /etc/apache2/conf-library/basic-options.conf Include /etc/apache2/conf-library/rewrite-enabling.conf -" -#fix -# >"$site_config" - +" >"$site_config" } +# turns on the config file we create above for apache. function enable_site() { local sitename="$1"; shift local site_config="/etc/apache2/sites-available/${sitename}.conf" - a2ensite "$(basename $site_config)" + outfile="$TMP/apacheout.$RANDOM" + a2ensite "$(basename $site_config)" &>$outfile if [ $? -ne 0 ]; then + # an error happened, so we show the command's output at least. + cat $outfile + echo echo "There was a problem enabling the apache config file in:" echo " $site_config" echo "Please consult the apache error logs for more details." exit 1 fi + rm "$outfile" } +# restarts the apache2 service. function restart_apache() { service apache2 restart @@ -79,6 +83,36 @@ function restart_apache() fi } +# sets up a link to represent the serverpilot storage location, while +# still storing the files under /var/www. +function create_shadow_path() +{ + # make sure there is a symbolic link from the shadow path (that mimics the serverpilot + # storage set up) to the real storage directory. + if [ ! -L "$SHADOWPATH" ]; then + # create the path up to but not including the last component. + if [ ! -d $(dirname $SHADOWPATH) ]; then + mkdir -p $(dirname $SHADOWPATH) + if [ $? -ne 0 ]; then + echo "The parent of the shadow path could not be created." + echo "Path in question is: $(dirname $SHADOWPATH)" + exit 1 + fi + fi + + ln -s "$BASEPATH" "$SHADOWPATH" +#hmmm: should we be okay with it if it's a real dir, and assume people are happy? +# this wouldn't work too well if we go plunk down the new thing in /var/www, +# if they are expecting this tool to totally meld with serverpilot. + if [ $? -ne 0 ]; then + echo "The shadow path for mimicking serverpilot could not be created." + echo "Is there a real directory present for this already?" + echo "Path in question is: $SHADOWPATH" + exit 1 + fi + fi +} + # main body of script. if (( $EUID != 0 )); then @@ -96,21 +130,7 @@ if [ -z "$appname" -o -z "$site" ]; then exit 1 fi -# make sure there is a symbolic link from the shadow path (that mimics the serverpilot -# storage set up) to the real storage directory. -if [ ! -l "$SHADOWPATH" ]; then - ln -s "$BASEPATH" "$SHADOWPATH" -#hmmm: should we be okay with it if it's a real dir, and assume people are happy? -# this wouldn't work too well if we go plunk down the new thing in /var/www, -# if they are expecting this tool to totally meld with serverpilot. - if [ $? -ne 0 ]; then - echo "The shadow path for mimicking serverpilot could not be created." - echo "Is there a real directory present for this already?" - echo "Path in question is: $SHADOWPATH" - exit 1 - fi -fi - +create_shadow_path write_apache_config "$appname" "$site" enable_site "$site" restart_apache -- 2.34.1