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

Installing Exponential in one command

This page is for anyone who wants a working Exponential site in a few minutes, without writing a kickstart.ini and without a database server.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/features/6.0/install-in-one-command.md

On this page

Installing Exponential in one command

This page is for anyone who wants a working Exponential site in a few minutes, without writing a kickstart.ini and without a database server.

./console exp:install --apply

That installs the multisite package on SQLite, in eng-US, with the siteaccesses site and admin reached by URL, and prints a summary with the site and administration login addresses, the user name, the e-mail, database, package and siteaccesses, plus a short block you can copy and paste. exp:install is the same as php bin/php/install.php --apply.

Choose a database

Supported databases (Exponential 6.0.x), in order of preference: 1. SQLite 3 (the default) · 2. PostgreSQL · 3. MongoDB · 4. MariaDB · 5. Oracle · 6. MySQL. Microsoft SQL Server is known to be possible with additional work at this time. Details: Database support.

--db=AliasesDefault portDefault database name
sqlite (default)sqlite3noneexponential.db
mysqlmysqli, mariadb3306exponential (user root)
pgsqlpostgresql, postgres5432exponential (user postgres)
mongodbmongo27017exponential
oracleoci8, ezoracle1521service FREEPDB1

For Oracle the connect string is built as host:port/service; a full connect string or an @alias (TNS) is used as given. The Oracle driver lives in the ezoracle extension; the installer loads that extension's settings for the run, puts it first in the new site's ActiveExtensions, and talks UTF-8 to Oracle during the checks.

./console exp:install --apply --db=mysql --db-host=127.0.0.1 --db-name=mysite \
                      --db-user=root --db-action=remove
EXP_INSTALL_DB_PASSWORD='...' ./console exp:install --apply --db=pgsql

Give the database password with --db-password or, better, with the environment variable EXP_INSTALL_DB_PASSWORD, which keeps it out of the process list and shell history.

All options

GroupOptions
Database--db, --db-host, --db-port, --db-name, --db-user, --db-password, --db-socket, --db-action
Site--package, --language, --languages, --title, --url, --access (url, host or port), --site-access, --admin-access, --host, --admin-host, --port, --admin-port
Administrator--email, --password, --random-password, --first-name, --last-name
Control--force, --dry-run, --print
  • Without options the administrator is admin with a generated password and the e-mail [email protected] (from ./console exp:install --help).
  • A generated password (the default, or --random-password) has 24 characters. It is printed in the summary, with a note that it was generated and why, and written to var/log/initial-admin-password (readable by the owner only).
  • --password=<pass> is kept as given when it has at least 10 characters (MinPasswordLength) and is not a well-known one such as publish or admin. Otherwise a generated one replaces it. The summary always shows the password the installation really set: when the setup replaces a password it refuses, the summary reads the one it recorded in var/log/initial-admin-password.
  • It refuses to run over an existing installation unless you add --force.
  • --dry-run checks the configuration and the packages and installs nothing.
  • --print shows the configuration it would use, passwords masked.
  • A kickstart.ini already present is moved aside for the run and put back afterwards. The configuration used is kept in var/log with passwords masked.

Safer first login

A kickstart installation no longer ends with a guessable administrator password. When the kickstart file sets no password, or one of the well-known defaults, setup generates a random 20-character password, prints it once on the console and writes it to var/log/initial-admin-password (readable by the owner only). Change it after the first login and delete the file. The password is applied even when no administrator e-mail is given; the shipped example and dist kickstart files no longer carry a password.

What the logs tell you

FileContentSettings
var/log/setup.logOne file per run of the kickstarter or web wizard: introduction, environment, every step with its duration and the errors and warnings it caused (repeats grouped with count, first and last time, a hint beside known problems), health checks after the install (database, declared tables, content classes, objects, content root, name lists, settings, siteaccesses, file ownership) and a framed RESULT and NEXT line. Earlier runs rotate to setup.log.1, .2 ...EXP_SETUP_LOG_DIR moves it elsewhere (tests use this so a real log is not rotated away).
var/log/kickstart.logEverything the kickstarter printed (stdout and stderr), with kickstart.ini passwords masked and the start time, command and exit status around it. Nine earlier runs are kept as kickstart.log.1 to .9.EXP_KICKSTART_LOG=0 turns it off.
var/log/error.logWhile a run goes on it shows BEGIN and END entries with the run id and result; every entry ends with the run and step it came from, and an entry written several times in a row is written once with its count.

setup.log counts only what the installation itself logged. An error another process wrote meanwhile (for example a visitor's request that reached the site while its database was being built) is listed as "(not this run)", left out of the counts and summed up in a NOTE line.

A failed query is now logged once, with the database's reason first and the statement on one line. A site package's post-install reports the step it stopped on (eZSiteInstaller::abortedStep()).

Defaults that changed

  • SQLite first. The web setup wizard lists SQLite first and preselects it, and the interactive kickstarter offers it first and uses it as the default Type of [database_choice]. The wizard checks the SQLite database file and asks for nothing a server needs. A kickstart database_init block without server, port, user, password or socket raises no warnings.
  • The bundled site is preselected, so pressing Next on every step installs the default site. Before, a person who accepted every default got "No site package chosen".
  • Primary language eng-US in both the wizard and the kickstart editor, the language the bundled data is in. Other primary languages install cleanly: the package language step no longer offers the clean data's own language for mapping, creating the language is the default for other package languages (mapping relabels content without translating it), and the site package receives primary_language, extra_language_codes and language_map by name. Siteaccesses made for two locales of one language get different names (eng and eng_gb). See Translations and languages.
  • DatabaseImplementation is not derived from Type. The kickstart Type chooses the driver the installer connects with; the DatabaseImplementation written to settings/override/site.ini.append.php comes from the live site.ini, because a driver has several names and a site may register its own alias. When you install onto a different engine, set the implementation first or the new site speaks the old engine's protocol to the new server.
  • GD first for images. settings/image.ini [ImageConverterSettings] ImageConverters[] lists GD before ImageMagick; ImageMagick stays the fallback for formats and filters GD lacks (PSD, TIFF, PDF, WebP, flatten, swirl, noise) and when GD is missing.
  • No links to the former product's website in a new installation's link list, and ActiveExtensions lists each extension once with the site package's SiteURL kept.
  • Maintenance mode wraps every run: see Maintenance mode.

Public demos. EXP_DEMO_MODE=1 ./console exp:install --apply --password=publishing installs the published demo password as given; in demo mode a well-known or short administrator password (publish too) is kept, an empty one is still refused. Keep the variable for the running site. Demo mode, Recipe: run a public demo on LiteSpeed and Plesk.

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