Type something to search...
How to Install WordPress Manually via FTP?

How to Install WordPress Manually via FTP?

Installing WordPress by hand over FTP gives you full control over where files land and how the database connects. Most hosts offer a one-click installer, but that convenience hides what's actually happening on the server, and one-click installers aren't always available on every host, VPS, or shared-hosting plan you'll run into. Knowing the manual process means you're never stuck when the automated option isn't there, and you understand exactly what WordPress needs to run.

This guide walks through the entire process: downloading WordPress, creating a database, uploading files with an FTP client, and running the famous five-minute install script.

What You'll Need Before You Start

  • An FTP client. FileZilla is free, cross-platform, and the most widely used option. Any SFTP/FTP client works the same way.
  • FTP credentials from your hosting provider: host address, username, password, and port (usually 21 for FTP, 22 for SFTP).
  • Database access — either phpMyAdmin in your host's control panel, or SSH access to run MySQL commands directly.
  • A domain or subdomain already pointed at your hosting account, or at least a temporary URL/IP you can use to run the installer.

Step 1: Download the Latest WordPress Package

Go to wordpress.org/download and download the latest .zip file. Extract it on your local machine — you'll get a folder named wordpress containing everything from wp-admin and wp-content to wp-config-sample.php and index.php.

Don't rename or restructure this folder yet. You'll need it intact for the next steps.

Step 2: Create a MySQL Database and User

