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.
Before you start
Section titled “Before you start”- 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.
Install while creating the hosting
Section titled “Install while creating the hosting”- Open Hostings in the sidebar and click Add a website.
- In step 1, What do you want to create?, leave WordPress website selected. It is the default card.
- In step 2, enter the domain and any other addresses.
- 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_publicto 0 in WordPress and sendsX-Robots-Tag: noindexon every response. Switch it off under the hosting’s vhost options at launch.
- Your email: the admin address. Blank uses
- 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.
Install on an existing hosting
Section titled “Install on an existing hosting”- Open Hostings in the sidebar and click the hosting.
- 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.
- Fill in the form:
- Site URL: starts as
https://<domain>. It must begin withhttp://orhttps://. - 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_USby default. The format is two or three lowercase letters, optionally followed by_and two capitals, such ascs_CZ. - WordPress version:
latestby default. You can enter a release such as6.5.3(one to four dot-separated numbers).
- Site URL: starts as
- Click Install WordPress. You land on the job page, which follows the install.
Check that it worked
Section titled “Check that it worked”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.”
What the install does
Section titled “What the install does”- 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.phpfrom the hosting’s own database name, user and password, then sets it to mode0640. - 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
twentytwentyfiveif 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.
If it fails
Section titled “If it fails”- “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.