I am coming from a rails background and I am quite used to put the page in maintanance mode/shut it down for a couple of seconds even for typo fixes.
The hotswapping of files as it is common in the PHP scene has some dangers, so even for PHP I would suggest to shut your application down for the upgrading process. If you do your usual hot swapping there, you could create data-inconsistency because your form which asks for data was already swapped out and asks the user for his mail-address but your actual database model hasn't change so far and throws away the data the user was aked for (or depending on your error handling it will throw a bunch of exceptions). There are other dangers I currently don't remember and I can't find the talk I watched about that topic right now… Anyway it would be in german… Also for every upgrade of your software there should be an announcement for a scheduled downtime. Use that downtime, and schedule 30 minutes for a 5 minutes task. This way your users will know, that they can't use the page for half an hour and they will be happy if the site is up again 20 minutes early. For security upgrade just shut down the site immediately and don't care for session data (it could already have bugged or exploitet informations) and upgrade! This is the way I did it with rails for about 3 years now and I switched to do this for the few PHP applications I have to maintain. There are also problems that automate all these steps (google: server provisioning and deployment tools) Name there are Chef for provisioning and Capistrano for deployment in the Rails world and both can be used for PHP for witty if are willing to learn a minimum of ruby. Both only need a very basic understanding of ruby, it is quite enough to know how a function is called (type the name and then the parameters, you can do it PHP style with brackets or ruby style without them), a variable is assigned (just like in PHP, but do not preceed with `$`, thats a prefix for global vars only!), how arrays are written (just enclose the values comma separated in square brackets) and the difference between plain strings and evaluated string (just like in PHP). Chef is documented very well and quite a handfull of scripts is already available at the site. Also Capistrano is well documented, but there are no pre-made scripts available because every deploy setup is different. HTH NobbZ Chef: http://www.getchef.com/ and https://learnchef.opscode.com/ Capistrano: http://capistranorb.com/ 2014-03-26 21:57 GMT+01:00 Jason H <scorp...@yahoo.com>: > I'm more experienced with developing scripted applications (PHP) for the > web. > One aspect of these is you can change out the php file while the webserver > is running. Existing connections will use the php that was loaded, new > connections will use new PHP. And in general, these happen on a per php > script basis. > > How would someone do an upgrade? It seems that we have to stop everything > and start everything for a witty application? > Or, could witty somehow maintain more than one application at a time, and > when a newer one comes along, be messaged to use the new one for new > connections? And as sessions are [re]started, move to the new while current > sessions remain on the old implementation or are signaled to gracefully > restart the session. Also how is session data handed off between upgrades? > > Many thanks in advance! > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > witty-interest mailing list > witty-interest@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/witty-interest > >
------------------------------------------------------------------------------
_______________________________________________ witty-interest mailing list witty-interest@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/witty-interest