Steps taken to manually upgrade Drupal 8.3.6 to Drupal 8.4.2
Notes and directions on how to upgrade a basic Drupal 8.3.6 site to Drupal 8.4.2 using the manual method rather than the automated (and recommended) methods using drush and/or composer.
The initial Drupal 8.3.6 setup:
The start off, manually upgrading Drupal to an up-to-date version is not recommended by anyone online that I can tell. There are several articles describing how to use drush and/or composer to do the job. A special note to take into account regarding the information in this post is that the site that was upgraded had only 2 contributed modules added (captcha and recaptcha).
The reason why I needed to upgrade at all was not only due to needing the update but also because on my shared hosting provider I was unable to install Drupal 8.4.2 successfully. During the install process, there were several error messages that appeared at the point that the install script was running to perform the actual install (right after the database information was submitted). The DB was only partially setup and the site was non-functional. I did not capture the error messages (perhaps I can edit this post when/if I get the time to try this operation again).
I was able to get Drupal 8.3.6 installed without problems. So I had to start the build of the web site with an out-of-date version of Drupal. Things to note that allowed Drupal 8.3.6 to be installed were:
- Had to make rewrite base set to "/"
Contents of php.ini:
register_globals = off;
memory_limit = 256M;
allow_url_fopen = off;
magic_quotes_sybase = off;
magic_quotes_runtime = off;
magic_quotes_gpc = off;
error_reporting = E_ALL | E_STRICT;
log_errors = on;
display_errors = on;
error_log = [path to web site from root]/phperrors.log;
session.cache_limiter = nocache;
session.auto_start = 0;
opcache.file_cache= [path to web site from root]/.opcache;
After Drupal 8.3.6 was installed, here are the steps I followed to upgrade to Drupal 8.4.2:
- Backed up the drupal database using phpmyadmin and exporting the database to a SQL file.
- Backed up all the files on my working Drupal 8.3.6 site.
- Set the site into maintenance mode (Administration -> Configuration -> Development -> Maintenance mode)
- Deleted the CORE and VENDOR directories in the site folder
- Deleted the autoload.php, composer.json, composer.lock, index.php, license.txt, readme.txt, robots.txt, update.php and web.config files.
- Copied the new (D8.4.2) versions of the CORE and VENDOR folder into the site folder.
- Copied the new (Drupal 8.4.2) versions of the autoload.php, composer.json, composer.lock, index.php, license.txt, readme.txt, robots.txt, update.php and web.config files into the site folder.
- Navigated/Ran the update.php file (i.e. http://www.example.com/update.php)
- Went to Administration -> Reports -> Status to review any problems (I had none)
Took the site out of maintenance mode (Administration -> Configuration -> Development -> Maintenance mode).
Worked like a charm. No issues.