Skip to content

Install WordPress on a hosting

Hyperion installs WordPress with wp-cli on the node that owns the hosting: it downloads core, writes wp-config.php against the hosting’s MariaDB database and runs the WordPress installer. You can do this while creating a hosting or later, on one that has a database and no WordPress yet.

  • You hold the Manage WordPress (plugins, staging, …) permission for the hosting. Administrators, Operators and Customers have it for the hostings they can manage; Read-only users do not.
  • The hosting is a PHP hosting with a MariaDB database. WordPress does not run on PostgreSQL.
  • The hosting is active, not suspended.
  • For a hosting that already exists, the domain’s DNS should point at the node if you want the admin URL to work straight away. The install itself does not need DNS.
  1. Open Hostings in the sidebar and click Add a website.
  2. In step 1, What do you want to create?, leave WordPress website selected. It is the default card.
  3. In step 2, enter the domain and any other addresses.
  4. In step 3, WordPress admin, fill in what you want to choose. Every field is optional:
    • Your email: the admin address. Blank uses admin@<domain>.
    • Site title: blank uses the domain.
    • Admin username: blank uses admin. Allowed characters are letters, digits and . _ @ -, up to 60 characters.
    • Admin password: blank generates a strong one. A password shorter than 6 characters is replaced by a generated one as well.
    • Language: English (en_US), Čeština (cs_CZ), Slovenčina (sk_SK), Deutsch (de_DE), Español (es_ES), Français (fr_FR) or Polski (pl_PL).
    • Keep this site out of Google for now: tick it for a site still being built. It sets blog_public to 0 in WordPress and sends X-Robots-Tag: noindex on every response. Switch it off under the hosting’s vhost options at launch.
  5. Click Create WordPress site.

The hosting is created first. WordPress is then installed in a background job, and its progress shows on the page you land on. When it finishes, a credentials panel shows the admin URL (https://<domain>/wp-login.php), the admin user name and email, and the password. The panel stays on screen until you dismiss it with I’ve saved these — hide, and the password is not shown anywhere else, so copy it into your password manager first.

  1. Open Hostings in the sidebar and click the hosting.
  2. Open the WordPress tab in the site navigation on the left. Until WordPress is installed, the tab reads “Nothing is installed yet” and shows an Install WordPress group.
  3. Fill in the form:
    • Site URL: starts as https://<domain>. It must begin with http:// or https://.
    • Site title: starts as the domain.
    • Admin username: starts as admin. Letters, digits and _ only.
    • Admin email: a valid address.
    • Admin password: at least 8 characters. Click Generate to fill in a random one, and copy it before you submit.
    • Locale: en_US by default. The format is two or three lowercase letters, optionally followed by _ and two capitals, such as cs_CZ.
    • WordPress version: latest by default. You can enter a release such as 6.5.3 (one to four dot-separated numbers).
  4. Click Install WordPress. You land on the job page, which follows the install.

Open the hosting’s WordPress tab. The header line reads WordPress <version> at <site URL>, installed <time> ago, and the Updates & integrity, Health & checks, Plugins and Themes groups appear.

Open Background jobs in the sidebar to see the install job. When you installed from the tab, a successful job ends with the message “WordPress installed.”

  • Downloads the WordPress core files for the chosen locale and version into the document root (htdocs). wp-cli itself is downloaded to the node first if it is missing or does not run.
  • Creates wp-config.php from the hosting’s own database name, user and password, then sets it to mode 0640.
  • Runs the WordPress installer with the admin account you gave. No welcome email is sent.
  • Installs and activates a base theme, because core is downloaded without any content. It uses the theme WordPress recorded as the site’s default, and falls back to twentytwentyfive if that one cannot be installed. A node also checks hourly for active sites that have no theme and installs one.
  • Turns on the page cache for the site with a 60 second lifetime, so anonymous visitors do not each need a PHP worker. You can change it later in the hosting’s vhost options.
  • Records the install in Hyperion.

If WordPress is already on disk (an imported site, an SSH install, a restore), Hyperion recognises it from wp-config.php and wp-includes/version.php and treats it as installed. The install form does not appear and an install request is refused.

You can also start the install from a script with POST /api/v1/hostings/<id>/wp/install. It needs an API key with the Manage WordPress (plugins, staging, …) permission and answers 202 with a job.

  • “This hosting has no database.”: the hosting was created without MariaDB. The install form cannot add one. Create the hosting again with MariaDB selected.
  • “The hosting must be active before you can install WordPress”: resume the hosting first, then return to the tab.
  • “WordPress is already on disk at …”: WordPress exists in the document root. Reload the hosting page. The tab then shows the installed site.
  • “WordPress requires MariaDB”: the hosting’s database is PostgreSQL.
  • “Admin username … is not a valid WordPress username” after creating a hosting: the hosting exists but WordPress was not installed. Open its WordPress tab and run the install there with a valid name.
  • The job ends in failure with a wp-cli message: read the message on the job page. A download failure means the node could not reach wordpress.org. A message that the base theme could not be installed means WordPress is installed but the site shows a blank page until a theme is added under Themes.