Further 2.0-CURRENT upgrade notes
Well, it is entirely possible to do a remote upgrade of an Annvix server using the upgrade script. I just did it for the church I attend (they have a backup server running Annvix) over the lunch hour. The server was 1.2-RELEASE when they left for lunch and was 2.0-CURRENT when they came back from lunch. And I didn’t leave the house (having said that, the server is 10 minutes away so if something did go wrong, I could go there and fix it). I’ve also noticed that I need to make the upgrade script a bit more robust because apt will report an error if an FTP session times out or it can’t retrieve a file (which happened), so I had to cut a few pieces out of the upgrade script that had already been done in order to properly finish the upgrade. Wasn’t difficult to do, just a bit of a PITA, so I think I’ll keep looping and ask if the user wants to continue anyways if an error like that is encountered.
I also went through all of my websites and set them up in vmware to test. Each site passed with flying colors without me having to update a thing, so the apache+php upgrade should work fine (of course, this depends on the web apps involved too). Keeping php-mysql intact paid off (instead of dropping it in favour of just using php-mysqli); there should be no php code changes for the mysql-enabled apps. Also, the mysql upgrade went well; I did dump and restore the databases and ran mysqlcheck on them and everything came out ok.
Courier-imap was a little more interesting, but still didn’t take much time. The old version didn’t have the userdb explicitly noted, but it worked, so I had to add “authuserdb” to the “authmodulelist” line in /etc/courier/authdaemonrc, but beyond that it worked without a hitch. POP3 and POP3S worked fine (I’m assuming IMAP and IMAPS will work as well but I didn’t test them; the big thing with those is the authentication). I still plan to try dovecot, however. Other than that one change to authdaemonrc (and making sure to install courier-authlib-userdb), I didn’t have to change a thing in the configs. I did have to run makeuserdb to regenerate the userdb (was getting a gdbm error), but I think that’s because my webserver is x86_64 and the vmware setup was i586.
The only web issue I encountered was with a php ical-based calendering app. For some reason if you just go to it without any arguments it defaults to 1969 instead of the current year. Not really sure why, but can easily be worked around by linking to it with the current date (nothing showed up in the logs). Keep in mind that the httpd.conf from 2.0 and the same from 2.2 are vastly different. I recommend making a copy of your old httpd.conf and merging in the changes to the new one. Also, if you use mod_security, keep in mind that mod_security2 is a little bit different, so you might want to keep mod_security for a quick upgrade and then look at migrating stuff to mod_security2 (keywords and such are completely different). I suppose it wouldn’t be too difficult to keep both around for the life of 2.x, but mod_security2 is supposedly the better of the two so migrating to it sooner rather than later, especially if you use it, might not be a bad idea.
All in all, I think the webserver upgrade should go nicely. Need to tweak a few little things in the upgrade script, but overall it went extremely well on both the webserver upgrade simulation and the remote upgrade of the church backup server.
In light of this, I fully intend to upgrade the webserver by the end of the week and then unless there is something critical that breaks, will be releasing 2.0-RELEASE next week.
