nice, first bit of auto-help
[feisty_meow.git] / scripts / system / add_apache_site.sh
index 345b96cdfd7de22426ca25984f790e96f4803ab6..b341c9c2e4f0ea34b0bacc26b10c725a8e747fe8 100644 (file)
@@ -37,64 +37,17 @@ function write_apache_config()
   local full_path="${BASE_PATH}/${appname}${STORAGE_SUFFIX}"
 #echo really full path is $full_path
 
-#hmmm: the code below is just getting bigger.  it would be nice to create the chunks of permission stuff
-# via iteration rather than hardcoding.
-
   echo "
-# we have to enable some directory access through the user's folders.
-# this is probably going to end up repeated in multiple apache files, but
-# hopefully that's not a problem.
-#hmmm: fix above note if it's not a problem.
-
-
 # set up the user's web folder as an apache user web directory.
-UserDir apps
-#above didn't help either.
-
-#
-#all of below might be borked.  trying different approach above.
-# set permissions on the root folders.
-###<Directory \"/\">
-###  Options -ExecCGI +Indexes +FollowSymLinks +Includes
-###  Order allow,deny
-###  Allow from all
-###</Directory>
-#### set permissions on the root of the home folders.
-###<Directory \"/home\">
-###  Options -ExecCGI +Indexes +FollowSymLinks +Includes
-###  Order allow,deny
-###  Allow from all
-###</Directory>
-#### set permissions on the user's home folder.
-###<Directory \"$HOME\">
-###  Options -ExecCGI +Indexes +FollowSymLinks +Includes
-###  Order allow,deny
-###  Allow from all
-###</Directory>
-#### set permissions on the user's storage folder for all apps.
-###<Directory \"$BASE_PATH\">
-###  Options +ExecCGI +Indexes +FollowSymLinks +Includes +MultiViews 
-###  Order allow,deny
-###  Allow from all
-###</Directory>
-#### set permissions on the actual app folder.
-###<Directory \"$path_above\">
-###  Options +ExecCGI +Indexes +FollowSymLinks +Includes +MultiViews 
-###  Order allow,deny
-###  Allow from all
-###</Directory>
 
 # set permissions on the actual app folder.
 <Directory \"$full_path\">
   Options +ExecCGI +Indexes +FollowSymLinks +Includes +MultiViews 
-#  Order allow,deny
-#  Allow from all
   Require all granted
 </Directory>
 
 <VirtualHost *:80>
     ServerName ${sitename}
-#    ServerAlias ${sitename} *.${sitename}
     DocumentRoot ${full_path}
     ErrorLog \${APACHE_LOG_DIR}/${sitename}-error.log
     CustomLog \${APACHE_LOG_DIR}/${sitename}-access.log combined
@@ -135,8 +88,6 @@ function restart_apache()
   fi
 }
 
-# chown folder to group www-data.  can be done without setting a user, right?
-
 # sets up the serverpilot storage location for a user hosted web site.
 function maybe_create_site_storage()
 {
@@ -145,23 +96,22 @@ function maybe_create_site_storage()
   local full_path="$BASE_PATH/$our_app"
   if [ ! -d "$full_path" ]; then
     mkdir -p $full_path
-    check_result "The app storage path could not be created.\n  Path in question is: $full_path"
+    test_or_fail "The app storage path could not be created.\n  Path in question is: $full_path"
   fi
 
   # now give the web server some access to the folder.  this is crucial since the folders
-  # can be hosted in any user folder, and the group permissions will usually be only for the user.
-  chown -R $(logname):www-data "$BASE_PATH"
-  check_result "Failed to set www-data as the owner on the path: $full_path"
-  # note that web serving will also hose up unless the path to the folder is writable.  so we walk backwards
-  # and make sure group access is available.
+  # can be hosted in any user folder, and the group permissions will not necessarily be correct already.
   local chow_path="$full_path"
+  # only the first chmod is recursive; the rest just apply to the specific folder of interest.
+  chmod -R g+rx "$chow_path"
+  # walk backwards up the path and fix perms.
   while [[ $chow_path != $HOME ]]; do
-#echo chow path is now $chow_path
-    chmod -R g+rx "$chow_path"
-    check_result "Failed to add group permissions for www-data on the path: $chow_path"
+echo chow path is now $chow_path
+    chmod g+rx "$chow_path"
+    test_or_fail "Failed to add group permissions on the path: $chow_path"
     # reassert the user's ownership of any directories we might have just created.
     chown $(logname) "$chow_path"
-    check_result "changing ownership to user failed on the path: $chow_path"
+    test_or_fail "changing ownership to user failed on the path: $chow_path"
     chow_path="$(dirname "$chow_path")"
   done
 }