Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

What hosting Exponential involves

The parts a hosting company provides for an Exponential site (PHP for the web and the command line, a database, a web server or Velocity, cron, mail, writable storage, backups and TLS), what runs all the time, and the…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/hosting/basics/what-hosting-exponential-involves.md

On this page

What hosting Exponential involves

This page is for product managers and system administrators at a hosting company who are about to offer Exponential hosting and want the whole picture first. It answers: what Exponential is from a server's point of view, which parts the host provides, what keeps running after the install, and how the work can be divided between host and customer. The details of each part are on the other pages of Hosting basics.

Contents

  1. Exponential from the server's point of view
  2. The parts a host provides
  3. What keeps running after the install
  4. How a site gets installed
  5. Dividing the work: options
  6. Checklist
  7. Related pages

Exponential from the server's point of view

Exponential is an open source content management system written in PHP and published under the GNU GPL (composer.json: "license": "GPL-2.0-or-later"). It is maintained by 7x (Who is 7x?) and continues a code base whose original product its creator discontinued after almost 18 years.

For a server, an installation is:

  • Plain PHP files in one directory (the kernel, lib/, extension/, design/, vendor/), with one front controller, index.php, that every page request goes through (chapter 3).
  • A database: one of six supported engines, SQLite 3 by default, which needs no database server at all (Databases in the official order).
  • A writable run-time tree, var/, holding caches, logs, uploaded files and image variations, and (with SQLite) the database file, plus settings/override/ and settings/siteaccess/ with the installation's own settings.
  • Command line tools: the console bin/php/console, the scripts in bin/php/, and runcronjobs.php, which runs the periodic jobs.

It has no compiled code of its own, so it runs wherever a supported PHP runs (Operating systems for hosts).

The parts a host provides

PartWhat Exponential needsPage
PHP for the web8.0 or later (Velocity included), with the required extensionsPHP versions and extensions
PHP on the command linethe same version and extensions as the web PHPPHP versions and extensions
php.inithe values the installer checks, sized for uploads and importsPHP settings for Exponential
A web serverExponential Velocity (recommended), or Apache, nginx or another server with PHP-FPMChoosing a web server
A databaseSQLite 3 needs only the sqlite3 extension; the others need a server and an accountDatabases in the official order
Composerto install and update the code and its extensionsComposer and Git on servers
Writable storagevar/ and settings/ writable by the site's userWritable directories and permissions
Cronruncronjobs.php at regular intervalsCron jobs
Maila way to send: sendmail or SMTPMail delivery
TLSa certificate for each site addressTLS and HTTPS
Backupsthe database and the files, kept off the machineWhat to back up

Note

A web server is not needed during a command-line install (the kickstarter or exp:install); the setup wizard needs one, because it runs in the browser (chapter 2).

What keeps running after the install

An Exponential site is not finished when the installer ends. These keep running for the life of the site:

WhatWhyWhere it is described
Cronjobsnotifications, search indexing with delayed indexing, link checks, cache and session cleanupchapter 10, cronjobs
Velocity, if it serves the sitea long-running PHP server process with a pool of workersVelocity for hosts
PHP-FPM, if Apache or nginx serves the siteone pool per site is usualPHP-FPM tuning
A database server, unless SQLite is usedPostgreSQL, MongoDB, MariaDB, Oracle or MySQLthe page of each database
Logsvar/log/ and the web server's own logs grow and need rotationLog viewer and rotation
Cachesvar/cache/ grows and is cleared after changesCache clearing and warming

The example crontab in chapter 10 runs the frequent part every 5 minutes, the default part every 15 minutes, infrequent hourly, and the cleanup parts once a night, all from the crontab of the site user.

Warning

Hosting that forbids long-running processes cannot run Velocity; Apache or nginx with PHP-FPM serves the site there instead. Hosting without cron cannot run the periodic jobs, and notifications and delayed search indexing then never happen. Decide both before you design an offer.

How a site gets installed

Every install method runs the same installer steps; they differ only in where the answers come from (chapter 4):

MethodAnswers fromFits
Setup wizardforms in the browsershared hosting without shell access
Kickstartera kickstart.ini filerepeatable installs, provisioning scripts
Console install (exp:install)command-line optionsautomation, containers, one-command installs

All three run the same critical system tests first and stop with the cause and the fix when the machine is not ready. For a hosting company the kickstarter and exp:install are the natural tools for automated provisioning; see One-click installers and exp:install.

Dividing the work: options

The repository does not prescribe how a host and its customers share the work. These are the usual options; choose per plan, and write the choice into the plan's description.

TaskHost does itCustomer does it
Operating system, PHP, web server, TLStypical in every modelonly on unmanaged servers
Database server and accountstypicalon a server of the customer's own
Installing Exponentialas a provisioning optionwith the setup wizard or the console
Updating Exponential and extensionsas a managed option (automated updates)with Composer or the ezupdate extension
Cronthe host installs the crontabthe customer, where the panel allows it
Backupstypical, with restore testsin addition, for their own copy
Content, templates, extensions of their ownrarelytypical

Tip

Write down for each plan which of these rows belongs to whom. Most support questions about Exponential sites come from a row nobody thought was theirs: cron that was never installed, or a PHP upgrade that left the command line PHP behind the web PHP.

Checklist

  • To do: PHP 8.0 or later (PHP 7.4 usable without support) for the web and the command line, the same version and extensions in both.
  • To do: sockets, pcntl and openssl in that PHP where Velocity is offered.
  • To do: A database offer chosen from the official order.
  • To do: var/ and settings/ writable by the site's user; one user or one group for every process.
  • To do: Cron available to run runcronjobs.php.
  • To do: Mail sending configured (sendmail or SMTP).
  • To do: TLS for every site address.
  • To do: Backups of the database and the files, with a tested restore.
  • To do: The division of work written into each plan.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x