I was coming up with specific ideas for the installer. This would sort out all my large concerns...
1. The installer would have mysite containing the "blackcandy" theme, and another folder called "tutorial" which is the existing mysite. I name it tutorial to emphasise purpose.
2. Inside the tutorial folder, _config.php is renamed to _config.php.disabled, thereby excluding its inclusion.
In /mysite/ there would already be _config.php with defaults.
3. Both have defaults, so again, you can manually just edit that file if need be.
- "root" user, blank password, database called "SS_silverstripe"
- show fatal errors to the screen until overridden to be sent via email
4. allow SendErrorsTo email to be set in the installer
5. The installer would ask if you want a normal skin or to start with a blank one and work on the tutorial. If tutorial, it just would:
mv /mysite/_config.php /mysite/_config.php.disabled
mv /tutorial/_config.php.disabled /tutorial/_config.php
6. A new file, /tutorial/README would contain
"To begin your SilverStripe tutorial, follow the instructions at http://doc.silverstripe.com
Ensure /tutorial/_config.php.disabled has been renamed to /tutorial/_config.php and that /mysite/_config.php has been renamed to /mysite/_config.php.disabled"
7. The php installer already contain /.htaccess, which is commented out. The installer just removes the comments. The reason I say to do this is that you can easily manually uncomment it yourself if something goes awry AND that by writing to a file rather than creating or renaming it, you no longer need directory creation permissions on base folder.
8. already have a folder called 'assets' so you don't need directory creation permissions on base folder.
9. This leave us with the following file permission requirements
a) chown www-data .htaccess mysite/_config.php assets
b) to allow the installer to begin the tutorial, "chown www-data mysite tutorial" (because directory permissions are needed to rename the _config files, but this need not be set recursively; you don't need write permission on the _config files itself. I've tested this on Debian.)
... where "chown www-data" could also be chmod or chgrp depending on your server permission configuration
...I'd allow installation to proceed if the check for (b) failed if the person was not wanting to do the tutorial....