Turbo Indexer Requirements - Drupal, Search API Solr, PHP pcntl

Drupal, Search API Solr, PHP extensions and Drush layout

Requirements

Check these five things before the first run. Each one is something the indexer uses directly.

  • Drupal 10 or 11.
  • Search API and Search API Solr, enabled, with at least one enabled Solr server and an enabled index on it.
  • The PHP extensions pcntl and posix in the command-line PHP, the one Drush runs. The web server's PHP does not need them.
  • Drush inside the project, in the Composer layout: the vendor folder sits next to the Drupal web root (for example web/ and vendor/ side by side). The indexer starts its background process and its workers through vendor/bin/drush.php, or vendor/bin/drush when there is no drush.php.
  • Linux or macOS with nohup and pkill, and a writable /tmp for the session files.

Check the PHP extensions

Run this with the same PHP that runs Drush. It prints both names when both are there:

php -m | grep -E '^(pcntl|posix)$'

If one is missing, install or enable it for that PHP version, then run the check again. Without pcntl, drush ost stops at once with pcntl extension required.

The workers run with the same PHP binary as the command that started them, so one check covers them all.

Memory and CPU

Every worker is its own Drupal process that loads its whole batch at once. The memory a run needs grows with the number of workers and with the batch size, and every worker also keeps your database and Solr busy. How to pick both numbers: Workers and batch size.

Ready? Next step: Install.

Getting started