Updating Drupal Core Manually
Before You Begin
If you haven't already, it's recommended to read this overview, which outlines all available methods for updating Drupal 8.
PS: This update procedure is also covered in the Drupal User Guide.
If you've installed contributed modules with third-party dependencies via Composer, use Composer-based update methods instead. These instructions will overwrite the vendor/
directory.
Updating Drupal 8 Core
Steps for manually updating Drupal 8 core using the command line and/or a browser:
1. Backup your files and database
Make a complete backup. Save any manual edits to files like .htaccess
, composer.json
, or robots.txt
, as they will be overwritten.
Always restore from backup if you encounter a fatal error during the update.
2. Log in to Drupal
Ensure you’re logged in with a user who has the "Administer software updates" permission.
3. Enable maintenance mode
- Go to Administration > Configuration > Development > Maintenance mode
- Check “Put site into maintenance mode” and click “Save configuration”
4. Delete core and vendor files
Using the command line:
cd /path/to/your/drupal/directory rm -rf core vendor rm -f *.* .[a-z]*
Using an FTP client:
Select and delete all top-level files (including hidden files) as well as core
and vendor
directories. Do not delete modules
, profiles
, sites
, or themes
.
5. Optional: Check release notes
If default.settings.php
has changed, replace your current settings.php
with the new one and reapply your custom settings.
- Copy the new
default.settings.php
tosettings.php
- Edit the new
settings.php
and re-enter your database credentials and any custom settings
6. Download new core files
Using the command line:
wget https://ftp.drupal.org/files/projects/drupal-x.y.z.tar.gz tar zxf drupal-x.y.z.tar.gz cd drupal-x.y.z cp -R core vendor /path/to/your/drupal/directory cp *.* .[a-z]* /path/to/your/drupal/directory
Using a browser and FTP:
- Download the latest Drupal 8.x version from drupal.org
- Extract the archive locally
- Upload the
core
andvendor
directories and top-level files to your site
7. Reapply manual changes
Restore custom edits to files like .htaccess
, robots.txt
, and composer.json
if applicable.
8. Run update.php
Visit: http://www.example.com/update.php
If you can’t access update.php
due to permissions:
$settings['update_free_access'] = TRUE;
Then revert the line to:
$settings['update_free_access'] = FALSE;
9. Check site status
In your admin interface, go to Administration > Reports > Status report and verify everything is working correctly.
10. Disable maintenance mode
- Go to Administration > Configuration > Development > Maintenance mode
- Uncheck “Put site into maintenance mode” and save
11. Clean up
rm drupal-x.y.z.tar.gz rm -rf drupal-x.y.z/
12. Done!
You’ve successfully updated Drupal 8 core using a manual install via shell/browser 🎉
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.