There is no single way to install WordPress. Depending on what you are doing, you might install it by hand on a server, use a host’s one-click installer, or run it entirely on your own computer.
Each method has a place. The one-click installer is fastest for a live site. Manual installation gives you full control and teaches you how WordPress actually works. A local install is where you do almost all of your development — safely, for free, and without touching a live server.
This article covers all three. By the end you will know:
- What WordPress needs to run
- How to install WordPress manually, step by step
- How one-click installers work and when to use them
- How to run WordPress locally with Local by Flywheel or Docker (wp-env)
- Which method to choose for development versus production
This article assumes you understand what WordPress is. If you do not, read “What Is WordPress? A Developer’s Overview” first.
What WordPress Needs to Run
Before any installation method, it helps to know what WordPress requires. WordPress is a PHP application that stores its data in a database, so it needs three things:
A web server such as Apache or Nginx to handle requests.
PHP, the language WordPress is written in.
A database, either MySQL or MariaDB, to store content and settings.
WordPress publishes its current minimum requirements on the official Requirements page at WordPress.org, and they rise over time, so check there for the exact numbers. The three things that always matter are:
- A supported PHP version
- A supported MySQL or MariaDB version
- HTTPS support
For real projects, do not aim for the bare minimum. Use a currently supported PHP release — ideally the latest version your host offers — because newer PHP versions are faster and still receive security updates. You can check which PHP versions are still supported at php.net, and apply the same logic to your database: run a current, supported MySQL or MariaDB version rather than an end-of-life one.
You do not need to install PHP, a web server, or a database by hand in every case. One-click hosts and local tools like Local by Flywheel set all of this up for you. You only deal with these components directly during a manual install.
Development vs Production Environments
Before choosing an installation method, it helps to understand the two environments every WordPress project moves between.
A development environment is where you build and test. It usually runs on your own computer, it is safe to break, and no real visitors ever see it. You experiment, make mistakes, and fix them here without any risk.
A production environment is the live site your visitors actually use. It runs on a public web host, it has to stay online and secure, and you do not experiment on it directly.
The golden rule is that you develop locally and deploy to production — never the other way around. This is why most developers use a local install for building and a hosted install for the live site. Keep the two as similar as possible (same PHP and database versions) so code that works locally also works in production.
Production itself can run on several kinds of hosting — shared, VPS, managed WordPress, or cloud — each trading off price against control. Choosing between them is covered in depth in “How to Choose WordPress Hosting: A Developer’s Decision Guide”; for installation, what matters is that one-click installers usually run on shared or managed hosting.
Method 1: Manual Installation
Manual installation means downloading WordPress and setting it up yourself on a server. Once your server is ready, the setup wizard itself takes only about five minutes — the real work is preparing the database and files.
This is the method worth learning even if you rarely use it. It shows you exactly what WordPress is: files, a database, and a configuration file that connects them.
Step 1: Download WordPress
Download the latest version from WordPress.org and unzip it. You will get a folder named wordpress containing all the core files.
Step 2: Create a database and database user
WordPress needs an empty database and a user with full permissions on it. On most hosts you create these through a control panel like cPanel. If you have command-line access to MySQL, you can do it directly:
CREATE DATABASE my_site;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL PRIVILEGES ON my_site.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
What this does, line by line:
- CREATE DATABASE makes an empty database named my_site for WordPress to use.
- CREATE USER adds a dedicated database user. Use a strong, unique password here.
- GRANT ALL PRIVILEGES gives that user full control over the my_site database (and only that database).
- FLUSH PRIVILEGES reloads the permission tables so the changes take effect.
Pitfall: do not reuse your MySQL root account for WordPress. Create a dedicated user scoped to a single database. If that account is ever compromised, the damage is limited to one site.
Step 3: Upload the files
Upload the contents of the wordpress folder to your server using SFTP or your host’s file manager. Where you put them matters:
- To run WordPress at the domain root (example.com), upload the files into the web root, usually public_html or www.
- To run it in a subdirectory (example.com/blog), upload them into a folder named blog.
Step 4: Run the installation wizard
Visit your site in a browser. Because WordPress detects there is no configuration file yet, it launches the setup wizard automatically. It asks for:
- Database name (my_site in the example above)
- Database username (wp_user)
- Database password
- Database host (usually localhost)
WordPress uses these details to create the wp-config.php file, which stores your database connection settings. It then creates the database tables and asks for your site title and an admin account.
What is wp-config.php? It is the configuration file that connects WordPress to its database. It lives in the root of your installation and stores your database name, username, password, and host, along with secret authentication keys and settings such as debugging flags. WordPress reads it on every request. Every installation method ends up creating this same file — they only differ in whether you write it by hand or let a tool generate it for you. It is covered in full in “The wp-config.php File Explained.”
Once you submit the admin details, WordPress finishes the install and you can log in at /wp-admin. That is the full manual install.
The command-line alternative: WP-CLI
If you have terminal access, WP-CLI installs WordPress without the browser wizard. It is the fastest manual method and worth knowing for server work and automation:
wp core download
wp config create --dbname=my_site --dbuser=wp_user --dbpass=a-strong-password
wp core install --url=example.com --title="My Site"
--admin_user=admin --admin_password=strong-pass --admin_email=you@example.com
Each command maps directly to a step above: download the files, create wp-config.php, then run the install. WP-CLI has its own cluster later in this guide; this is just a preview of why it is useful.
Method 2: One-Click Installation
Most hosting providers offer a one-click WordPress installer in their control panel. You pick a domain, click install, and the host handles the database, files, and configuration for you.
This is the easiest way to get a live WordPress site running. There is nothing to download and no database to create by hand.
How it works
Behind the scenes, the one-click installer does exactly what you would do manually:
- Downloads the WordPress core files
- Creates a database and database user
- Generates wp-config.php with the connection details
- Runs the install and creates your admin account
The difference is that the host automates all of it. Many use installer tools like Softaculous, or have their own custom installer built into the dashboard.
When to use it
One-click installation is a good fit when:
- You are launching a live site on shared or managed hosting
- You want to skip server configuration
- The client or project does not need a custom server setup
The trade-off is less control. Some one-click setups place files in non-standard locations or add host-specific plugins you did not ask for. For client work, check what the installer added before you start building.
Method 3: Local Installation with Local by Flywheel
A local installation runs WordPress on your own computer instead of a live server. This is where you should do almost all of your development.
Local installs are free, instant, and completely safe to break. You can spin up as many sites as you want, test risky changes, and work offline with no internet connection. Nothing you do touches a live site or costs hosting money.
There are two equally good ways to run WordPress locally: a graphical desktop app, or a Docker-based environment. This section walks through Local by Flywheel, the most popular desktop app (often just called Local or Local WP). The Docker approach with wp-env is equally solid and is covered step by step in the next article.
What Local by Flywheel is
Local by Flywheel is a free desktop application, now owned by WP Engine, that runs WordPress on your machine. You install it on Windows, macOS, or Linux, and it bundles everything WordPress needs into a self-contained environment:
- Its own PHP version (which you can switch per site)
- Its own web server
- Its own MySQL database
You do not install or configure any of these separately. Local sets them up for each site automatically. This is the key advantage over older approaches like installing XAMPP or MAMP and wiring everything together yourself.
Why developers use it
Local is a standard choice for WordPress development for a few practical reasons:
- Creating a site takes a few clicks and under a minute
- You can run many sites at once, each isolated from the others
- You can switch PHP versions per site to test compatibility
- It includes one-click tools like SSL for local HTTPS and a built-in database viewer
- It can push to and pull from WP Engine and Flywheel hosting, which helps with deployment
How a local install works at a high level
When you create a site in Local, you give it a name, optionally choose a PHP version and web server, and set an admin username and password. Local then:
- Creates an isolated environment with its own PHP, web server, and database
- Downloads and installs WordPress core
- Sets up the database and wp-config.php for you
- Gives you a local URL like mysite.local to open the site
From there you have a full WordPress install you can log into, add themes and plugins to, and write code against — exactly like a real site, just on your machine.
This article is the overview. The next-step setup — covered in detail in “How to Set Up a WordPress Development Environment with Docker (wp-env)” — walks through a containerised local environment step by step.
Other local options
Local by Flywheel and wp-env are the two most common tools, but they are not the only ones. You may also encounter:
- wp-env, the official local environment from the WordPress team. It runs WordPress inside Docker containers and is driven from the command line. Because it is Docker-based and its configuration is committed to your project, every developer on a team gets an identical setup, which makes it popular for block and plugin development.
- DevKinsta and Studio by WordPress.com, free desktop apps similar in spirit to Local.
- XAMPP or MAMP, older general-purpose local server stacks. They work but require more manual setup.
For most developers starting out, Local by Flywheel is the simplest place to begin, while Docker with wp-env is just as good a choice if you want a reproducible, production-like environment. Both are excellent — pick whichever fits your workflow.
Which Method Should You Use?
The right method depends on what you are doing.
Use a local install for development
Do your building and testing locally. Two approaches both work well: a graphical app like Local by Flywheel, or a Docker-based environment like wp-env. Both are free, fast, and safe to break, so pick whichever fits your workflow. This is where the bulk of your work happens.
Use one-click for quick live sites
When you need a live site fast and do not need a custom server setup, the host’s one-click installer is the easiest path to production.
Use manual installation when you need control
Choose manual installation when you are setting up a custom server, deploying through your own pipeline, or want to understand and control exactly how WordPress is configured. WP-CLI makes this fast once you are comfortable with it.
A typical professional workflow
In practice, most developers combine methods:
- Develop locally with Local by Flywheel or wp-env
- Keep the code in Git
- Deploy to a live server, which may itself be set up via one-click or a managed host
You rarely pick one method forever. You pick the right one for each stage of the project.
Best Practices
Never develop on a live site. Build locally, test, then deploy. Editing a production site directly is how sites go down.
Use a currently supported PHP version. Run a PHP release that still receives security updates (php.net lists them), ideally the latest your host supports. Tools like Local by Flywheel and wp-env let you choose the version per site, so match it to your production server.
Use a dedicated database user. On manual installs, never connect WordPress with the MySQL root account. Scope a user to a single database.
Use strong credentials from the start. Set a strong admin password and a non-obvious admin username even on local sites, so the habit carries over to production.
Match local to production. Keep your local PHP and database versions close to your live server to avoid surprises at deployment.
Common Mistakes
Using “admin” as the username with a weak password. This is the first thing automated attacks try. Use a unique username and a strong password.
Granting root database access. On manual installs, people often connect WordPress as root for convenience. This is a security risk. Always use a scoped user.
Forgetting the database host. The wizard defaults to localhost, which is correct on most servers but not all. Some managed hosts use a different database host — check your host’s documentation if the connection fails.
Installing into the wrong directory. Files placed outside the web root, or in the wrong subfolder, lead to a site that does not load. Confirm your web root before uploading.
Developing locally on one PHP version and deploying to another. Code that works on a newer PHP version locally can fail on an older one in production, and vice versa. Match your local PHP version to your live server.
FAQ
Is it hard to install WordPress manually?
It depends on whether your server is already set up. If PHP and a database are ready, the wizard takes about five minutes. The harder part is the prerequisites — creating a database and uploading files over SFTP — which can be unfamiliar if you have never done them before. One-click installers and local tools handle all of that for you, and WP-CLI speeds up the manual route once you are comfortable with it.
Is Local by Flywheel free?
Yes. Local is free to download and use on Windows, macOS, and Linux. There is no cost for running local sites.
Can I move a local site to a live server later?
Yes. You can migrate a local site to production using a migration plugin, manual export and import, or Local’s built-in connection to WP Engine and Flywheel hosting.
What is the difference between a one-click install and a manual install?
They produce the same result. A one-click installer just automates the steps — creating the database, uploading files, and generating wp-config.php — that you would otherwise do by hand.
Do I need to know how to set up PHP and MySQL to use Local?
No. Local by Flywheel bundles PHP, a web server, and MySQL and configures them for each site automatically. That is the main reason beginners start with it.
Which PHP version should I use?
For new projects, use a currently supported PHP release — ideally the latest your host offers — so you get security updates and the best performance (php.net lists which versions are still supported). If you are working on an existing site, match the PHP version your live server runs to avoid compatibility issues.
Conclusion
WordPress can be installed three main ways, and each fits a different stage of work:
- Manual installation gives you full control and teaches you how WordPress is wired together. WP-CLI makes it fast.
- One-click installation is the quickest way to launch a live site on most hosts.
- Local installation is where you should do your development — free, fast, and safe to break. Both Local by Flywheel and Docker (wp-env) are great options.
The next article walks through setting up a containerised local environment with Docker and wp-env step by step, so you have a real WordPress site running on your machine ready for the rest of this series.