Guide WordPress

How to install WordPress manually

Create a database, upload the files, edit wp-config.php, and run the installer — five steps, no one-click installer required.

Updated 8 min read Intermediate

Most people never need this page. The one-click installer in your control panel does the same job in a fraction of the time, and installing WordPress on your hosting is the guide for that route. This one is for the times a one-click install will not do: you need a particular WordPress version, you are rebuilding a site from files you already have, or you simply want to know exactly what is happening under the hood.

A manual install is five steps: get the software, create somewhere for it to store data, put the files on the server, tell WordPress how to find that storage, and run the built-in installer. None of it requires anything beyond a control panel and, optionally, an FTP client.

What you need before you start

  • A hosting account with PHP and MySQL, which any plan here includes.
  • Access to your control panel, for creating the database and, if you use it, the file manager.
  • An FTP client if you would rather upload that way than through the browser — see connecting with FTP.

Step 1: download WordPress

Get the current release from wordpress.org as a zip file. If you specifically need an older version — for compatibility with a plugin during a migration, say — wordpress.org also keeps a full release archive. Extract the zip on your own computer; you will get a single folder named wordpress containing everything.

Step 2: create a database and a user

WordPress stores every post, page, setting and user account in a MySQL database, and it needs one that already exists before the installer can run. Open the databases section of your control panel and create a new database, then a database user, and attach that user to the database with full privileges.

Write down four things exactly as you set them, because you will type them into a file in the next step:

  • The database name
  • The database username
  • The database password
  • The database host — usually localhost, though your control panel will tell you if it is something else
Use a password manager for the database password

You will paste this password into a config file once and rarely see it again. Generate a long random one rather than reusing something memorable — it never has to be typed at a keyboard.

Step 3: upload the files

Everything goes into your web root — the folder your domain serves from, commonly public_html or httpdocs. The important detail is that you upload the contents of the wordpress folder, not the folder itself: wp-admin, wp-content, wp-includes and the loose files like wp-login.php should sit directly in the web root, not one level down inside a subfolder.

Two ways to get them there:

  • File manager: upload the zip file itself into the web root, then extract it on the server and move the contents up one level out of the wordpress folder.
  • FTP: connect with an FTP client and upload the extracted files directly, which avoids the extra move step but sends every file over the wire individually.

Step 4: create and edit wp-config.php

The WordPress files include wp-config-sample.php. Make a copy of it named wp-config.php in the same folder, then open it and fill in the four database values from step 2:

define( 'DB_NAME', 'your_database_name' );
define( 'DB_USER', 'your_database_user' );
define( 'DB_PASSWORD', 'your_database_password' );
define( 'DB_HOST', 'localhost' );

While you are in the file, replace the block of authentication keys and salts. WordPress.org has a page that generates a fresh, unique set — paste the whole block over the placeholder lines. These keys are used to encrypt information stored in cookies and are not something you need to remember; you just need each site to have its own random set.

Do not skip the security keys

Leaving the placeholder values in place, or copying a set from another site, weakens the security of login sessions. Generating a fresh set takes one visit to a page on wordpress.org and costs nothing.

Step 5: run the installer

Visit your domain in a browser. WordPress finds the database details in wp-config.php, connects, and — if everything is correct — shows a short setup form asking for:

  • A site title, which you can change later at any time
  • An admin username — avoid the word admin itself, since it is the first guess of every automated login attempt
  • A strong admin password
  • An admin email address, used for password resets and site notifications

Submit the form and WordPress creates its database tables and logs you straight into the dashboard. The site is live at that point, running the default theme with no content yet.

If the installer will not connect to the database

This is almost always one of the four values in wp-config.php not matching what you created in the control panel — a database name typed slightly differently, a password with a stray space copied in, or a host value that is not actually localhost on your particular hosting setup. Open the database section of your control panel again and check each value character by character against the file. If it still will not connect, ask your host to confirm the correct database host value for your account, since this is the one field that is not always predictable.

What to do next

A fresh install is a blank slate, not a finished site. Reasonable next steps are choosing a theme, deciding on your permalink structure before you publish anything, and installing only the plugins you actually need. If you are setting this install up as a replacement for a site running elsewhere, see changing a WordPress site URL once you are ready to point the domain at it, and set up your first backup before you add real content.

Frequently asked questions

Why install manually instead of using a one-click installer?

A one-click installer is faster for a standard site. Installing by hand is worth it when you need a specific WordPress version, want to understand exactly what got placed where, are restoring a site from files you already have, or are troubleshooting a one-click install that went wrong.

What is the "famous five-minute install"?

It is WordPress's own name for the installer screen you see after uploading the files and creating wp-config.php. It asks for a site title, an admin username and password, and an email address, then builds the database tables. It genuinely takes about that long.

Do I need FTP, or can I use the file manager?

Either works. The file manager in your control panel can usually extract a zip file directly on the server, which is faster than uploading hundreds of small files individually over FTP. Use whichever you find easier to work with.

Related reading