The complete guide to Drupal, the opensource CMS


Explore the world of Drupal and discover how this open-source CMS is revolutionizing the creation and management of websites.

Whether you’re an inquisitive beginner or a seasoned developer, whether you’re setting up a blog or your project is complex, ambitious and multilingual, this detailed guide will give you an in-depth understanding of the solutions on offer.

Learn how to get the most out of this platform by avoiding the most common mistakes.

Welcome to the world of Drupal


Are you still hesitating to use this content management system (CMS)? Discover the many advantages and special features of this rich, flexible solution.

New trends such as headless and many others are covered by this up-to-the-minute solution.


What exactly is Drupal?


Drupal is a powerful open-source software package used to create and manage websites and applications. Launched in 2001 by Dries Buytaert, it offers unrivalled flexibility thanks to its modular structure and large community of technicians and experts.

Today, many websites rely on this technology. Examples include the NASA and Tesla websites in the USA, and Radio France and SNCF in France.

What sets this CMS apart from competitors like WordPress is its ability to adapt to projects of all sizes, from blogs to international corporate sites and government portals.

Advanced use and perfect mastery do require specific training or the help of a specialized agency, but this solution remains a simple way of offering a rich, stable experience to web users.


Why use Drupal?


One of Drupal’s strengths lies in its customizability, thanks to a multitude of modules (also called plugins, as with WordPress) and themes.

Modules can be used to extend the basic functions of the CMS, while themes can be used to adapt its appearance and enhance the experience. Drupal’s large community of thousands of developers actively contributes to further enhancing the solution.

What’s more, Drupal places particular emphasis on security and performance, making it a preferred choice for organizations and businesses that attach great importance to these aspects.

The CMS benefits from comprehensive documentation and high-quality technical support, enabling users of all skill levels to quickly familiarize themselves with the platform. In short, it’s a versatile, scalable solution for anyone looking to build and manage a professional, high-performance site.


From Drupal 6 to Drupal 10: a brief history of the solution


Drupal 6, launched in February 2008, was immediately heralded as a serious competitor to WordPress. Compared to its predecessors, this version introduces multilingual support and offers a richer, more diversified experience.

Drupal 7, released in January 2011, focuses on the platform’s security and scalability. It features enhanced media management (images, videos, etc.), customizable fields and simplified administration, making design and management more intuitive and flexible.

With the release of Drupal 8 in November 2015, Drupal takes a step forward by adopting an object-oriented architecture and integrating the Symfony framework. Drupal 8 offers several new features, such as YAML configuration, an integrated WYSIWYG editor and a RESTful API, facilitating interoperability with other systems.

Drupal 9, launched in June 2020, is more streamlined and optimized. Upgrading to the next version is made easier by maintaining compatibility with Drupal 8 modules and themes. Regular updates and improved performance are at the heart of this version.

Finally, Drupal 10 was introduced on December 10, 2022. This all-new update aims to enhance the CMS’ ease of use and accessibility, while continuing to improve its performance and security. This version emphasizes the adoption of the latest technologies, innovation, security and collaboration.

You can find out more in our dedicated article on the different versions and possible migrations.


How do I install and set up Drupal?


This step is relatively simple, and can be accomplished even by beginners. Here’s all the information you need and a few tips on how to get started.


System requirements


Compatible browsers


Sites created with Drupal core are generally compatible with all current browsers supporting CSS and JavaScript. On the web: Chrome, Firefox, Safari, Edge, Opera and on mobiles: Safari iOS, Chrome Android/iOS, UC Browser, Opera Mini, Samsung Internet.


Database servers

MySQL, MariaDB and Percona are compatible with versions 9 and 10, but also with PostgreSQL and SQLite, offering a rich variety of choices to meet your specific needs.

Drupal generally adapts to default configurations, but for more complex ones, adjustments may be necessary.


Web servers

Drupal 8 and higher will run on any web server compatible with the requirements of the PHP version.

It is, however, important to check and update the PHP version, as hosting providers often offer PHP version options, and the default version may be lower than that required.

It is also advisable to check for security updates.

