I have the fun task of upgrading our aging Moodle platform from 3.1 to 4.1 (going through 3.5 > 3.9 > 4.1)
I only have FTP access, but I assume that's all I need? I'm following the upgrade guide, but the guide is telling me to back up everything in server/htdocs/moodle but I don't have a folder named 'moodle' in htdocs...
Also its telling me to back up server/moodledata, but its just called 'data' on our server. Is that going to be a problem?
Oh, one last thing, as I go through the upgrades, I'll need to change PHP version. Is this something I can do within Moodle before/during/after I upgrade?
Many thanks!
Oh, what 'fun'! 
First, with current version, login as admin, go to Server Environment check. Update the component. Then use the moodle version drop down list to set to the versions you've given in your 'plan' for the 'march' and see what moodle says about PHP version + php extensions ... and DB version, That's kina your road map.
See chart for min/max's:
Guides cannot be written to cover all sites and how they are config'd so as long as you can substitute what they say to your known situation then you're ok! ... so make a site backup of what's in htdocs - and do a DB dump, and a backup of minimally data/filedir (in your case)!
. The other directories in data are caches and will be rebuilt by cron job and or use.
Strongly suggest, making another site backup after successful upgrade to whatever higher version ... don't want to loose ground gained if you have to re-do a hop! :|. Got enough space for backups?
Another prelim ... plugins ... check the current site's additional plugins to see if they have a version for 4.1.
That includes the theme.
Matter of fact, might be a good idea before you begin your first hop upwards to force the use of 'boost' theme in config.php
Add a line to config.php:
$CFG->theme='boost';
and leave it like that through the march!
Suggest you update core first, then login as admin and check for updates. Get additional plugin updates via the GUI.
'SoS', Ken
FTP access will work but ssh access would make things a lot easier.
It does not matter what your data folder is called.
You cannot upgrade php via Moodle - this is a server upgrade (you might also need to upgrade your database server) so you will have to have more access than just ftp for that...do you have control panel access? Server support?
The march is not that bad - I have done a few - but honestly the 4.1 has been the hardest for me and has caused a lot of other people issues too...mainly due to the server upgrades that are required...
It does not matter what your data folder is called.
You cannot upgrade php via Moodle - this is a server upgrade (you might also need to upgrade your database server) so you will have to have more access than just ftp for that...do you have control panel access? Server support?
The march is not that bad - I have done a few - but honestly the 4.1 has been the hardest for me and has caused a lot of other people issues too...mainly due to the server upgrades that are required...
Hi Emma!
I've asked the host for cPanel or equivalent, but still waiting on a reply. If not, then maybe I'll see if they can do the PHP as I upgrade. However, as in my reply to Ken below, I'm wondering if its better to just start a new install of M4.1 and import the courses as I'd need to 'rework' them for the new version anyway. I'm just wondering if I can bring in all users and their data/progress...
I've asked the host for cPanel or equivalent, but still waiting on a reply. If not, then maybe I'll see if they can do the PHP as I upgrade. However, as in my reply to Ken below, I'm wondering if its better to just start a new install of M4.1 and import the courses as I'd need to 'rework' them for the new version anyway. I'm just wondering if I can bring in all users and their data/progress...
> I have the fun task of upgrading our aging Moodle platform from 3.1 to 4.1 (going through 3.5 > 3.9 > 4.1)
>
> I only have FTP access, but I assume that's all I need? I'm following the upgrade guide,
So, Upgrading#Install the new Moodle software tells you:
1. Move your old Moodle software program files to another location. Do NOT copy new files over the old files.
2. Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server.
and doesn't tells you How. It is up to you.
>
> I only have FTP access, but I assume that's all I need? I'm following the upgrade guide,
So, Upgrading#Install the new Moodle software tells you:
1. Move your old Moodle software program files to another location. Do NOT copy new files over the old files.
2. Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server.
and doesn't tells you How. It is up to you.
A couple of things/questions for ya ...
Since you say you have only FTP access, what sort of hosting do you have? Shared hosting? Do you have a hosting panel like cPanel or Plesk? In that panel is there a Terminal icon? is there a Git icon?
Emma has already said it's doable via FTP, true, but on shared hosting you might not have control enough for PHP versions + extensions as well as DB version - let alone things like inode limits and space for backups.
Depending upon your answers to the above questions, you might be in need of an upgrade to hosting ... from shared to VPS is what providers normally offer.
3.1 was released in May of 2016!
That's 7 years ago and 12 versions behind.
That has made your role in this difficult and lots of catch 22's and rabbit holes. More 'fun' than anyone really wants!
That's 7 years ago and 12 versions behind.
That has made your role in this difficult and lots of catch 22's and rabbit holes. More 'fun' than anyone really wants!
And there is yet one more ... Teachers and Students under version 4 are no longer 'in Kansas' (reference to Yellow Brick Road). 3.1 to 4.1 is disruptive and you, your teachers/trainers/students/participants will have some new learning in the use of Moodle. :| Since you are your entities server admin those questions/how-2's etc. will fall to you?
'SoS', Ken
Hi Ken!
Sorry for the slow reply, I'm waiting on the host to answer those questions! At the moment I have no cPanel access, but I've asked for it!
I've just completed one minor upgrade from 3.1 to 3.2 (knowing the PHP version was fine) on our test/staging server and the upgrade went well, although a few things broke in the courses, but I was expecting that. However, I'm tempted to just start the site from scratch and just import the courses (there aren't loads) but would I be able to bring users and their data across?
Many thanks!
Sorry for the slow reply, I'm waiting on the host to answer those questions! At the moment I have no cPanel access, but I've asked for it!
I've just completed one minor upgrade from 3.1 to 3.2 (knowing the PHP version was fine) on our test/staging server and the upgrade went well, although a few things broke in the courses, but I was expecting that. However, I'm tempted to just start the site from scratch and just import the courses (there aren't loads) but would I be able to bring users and their data across?
Many thanks!
Do you really plan to go through 13 major upgrades to reach 4.1 from 3.1? I would jump from 3.1 LTS to 3.5 LTS to 3.9 LTS to 4.1 LTS.
You saw the route planer, http://www.syndrega.ch/blog/#php-and-dbms-compatibility-of-major-moodle-releases, right?
Making full course backups to restore to a 4.1 is the path of least resistance, but ... there is always one of those 'buts'! 
In the 4.1, best if you have all the additional plugins that were installed in the 3.1 installed in the 4.1. Theme, course format, question types, etc., etc.
If you have enough space on old server could setup automated full user backups to a designated directory ... outside of moodledata/filedir/ so you can see them and manipulate their location.
If all those complete successfully and you have the 4.1 prep'd, then it's a matter of xfering the course backups onto the new server in a file system repo where they can be restored.
On the new server, one needs a cPanel (or any panel) that provides 2 'advanced' things - Terminal and Git. Yes, Terminal is command line. Moodle server admin is best done via command line where it makes sense to use CLI ... and me thinks this is one of those times!
Git ... I'd install the new 4.1 instance via git versioning ... that will make your admin life much easier when it comes to updating/upgrading your Moodle.
My 2 cents, of course!
'SoS', Ken