Drupal Console great command-line tool for managing Drupal 8 sites

30th Oct 2022
Unfortunately, getting Drupal Console running on Windows can be quite difficult.
Table of contents

The Drupal Console has become a great command-line tool for managing Drupal 8 sites. In our Drupal 8 Module Development Trainings, we use it to automatically generate boilerplate code, so our trainees can get a quick start! Even though Drupal Console has been out for just one year, it already has over four hundred thousand downloads.

Unfortunately, getting Drupal Console running on Windows can be quite difficult. So we thought we'd help! We helped fix Drupal Console's integration with Acquia Dev Desktop on Windows, and we wrote this step-by-step guide to help you get it working too.

Getting started

To follow this guide, you'll need the following:

  1. A recent version of Windows. I've done my testing on Windows 10, but Vista or newer should work.
  2. An installation of Acquia Dev Desktop. It's typically installed in C:\Program Files (x86)\DevDesktop, so if you installed it at a different path, you may have to alter these instructions.

Watch out if you've installed other web development or command-line environments in Windows—they might interfere. For these instructions, make sure in particular to only use the command-line that Dev Desktop gives you, and no other. Try to run Drupal Console in its own command-line window, since other commands might modify your command-line's environment.

Installation steps

We'll need to use a recent version of PHP for Drupal Console to work. Open Dev Desktop, select Acquia Dev Desktop ➡ Settings. On the Config tab, set the Default PHP version to the recommended version of PHP 7.Set default PHP version

Drupal Console works with Drupal 8 only, so you'll need a Drupal 8 site to work with. If you already have a working Drupal 8 site in Dev Desktop, just make sure it's using PHP 7.x.

If you don't have a Drupal 8 site, install one with Dev Desktop. Click + ➡ New Drupal site… and use the latest version of Drupal 8. Choose whatever site name and database settings you like, the defaults are probably fine—but make sure to use PHP 7. Once the site is finished downloading, visit the site and follow the Drupal installation process.

Since Drupal Console is a command-line tool, we'll need to use a command line to run it. Even if you have one open already, it's safest to open a brand new one. You can get a Windows console for your site by clicking the Open Drush console button in Dev Desktop:

We'll be using Composer to install Drupal Console. Unfortunately, Dev Desktop installs Composer in a strange way, and just running composer does not work. We'll have to modify its batch file by running the following command:

echo @php "C:\Program Files (x86)\DevDesktop\tools\composer.phar" %* > "C:\Program Files (x86)\DevDesktop\tools\composer.bat"

Note: To run a command, just copy it from this webpage, paste it into your command-line window, and press Enter. Or if it's short, you can just type it in and then press Enter.

Now let's finally install Drupal Console. Make sure your current directory is your site root, and then run the following:

composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader --sort-packages

This will download Drupal Console and all its dependencies.

Let's test out Drupal Console! Run:

vendor\bin\drupal site:status

You should see a list of information about the site. If that doesn't happen, check out our troubleshooting steps.

Note: Make sure you get the correct slash. Windows uses \ unlike unix systems which use /.

To make it easier to run Drupal Console without having to type vendor/bin/drupal all the time, we can install the Drupal Console Launcher. First, download the launcher:

php -dopenssl.cafile= -r "readfile('https://drupalconsole.com/installer');" > "C:\Program Files (x86)\DevDesktop\tools\drupal.phar"

Then, create a batch file so we can run the console easily:

echo @php.exe "C:\Program Files (x86)\DevDesktop\tools\drupal.phar" %* > "C:\Program Files (x86)\DevDesktop\tools\drupal.bat"

Now you should be able to just run drupal site:status from anywhere inside your site root, and it will automatically find and run the Drupal Console.

Note: If the instructions for this step don't work for you, you will have to run vendor/bin/drupal instead of just drupal.

If you want Console to work on another Drupal site, you'll need to install Drupal Console again for that site. Don't forget to make sure the site is using PHP 7!

Troubleshooting

Did something go wrong? Our troubleshooting page might help you figure out what happened.

If that still didn't help, let us know! Email us, or leave a comment on this post. Please point us to a Gist containing the complete log of what happened at the command-line, so we can diagnose the problem, and update our instructions.

Where to go next?

If these instructions worked for you, spread the word! We want to get as many people as possible using Drupal and Drupal Console. Also let us know if there's another Drupal environment for Windows that you'd like instructions for—Bitnami? XAMPP? Something else?

Once you have Console working, there are a ton of interesting things you can do with it! Here's some great blog posts other people have written to help you learn more:

Bạn thấy bài viết này như thế nào?
2 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Master list (in progress) of how to get parts of fields for use in Twig templates. I’m always having to look these up, so I thought I’d hash them out and write them down.

Litespeed Cache là plugin WordPress dùng để kết hợp với Web Server LiteSpeed nhằm tăng tốc website WordPress của bạn gấp nhiều lần

In this article, we are going to see how some tools & libraries will make people's lives easier during the development & code review process.

In this tutorial, you will learn how to improve the custom code, theme and module, and general code development by using the pre-commit hook on git

Trước khi tìm hiểu xem PHP Code Sniffer là gì thì các bạn cần phải nắm được coding convention là gì đã.