From ArchWiki
Jump to: navigation, search

"Drupal is a free and open source content management system (CMS) and Content Management framework (CMF) written in PHP and distributed under the GNU General Public License." - Wikipedia

This article describes how to setup Drupal and configure Apache, MySQL or PostgreSQL, PHP, and Postfix to work with it. It is assumed that you have some sort of LAMP (Linux, Apache, MySQL, PHP), LAPP (Linux, Apache, PostgreSQL, PHP) or LASP (Linux, Apache, SQLite, PHP) server already setup.


Install the drupal package.



Edit /etc/php/php.ini:

  • To enable support for image manipulation uncomment the line extension=gd.so

For database support enable a PDO extension for your database

  • To enable support for SQLite uncomment the line extension=pdo_sqlite.so
  • To enable support for MySQL uncomment the line extension=pdo_mysql.so
  • To enable support for PostgreSQL uncomment the line extension=pdo_pgsql.so


Copy the example Apache configuration file:

# cp /etc/webapps/drupal/apache.example.conf /etc/httpd/conf/extra/drupal.conf

And include it at the bottom of /etc/httpd/conf/httpd.conf:

Include conf/extra/drupal.conf

In /etc/httpd/conf/httpd.conf, also uncomment the LoadModule rewrite_module modules/mod_rewrite.so line.


Edit /usr/share/webapps/drupal/.htaccess and replace Require all denied by Require all granted.

Finally, restart[broken link: invalid section] Apache (httpd.service). You can now access the Drupal installation at http://localhost/drupal .

Commandline tools


Drush is a command line shell and Unix scripting interface for Drupal. Drush core ships with lots of useful commands for interacting with code like modules/themes/profiles. Similarly, it runs update.php, executes sql queries and DB migrations, and misc utilities like run cron or clear cache. Drush can be extended by 3rd party commandfiles. It can be installed with the drushAUR package.


Drupalconsole is a CLI tool to generate boilerplate code, interact and debug Drupal 8. It can be installed with the drupalconsoleAUR package.


PHP-Codesniffer-Drupal checks your Drupal code against coding standards and other best practices. It can be installed with the php-codesniffer-drupalAUR package.

Tips and tricks

Sending Mail

Drupal needs a Sendmail-compatible MTA like Sendmail, Postfix or Exim if you plan to send mail from your local setup. Alternatively there are multiple solutions to send mail via external mail servers through SMTP or other means like SMTP or PHPMailer. Use the search page to find more possibilities.

Scheduling with Cron

Drupal recommends running cron jobs hourly. Cron can be executed from the browser by visiting http://localhost/drupal/cron. It is also possible to run cron via script by copying the appropriate file from the "scripts" folder into /etc/cron.hourly and making it executable.

Upload progress not enabled

Upon successful installation you may see the following message in the Status Report:

Your server is capable of displaying file upload progress, but does not have the required libraries. It is recommended to install the PECL uploadprogress library (preferred) or to install APC.

First, install the php-pearAUR package. Next, use the pecl command to automatically download, compile and install the library:

# pecl install uploadprogress

Finally, add to /etc/php/php.ini


Restart Apache.

See also