Drupal runs on a variety of web servers, including Apache, Nginx and Microsoft IIS.

  • Apache is the most commonly used web server, with specific requirements such as the “mod_rewrite” extension for clean URLs.
  • Nginx, on the other hand, is a web server focused on high concurrency, performance and low memory usage.
  • Microsoft IIS is another choice, working with various versions of IIS if PHP is configured correctly.
  • You can also use the integrated PHP web server, although it is not recommended for public use as a production server.

As far as file and folder access rights are concerned, Drupal and PHP must have read and write access to the /sites/default/files directory.

It is essential to note that universal permissions such as 0777 are not secure and should not be used.

Drupal Core is compatible with requests using IPv4 and IPv6.


How to download and install Drupal


So, how does it work? It’s a quick and easy process if you follow the steps below:

  1. Check the prerequisites, but you may already have done so if you’ve read the previous paragraph.
  2. Download Drupal Core. Go to the official website and download the latest version.
  3. Extract the downloaded files into your server’s root directory or into a subdirectory.
  4. Create a new database (or “bdd” for the more experienced) and a dedicated user. Remember to write down this information and the password for the next step.
  5. Configure the settings.php file by renaming it from “default.settings.php” to “settings.php” in the “sites/default” directory. Open the file and configure the database connection parameters according to the previous step.
  6. Start installation: open a browser and navigate to the URL of your site (e.g. or You’ll be automatically redirected to the right page. Follow the on-screen instructions to select a profile, choose a language, check requirements and configure the database.
  7. Configure the site: next, you’ll be asked to configure your site’s basic information, such as name, e-mail address, time zone and administrator account.
  8. Log in to Drupal administration using the administrator account you created during installation. The administration URL is usually “” or “”.
  9. Manage plugins and themes to add new features or change the look and feel of your site. You can find them on the official Drupal website. To install a plugin or theme, download it and extract it into the “plugin” or “themes” folders of your installation, then activate it from the administration.

There’s also the Composer solution for installation, which we cover in this article.


How to install Drupal with Docker


Docker simplifies the configuration and deployment process by providing a containerized environment. Here are the steps to follow:

  1. Install Docker. Make sure you have Docker and Docker Compose installed on your machine. If not, consult the official Docker documentation for installation instructions.
  2. Download Drupal to Docker Hub by running the following command in your terminal or command prompt: docker pull drupal
  3. Create a docker-compose.yml file in a dedicated directory. This file defines the services, volumes and networks for your Drupal installation. Use the following contents as an example for your file:version: “3.7 “services: drupal: image: drupal ports: – “8080:80″volumes:- drupal-data:/var/www/htmldatabase:image: mariadbenvironment:MYSQL_ROOT_PASSWORD: root_passwordMYSQL_DATABASE: drupalMYSQL_USER: drupalMYSQL_PASSWORD: drupal_passwordvolumes: – db-data:/var/lib/mysqlvolumes: drupal-data: db-data:
  4. Start container startup. Open a terminal or command prompt, navigate to the directory containing the docker-compose.yml file and run the following command to start the containers: docker-compose up -d
  5. Open a browser and navigate to the URL of your installation (e.g. http://localhost:8080 (http://localhost:8080/)). Follow the on-screen instructions to select a profile, choose a language, check requirements and configure the db. Use the db information defined in the docker-compose.yml file.
  6. Next, you’ll be prompted to configure your site’s basic information, such as name, e-mail address, time zone and administrator account.
  7. Finally, log in to the Drupal administration interface using the administrator account you created during installation. The administration URL is usually “http://localhost:8080/user”.


3 tips for successful database configuration


  • Tip 1: Use profiling tools to optimize queries. When your Drupal site starts receiving a lot of traffic, it’s important to optimize queries to improve performance. You can use profiling tools such as Query Monitor or New Relic to identify slow queries and optimize them accordingly.


  • Tip 2: Optimize indexes and tables to improve performance. Optimizing indexes and tables can also help improve performance. You can use tools such as MySQLTuner or pgTune to optimize indexes and tables according to your site’s workload


  • Tip 3: Use database clusters for high availability. If you have a high-traffic site, it’s important to guarantee high availability. You can use clusters in particular in the event of a node failure. Tools such as Galera Cluster or Pacemaker can be used.



3 simple tips for successful site configuration


  • Tip 1: Make sure you configure the basic parameters correctly, such as site name, administrator e-mail address and time zone. These basic settings are essential for your site to function properly. Use strong credentials for your passwords (the basics!)
  • Tip 2: Set permissions correctly. Before you launch your site, you need to configure permissions for the different types of user. Make sure you give each user the appropriate permissions to ensure that the site is secure.
  • Tip 3: Remember to set your time zone. This will allow content publication times (including newsletters) to be accurate. This is a common oversight. It’s particularly important if you’re targeting an international audience.


The basics to get started


A Drupal project needs solid foundations. Here are a few tips and tricks to help you avoid common mistakes and master the basics.


How to structure the content of your site


Structuring your content is important, not only to deliver an optimal experience, but also to make it easier for your teams to manage. Two essential points. Here are a few key points to bear in mind.


  • Before you even start creating content, prepare the structure of your site (by involving your product and editorial teams, for example.) Identify together the main sections, categories and sub-categories you want to offer.
  • Use all the content types offered by Drupal. There are several types by default: articles, pages and events. Use the appropriate content type for each element, depending on its nature and purpose.
  • Configure the fields for each type according to the information you wish to display. For example, for an event, you can include the date, time and location. This customization will save you time and simply improve your site.
  • Use vocabularies and taxonomy terms to organize your content into categories and sub-categories. This makes it easier for visitors to navigate your site and groups similar content together.
  • Create navigation menus to make it easy for customers to “surf” your site. Configure menus according to your site’s structure, and include links to main sections and important pages.

By following these key elements, you can structure your site’s content well, offer an optimal user experience and make content management easier for administrators.


How to use the Entity Validation Framework (fev)?


Framework Entity Validation (fev) is a validation system that guarantees the integrity and validity of recorded data. It ensures that the information entered complies with the rules defined in the site, notably in terms of types, field formats and specific validations.

To set it up, access the “Structure” section, then “Content types”. Click on the content type you wish to configure, then on the “Fields” tab. Click on the “edit” icon next to the field you wish to validate, then on “Configure validation”. Finally, select the appropriate validation rules and configure them as required.


Managing users and assigning roles 

Managing users and assigning roles is an important aspect not to be overlooked. You have the option of doing this for each person individually, or of creating roles that group together several of the same type. The latter option is preferable if you need to manage more than a dozen accounts.


How to manage single account allocations

Click on “Add a new user” in the section of the same name in the administration interface. Fill in the mandatory fields, such as e-mail address, name… And configure the other options according to your needs. Then configure their permissions. These determine what they can see and do on your site.

For example, you can give administrators extensive permissions, while editors will not have access to administration functions. By assigning these rights correctly, you can guarantee the security of your project.


How to create different roles to manage multiple accounts

The first step is to create user roles according to their access level and responsibilities. By default, Drupal offers roles such as “administrator”, “moderator” and “user”. You can also create custom roles to better suit your needs. For example, one role for editors and another for support team members.

You can then assign these predetermined roles to each person on your team. If you wish to make an exception, you can always modify the assignments of a single person in Settings.


Modules to help you

For example, “Content Access” lets you configure security rules for your site’s content, while “Role Delegation” (as the name suggests) lets you delegate specific tasks to particular roles.


Managing your site’s menus


Menus make it easy for visitors to navigate your site. They must therefore be clear, relevant and reflect the structure of your offer and products. Here are a few practical tips to help you excel in this area:

Start by creating menu links. Go to the “Structure” section and click on “Menus”. Then choose “Add a link” and fill in the required fields.

To organize menu links: simply drag and drop. You can also create submenus by dragging a menu link under another link and shifting it slightly to the right.

You can then configure menu options to customize their appearance and behavior. To do this, go to the “Structure” section, where you’ll find display options.

Finally, consider using plugins to extend menu management functionalities. For example, “Menu Block” lets you create customized menus for each region of your site, while “Superfish” lets you add advanced functions to menus, such as drop-down submenus.


Managing updates


Whether major or minor, Drupal updates bring interesting new features, fix bugs and make your site more secure. So it’s important to keep your site up to date. To make this job easier and avoid tedious maintenance, here are a few best practices to keep in mind:

  • Avoid adding custom development to existing solutions. By trying to customize modules, for example, you’ll be depriving yourself of important future updates.
  • Choose your modules with care and… avoid accumulating them. This will guarantee the maintainability, security and performance of your site.
  • Similarly, don’t modify Drupal’s source code directly. Instead, use modules, themes and sub-themes.
  • Use source code management tools such as Git or SVN to track code changes and facilitate branch and version management.
  • Plan updates in advance, taking into account the plugins used on your site, to minimize risk and ensure a smooth transition to the new version.


How to customize your site in the right way


Customization is one of Drupal’s strong points. While this is accessible and simple, it is important to respect certain rules to ensure the security and maintainability of your project.


Tips for using themes


To start with, make sure you select a quality theme to guarantee the security and stability of your website. For this, choose a popular theme that is regularly updated and supported by the community. If it’s a redesign, be sure to test it before putting it into production to ensure compatibility with existing plugins.

Then, avoid modifying the source code directly, as this could make upgrading to a higher version more difficult and risky. To customize its appearance and behavior, work on sub-themes instead.

Another important point to remember: optimize image weight. They can slow down your site’s loading speed.

Finally, don’t hesitate to use modules to extend the possibilities of your theme. For example, the “Views” plugin lets you create custom views for your content, while the “Menu Block” plugin lets you create custom menus for your theme.


To customize your site, consider Bootstrap themes


By using Drupal’s Bootstrap themes, you can create a modern, responsive site. The Bootstrap library is an open-source front-end framework. Bootstrap themes integrate the Bootstrap library into their code, enabling you to use Bootstrap features such as pre-designed CSS classes for grids, buttons and forms.

Bootstrap themes can be customized by modifying the CSS code, adding custom classes and using modules. Drupal offers numerous modules to extend the possibilities. For example, “Bootstrap Paragraphs” lets you create complex layouts for your content, while “Bootstrap Forms” lets you customize your site’s forms.


How to install and configure modules?


Modules (or plugins) are also one of the strengths of the solution. They enable you to add advanced functionalities without the need for custom development, and then benefit from community support for their maintenance.

To install a module, download it from the official website. They are generally supplied in a compressed format (zip or tar.gz) which must be extracted.

Then log into your site with an administrator account. Click on the “Modules” menu and choose “Install a new module.” Select the compressed file you downloaded and extracted earlier.

You can then configure and activate it as required. To avoid errors, however, avoid excessive configuration, which can generate conflicts and errors. Also check that the module is properly maintained and don’t forget to update it.


Drupal Layout Builder: the tool for your layouts


Drupal Layout Builder is a powerful and flexible tool that lets you design content layouts using a user-friendly visual editor, without having to code. To use it, you’ll need to create layout templates for different types of content, by creating sections that can be reused for elements such as headers, footers and sidebars.

Next, Drupal Layout Builder uses a system of blocks to determine their appearance and behavior. Don’t hesitate to “templatize” your content as much as possible to avoid exceptions and therefore manual intervention.


Drupal Web forms: forms made easy


Drupal Webform makes it easy to create personalized forms (contact, registration, quote request, survey, etc.). It installs like any other module. When configuring it, there are a few important points to bear in mind.

First, don’t add too many fields, as this may confuse customers.

Next, be sure to test the form before putting it into production, to ensure that the information collected will be usable.

Don’t forget to set up notifications to be informed of form submissions. Finally, make sure your form is secure by using tools such as captcha.


Drupal Commerce, a simple yet powerful plugin


Drupal Commerce offers a complete range of options to facilitate the production of e-commerce sites.

These include catalog management, payments, order management, delivery options and analysis reports. The possibilities are truly endless.

If you’re already familiar with the structure of your e-commerce site (product categories, etc.), then setting up Drupal Commerce shouldn’t be a problem.

There are a number of necessary plugins, for example: “Address”, “Commerce Cart”, “Commerce Order”, “Commerce Product” and “Commerce Checkout”.

Next, create templates for your product sheets: determine their attributes, fields, delivery options, prices, etc. Well-structured sheets will then enable you to quickly design and write them.

Of course, don’t forget to test your purchasing tunnel and authorized payment methods before going online. There’s nothing like putting yourself in the customer’s shoes. Beginner’s pitfalls: don’t forget to configure taxes and shipping costs.

Maintenance, optimization and safety: the tools you need to know 

There are a number of tools available to help you maintain, optimize and secure your project.


Backup your data for rapid restoration


Backing up and restoring your website is essential to guarantee its security and continuity in the event of a problem.

Here are a few tips and best practices to follow for successful backup and restoration.

  • Make regular backups. We recommend backing up your website at least once a week.
  • Store your backups in a safe place, to avoid data loss in the event of a problem with your website.
  • Make sure you have a clear recovery plan in place before you run into a problem.

To help you, use backup modules such as Backup and Migrate to automate the backup process and simplify restoration when needed.


To track your site’s activity: logs


Logs record all activity on your website, including errors, warnings and system information. Log analysis can help identify performance and security issues, as well as improve the user experience.

It’s important to configure logs correctly according to your site’s needs, and to consult them regularly to identify problems.


Drush Drupal, a true travel companion


Drush is a command-line tool for routine administrative tasks such as updates and user management.

It can also be used to automate repetitive tasks and speed up website development. We recommend that you familiarize yourself with Drush’s basic commands and use it regularly to improve the efficiency of your work.

Multisite with Drupal: your own site factory

Multisite is the secret weapon if you’re aiming for multiple versions of the same site, for example, in the case of a multi-language deployment.

Imagine being able to manage several websites with a single Drupal Core installation.

No need to waste time (and money…) on development and maintenance. Multisite is the ideal solution for companies needing to manage several related projects, whether regional or product-based.

You can also pool resources such as themes, datasets and plugins, making it easier to manage and personalize the user experience.

With a multisite, you can be more efficient and more productive… at a lower cost.


Drupal tokens: be dynamic!


Tokens are strings of characters used to generate dynamic content based on user or website parameters. They are used to generate links, URLs, text fields and other dynamic elements.

They can be customized as required, and are very useful for automating repetitive tasks.

Here are a few examples of dynamic tokens:

[user:name] – generates the username of the currently logged-in user
[user:mail] – generates the e-mail address of the currently logged-in user
[current-page:title] – generates the title of the current page
[current-page:url] – generates the URL of the current page
[date:custom:Y-m-d] – generates the current date in year-month-day format
[node:title] – generates the title of the current node
[node:url] – generates the URL of the current node
[term:name] – generates the name of the current term
[term:url] – generates the URL of the current term


A sitemap that’s just right for SEO


A sitemap is a map of your website that lists all its pages, including those that may be hidden and those at a lower level. The sitemap is useful for improving user experience, facilitating navigation and optimizing search engine optimization (SEO).

Setting up a sitemap and submitting it to search engines (for example, from your Google Search Console, if you’re using Google Analytics) is recommended to improve your website’s visibility.


Drupal Devel to stay ahead of bugs


Drupal Devel makes it easier to develop and debug websites. For example, the module can generate random data, measure performance and visualize database requests.

Drupal Devel is very useful for engineers looking to improve the efficiency and quality of their code.


Indispensable resources at your disposal


When you work with this CMS, you have access to many indispensable resources to help you. A point that should reassure beginners. Here’s a quick overview of the resources available to those who want to get started.


An involved community


The community is one of the most valuable resources of this solution. It’s made up of thousands of developers and users who share their experience, knowledge and problem-solving tips. It also features forums, newsgroups and local events so you can connect with other users and share information.

Each module, plugin and theme is supported individually. So don’t hesitate to call on us.


Comprehensive, accurate documentation


Documentation is another strong point. It’s available online, in a range of languages, and gives you access to practical guides, tutorials and code examples to help you. You’ll rarely be alone when faced with a problem.


Numerous websites and blogs


Finally, Drupal websites and blogs can also help you find tips and tricks for improving or developing your project. You can find site examples, plugin reviews and discussions on the latest trends.

Finally, don’t hesitate to enlist the help of experts to help you set up your Drupal site.