On refactoring the installer flow...


  • Dadman with a boy
  • Posts: 16,064
On refactoring the installer flow...
« on January 24th, 2014, 05:17 PM »
Quote from havok on January 23rd, 2014, 03:00 PM
deleting the folder with go daddy admin panel was leaving some residual files. when i used 3rd party ftp to delete the folder worked like a charm. back up and running
I was actually working, a few hours ago, on making the install process easier for everyone.

The idea is to:
- ship Wedge WITHOUT these folders: /attachments, /media, /install/Settings.php, /install/Settings.php.bak
- modify index.php so that on each page load, it checks for these files. If it finds them, cool. If it doesn't, it actually recreates them from scratch, not from an existing file or folder, but simply by creating files and writing text to them. (Yes, it works fine. And it avoids the eternal problem of ensuring these folders are all writable.)
- if Settings.php isn't found, run the install process.

This is pretty great. But causes three major problems to me.
  • By running the install process, I *thought* that it would be simple to just include /install/install.php, but in fact it's more complicated than that, as Wedge expects the installer to be in the root... So, I'll probably (?) have to copy the install.php file to the root automatically, and then run it from the root.
  • More importantly, what happens if someone else visits your empty website after you uploaded it by FTP and before you went to the root? Because the Settings.php file was already re-created, you'll just find an error page because the DB data is wrong, while the other visitor will be presented with the installer tool. Meh... Of course, not possible.
  • I don't know if I should be wasting time making multiple folder/file existence tests for each page load: the aforementioned files, but also generally the /install folder. If it's found while Wedge is up and running, should we attempt to delete it..? And if it fails, does that mean Wedge will permanently try to delete that folder on each page load...? :-/
Opinions welcome, really.