WordPress needs a database to store posts, pages, settings, and users. Most hosts provide this through cPanel's MySQL Databases tool or a similar panel.

  1. Create a new database (for example, mysite_wp).
  2. Create a new database user with a strong, unique password.
  3. Add that user to the database and grant it All Privileges.
  4. Note down the database name, username, password, and host (usually localhost, but some hosts use a different hostname — check your host's documentation).

If your host only gives you SSH access, you can do the same thing from the command line:

mysql -u root -p
CREATE DATABASE mysite_wp;
CREATE USER 'mysite_user'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL PRIVILEGES ON mysite_wp.* TO 'mysite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Step 3: Connect to Your Server via FTP

Open FileZilla (or your FTP client of choice) and enter your connection details:

  • Host: your domain name or server IP (sometimes prefixed with ftp.)
  • Username: the FTP username from your hosting provider
  • Password: the FTP password
  • Port: 21 for FTP, 22 if you're using SFTP

Click Quickconnect. Once connected, the left pane shows your local files and the right pane shows the server's directory structure.

Step 4: Upload the WordPress Files

Navigate to your site's web root on the server side — usually public_html, www, or htdocs depending on your host. If you want WordPress to run at your domain root (example.com), upload the contents of the extracted wordpress folder directly into that directory, not the folder itself.

  1. On the local (left) side, open the wordpress folder so you're looking at its contents (wp-admin, wp-content, wp-includes, index.php, etc.).
  2. Select all of them.
  3. Right-click and choose Upload, or drag them into the right-hand pane.

Depending on your connection speed, this upload can take several minutes since WordPress core ships with over a thousand individual files. Let it finish completely — an interrupted upload is one of the most common causes of a broken install.

If you want WordPress in a subdirectory instead (like example.com/blog), create that folder on the server first and upload the files into it.

Step 5: Create and Configure wp-config.php

WordPress ships with a wp-config-sample.php file. Rename your local copy to wp-config.php before editing it (some FTP clients let you rename directly on the server, which works too).

Open it in a text editor and fill in your database details:

define( 'DB_NAME', 'mysite_wp' );
define( 'DB_USER', 'mysite_user' );
define( 'DB_PASSWORD', 'a-strong-password' );
define( 'DB_HOST', 'localhost' );

While you're in there, generate a fresh set of security keys from the WordPress secret-key API and paste them in to replace the placeholder block:

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

These keys encrypt information stored in cookies, and generating unique ones for every install is a basic security practice, not an optional step.

Save the file, then upload it to the server, overwriting the wp-config-sample.php you already have there (or upload wp-config.php fresh alongside it and delete the sample file).

Step 6: Set Correct File Permissions

Incorrect permissions are a common source of "unable to write to file" errors during and after install. As a baseline:

  • Directories: 755
  • Files: 644
  • wp-config.php: 600 if your host supports it, since it contains your database password

Most FTP clients let you right-click a folder and choose File permissions to apply these recursively.

Step 7: Run the Famous Five-Minute Install

With the files uploaded and wp-config.php in place, visit your domain (or the subdirectory you uploaded to) in a browser. WordPress detects there's no existing installation and redirects you to /wp-admin/install.php.

  1. Choose your language and click Continue.
  2. Fill in site details: site title, admin username, a strong admin password (WordPress will suggest one — use it or a password manager to generate your own), and your admin email address.
  3. Leave "Discourage search engines from indexing this site" checked if you're still building the site and not ready for it to appear in search results.
  4. Click Install WordPress.

If everything's configured correctly, you'll see a success screen with a Log In button. If you instead see a database connection error, double-check the values in wp-config.php against what your host's control panel shows — a typo in the database name or host value is the usual culprit.

Step 8: Log In and Do the Basics

Log in with the admin credentials you just created, then:

  • Go to Settings > Permalinks and choose a structure other than "Plain" — see what permalinks are in WordPress if you're unsure which to pick.
  • Delete the default "Hello World" post and "Sample Page."
  • Install an SSL certificate if your host hasn't already, then update Settings > General so both the WordPress Address and Site Address use https://.
  • Once the site is live, take a full manual backup so you have a clean restore point before you start customizing anything.

Frequently Asked Questions (FAQ) About Installing WordPress via FTP

Manual installation is useful when your host doesn't offer a one-click installer, when you want full control over file placement and database configuration, or when you're moving an install between environments and want to understand every moving part rather than relying on a script you can't inspect.

Yes, and it's generally the better choice since SFTP encrypts the connection. The upload process in your FTP client is identical either way — you just connect on port 22 instead of 21 and use your SSH credentials instead of separate FTP credentials.

WordPress will end up installed at example.com/wordpress instead of your domain root. If that's not what you want, delete the uploaded folder and re-upload just its contents (wp-admin, wp-content, wp-includes, and the loose files) directly into your target directory.

This almost always means one of the four values in wp-config.php (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST) doesn't match what's actually configured on the server. Log into your host's database panel and verify each value character-for-character, including the host, which isn't always "localhost" on every provider.

No, WordPress creates it automatically the first time you upload media. If uploads fail with a permissions error, check that wp-content is writable (755) rather than manually creating the uploads folder with the wrong permissions.

It's not a security risk on its own since it contains no real credentials, but it's good practice to delete it once wp-config.php is in place, just to keep the install directory clean and avoid any confusion later.

Check your hosting control panel, usually under a "Software" or "MultiPHP" section, or ask your host's support directly. WordPress's minimum requirements are published on wordpress.org/about/requirements, and running a current PHP version also matters for site performance.

Conclusion

Installing WordPress manually over FTP isn't difficult once you've done it once — it's really just four things: get the files onto the server, get a database ready, tell WordPress how to find that database, and run the installer. The process is identical whether you're setting up your first site or spinning up a tenth one on a host that skipped the one-click option.

Once the install script finishes, treat it like any fresh WordPress site: lock down permalinks, remove the placeholder content, and get HTTPS and a backup schedule in place before you start building anything on top of it.

Tags :
Share :

Related Posts

Effortlessly Crafting Compelling WordPress Pages

Effortlessly Crafting Compelling WordPress Pages

As a website owner or content creator, having the ability to seamlessly add new pages to your WordPress site is crucial. Whether you're introducing a

Continue Reading
High Traffic Tips for WordPress Mastery 🚥

High Traffic Tips for WordPress Mastery 🚥

In our digital age, where online visibility is paramount, ensuring your WordPress site can handle surging traffic is crucial. Just like a finely-tune

Continue Reading
How Do I Change the WordPress Login URL?

How Do I Change the WordPress Login URL?

By default, every WordPress site's login page lives at the same predictable address: yoursite.com/wp-login.php (which also happens to redirect from

Continue Reading