To install WordPress locally, you need a web server, PHP and a database running on your own computer. A free app can set up all three for you.
In our November 2026 tests, the InstaWP CLI had a fresh WordPress 7.1.4 site running in under 10 seconds. LocalWP and WordPress Studio get you there in a few clicks.
This guide covers seven free methods for Windows and Mac, with a screenshot for every step. It ends with the part most tutorials skip: moving the finished site onto managed WordPress hosting without a manual migration.
- Fastest from a terminal: the InstaWP CLI. One command gave us a working WordPress 7.1.4 site in about 9.8 seconds on each of three warm runs, with no database to set up.
- Fastest without a terminal: LocalWP or WordPress Studio. Both install the web server, PHP and the database for you. You answer a few screens and the site opens.
- Want to see every moving part? Use XAMPP or MAMP. You start the servers, create the database in phpMyAdmin and run the installer yourself. The database password is blank on XAMPP and root on MAMP.
- WampServer’s official site went offline on 27 October 2026. It now returns HTTP 410, so for a fresh Windows install pick XAMPP, LocalWP or Laragon instead.
- Going live is harder than installing. WordPress stores full URLs in the database, so moving off localhost needs a serialization-safe search-replace or a one-command push.
- InstaWP covers both ends. Build locally with its free CLI, then push the site to InstaWP’s managed WordPress hosting, where a site starts at $2 a month.
Table of Contents
Why Install WordPress Locally?
A local WordPress install runs entirely on your machine, so nothing you do reaches the internet. That is useful for four reasons.
- You can break it. Test a risky plugin, edit a theme file, or run an update that might fail. Your live site is untouched.
- It costs nothing to run. No hosting bill while you build. For a freelancer with several projects open at once, that adds up.
- It works offline. On a flight or on bad hotel WiFi, a local site keeps working because nothing has to travel over the network.
- It is fast. There is no upload step and no server queue, so a page reloads the moment you save a file. Over a day of small changes that is real time back.
Local work also pairs well with Git. Because the files sit in a normal folder, you can put your theme or plugin under version control the same way you would any other project, and later deploy it with the Git, SSH and WP-CLI tools your host gives you. If you want the wider argument, we covered whether local WordPress development still earns its place in a modern workflow, and the challenges local development brings with it.
How to Install WordPress Locally
All seven methods below end with the same thing: a working WordPress site on your own computer. They differ in how much setup you do by hand, which database they use, and how much you learn along the way.
Which Method Should You Use?
| Method | Best for | Setup time | Do you touch a database? | Windows / Mac |
|---|---|---|---|---|
| InstaWP CLI | Developers who want a site from one command, then a push to hosting | About 10 seconds after the first run | No, it uses SQLite | Both, plus Linux |
| LocalWP | Complete beginners | About 5 minutes | No | Both |
| XAMPP | Learning how the stack fits together | About 20 minutes | Yes, in phpMyAdmin | Both |
| MAMP | Mac users who want a simple control panel | About 20 minutes | Yes, in phpMyAdmin | Both, Mac first |
| Docker | Developers who already use the terminal | About 5 minutes | No, the container handles it | Both |
| WordPress Studio | A desktop app with an AI agent and publishing to WordPress.com | About 3 minutes | No | Both, plus Linux |
| WordPress Playground | Trying a plugin or theme with nothing installed | Seconds, in the browser | No, it uses SQLite | Any browser |
If you have never done this before, use LocalWP (Method 2) or Studio (Method 6). If you work in a terminal and want the site to end up on hosting, use the InstaWP CLI (Method 1). If you want to see every moving part, use XAMPP (Method 3).
Official download links for each tool
Every tool in this guide is free to start. Each link below goes to the official download page, and we checked every version on 3 November 2026.
| Tool | Latest version | Runs on | Official download |
|---|---|---|---|
| InstaWP CLI | 0.0.1-beta.36 (needs Node.js 22+) | Windows, Mac, Linux | npmjs.com/package/@instawp/cli |
| LocalWP | 10.2.0 (15 Oct 2026) | Windows, Mac, Linux | localwp.com/releases |
| XAMPP | 8.5.12 with PHP 8.5.12 (Windows build) | Windows, Mac, Linux | apachefriends.org |
| MAMP | 7.4.0 for macOS (2 Feb 2026) | Mac, Windows | mamp.info/en/downloads |
| Docker Desktop | 4.97.0 (26 Oct 2026) | Windows, Mac, Linux | docker.com |
| WordPress Studio | 2.1.0 | Windows, Mac, Linux | developer.wordpress.com/studio |
| WordPress Playground | Web app, nothing to install | Any modern browser | playground.wordpress.net |
| WordPress core | 7.1.4 (for the manual methods) | Any | wordpress.org/download |
Method 1: Install WordPress Locally with the InstaWP CLI
The fastest way to install WordPress locally from a terminal is the free InstaWP CLI. InstaWP runs managed WordPress hosting, and its command-line tool also runs WordPress on your own computer through WordPress Playground, so the site you build locally can later go to a live InstaWP server with one more command. With the CLI you can:
- Create a local WordPress site with
instawp local create, choosing the WordPress version and any PHP version from 7.4 to 8.5. - Start, stop, list and delete local sites (
instawp local list). - Clone a complete InstaWP cloud site down to your computer (
instawp local clone). - Push local work up to a cloud site (
instawp local push), or mirror an existing LocalWP or XAMPP install to a new hosted site (instawp migrate push).
Step 1: Install Node.js and the InstaWP CLI
The CLI needs Node.js 22 or newer. Install it from nodejs.org, open a terminal, and run:
npm install -g @instawp/cli
instawp --version
What you should see: npm reports the packages it added, and the version check prints the release number. In our run that was 211 packages in 3 seconds and version 0.0.1-beta.36.

Step 2: Create the local site
Pick a name and run one command. Add --php 8.2 or --wp 6.9 if you need to match a client’s server, or --background to get your terminal back straight away.
instawp local create --name my-site
What you should see: the CLI creates the site, prints its address and a WP Admin link, and finishes with Ready! WordPress is running on http://127.0.0.1:<port>. The very first run downloads WordPress Playground through npx, which the CLI says can take about 30 seconds. After that, three runs in a row each took between 9.76 and 9.97 seconds on our test machine (Ubuntu 24.04, Node.js 22.22, 3 November 2026), and each new site used 16 MB of disk.

Step 3: Open WP Admin
Open the WP Admin link the CLI printed. It ends in ?instawp-login and signs you in automatically, so there is no password to set or remember.

Step 4: Manage your local sites
Run instawp local list to see every local site with its status, address, WordPress and PHP version. Stop one with instawp local stop my-site and bring it back with instawp local start my-site. Your themes, plugins and uploads live in ~/.instawp/local/my-site/wp-content, so you can open that folder in your editor or put it under Git.

Step 5: Push it to InstaWP when it is ready
When the site needs a public URL, sign in with instawp login and push your local wp-content to an InstaWP site. Add --with-db to send the database too; the CLI backs up the cloud database before it overwrites it, and --dry-run shows what would be transferred first.
instawp local push my-site my-cloud-site --with-db
Once the site is on InstaWP it has a shareable link for your client, free SSL and daily backups from the Plus plan up.
Method 2: Install WordPress Locally with LocalWP
LocalWP (once called Local by Flywheel) is the easiest way to install WordPress locally. It installs the web server, PHP and MySQL for you, then runs the WordPress installer in the background. You answer three screens and the site is ready. If you are weighing it against other tools, we have a longer list of Local by Flywheel alternatives and a direct LocalWP vs InstaWP comparison.

Step 1: Download and Install LocalWP
Go to localwp.com and click Download. Choose your operating system from the list (Windows, macOS or Linux) and the installer starts downloading.

Open the file you just downloaded and follow the on-screen instructions. There is nothing to configure. On Windows you may see a security prompt asking to allow the app to make changes, which you should accept.
What you should see: LocalWP opens on an empty dashboard with no sites listed yet.
The current release is Local 10.2.0 (15 October 2026), with builds for Apple Silicon and Intel Macs, Windows, and Linux (.deb and .rpm). It also adds a localwp command-line tool you can switch on in Preferences.

Step 2: Create a New WordPress Site
Click the Create a new site button, or the plus icon in the bottom left corner.

LocalWP offers three options:
- Create a new site, which installs a fresh copy of WordPress. Pick this one.
- Create from a Blueprint, which reuses a setup you saved earlier.
- Create from a Cloud Backup, which pulls an existing site from Google Drive or Dropbox.

Select Create a new site and click Continue.
Type a name for the site. LocalWP turns that name into the local address, so “my-project” becomes my-project.local. Click Continue.
Step 3: Choose Your Environment
This screen asks which versions of PHP, the web server and MySQL to use. There are two choices:
- Preferred, which uses versions LocalWP knows work together.
- Custom, which lets you pick the exact PHP version, web server and database yourself.

Choose Preferred unless you are copying a specific live server, in which case pick Custom and match its PHP version. Click Continue.
Step 4: Set Up Your WordPress Login
This is the login you will use to get into the WordPress dashboard. Fill in three fields:
- WordPress Username, the name you will log in with.
- WordPress Password. Write it down somewhere, because there is no password reset email on a local site.
- WordPress Email, which only matters for admin notices.
There is also an Advanced options toggle for WordPress Multisite. Leave it off unless you know you need a network of sites.
Click Add Site. LocalWP downloads WordPress and sets up the database. This takes one to three minutes.
What you should see: a progress bar, then the site appears in the left sidebar with a green dot next to it, which means it is running.

Step 5: Open Your Local WordPress Site
Select the site in the LocalWP sidebar. Two buttons appear at the top right:
- Open site opens the front end in your browser.
- WP Admin opens the WordPress dashboard login.

Click WP Admin and log in with the username and password from Step 4.
What you should see: the WordPress dashboard, running at an address like my-project.local/wp-admin. Your local WordPress site is installed.
The first time you open a .local address your browser may warn that the certificate is not trusted. That is normal, because LocalWP issues its own certificate. Click Trust in LocalWP’s site settings, or continue past the warning.
Where LocalWP Puts Your Files
You will need this path the moment you want to edit a theme or drop in a plugin.
- macOS:
~/Local Sites/[site-name]/app/public/ - Windows:
C:\Users\[username]\Local Sites\[site-name]\app\public\
A shortcut: right-click the site in LocalWP and choose Reveal in Finder on Mac or Show folder on Windows. Open that folder in VS Code and you can start editing.
Pros and Cons of LocalWP
- One-click WordPress installation
- Clean, intuitive interface
- Easy PHP version switching
- Built-in SSL certificates
- Live Links for temporary public access
- Uses more system resources
- Site sharing requires Live Links
- Less control over the underlying stack
- Limited server configuration
- Harder to replicate complex production environments exactly
When the project ends and you need the site somewhere real, the steps are in our guide to migrate a LocalWP site to any host.
Method 3: Install WordPress Locally with XAMPP (Windows and Mac)
XAMPP bundles the four pieces a WordPress site needs: the Apache web server, the MySQL database, PHP, and phpMyAdmin for managing the database. Unlike LocalWP, XAMPP does not install WordPress for you. You download WordPress yourself, create the database yourself, and run the installer. It takes longer, and you finish knowing what every part does.

Step 1: Download and Install XAMPP
Go to apachefriends.org and click the download button for your operating system. The newest Windows build on 3 November 2026 was XAMPP 8.5.12, which bundles Apache 2.4.65, PHP 8.5.12, phpMyAdmin 5.2.3 and MariaDB 10.11.16. XAMPP’s “MySQL” module is MariaDB, a drop-in replacement that WordPress supports.

Open the installer. It shows a list of components with tick boxes. For WordPress you need four:
- Apache, the web server that answers browser requests.
- MySQL, the database that stores your posts, pages and settings.
- PHP, the language WordPress is written in.
- phpMyAdmin, the screen you use to create the database.

Untick FileZilla, Mercury and Tomcat. WordPress does not use them and they take up space. If XAMPP feels heavy, our roundup of XAMPP alternatives compares the lighter options.
Accept the default install folder, which is C:\xampp on Windows and /Applications/XAMPP on macOS, then finish the installation.
Step 2: Start Apache and MySQL
Open the XAMPP Control Panel. It lists each module with a Start button beside it.
Click Start next to Apache, then Start next to MySQL. Leave the rest stopped.

What you should see: both module names turn green and a port number appears next to each one.
To confirm the web server is really running, click Admin next to Apache. Your browser opens the XAMPP dashboard at http://localhost.

httpd.conf, change Listen 80 to Listen 8080, save, and start Apache again. Your local address then becomes http://localhost:8080.Step 3: Create a Database for WordPress
WordPress needs an empty database to write into. Open a browser tab and go to http://localhost/phpmyadmin.

Click the Databases tab along the top.
In the Create database box, type a name with no spaces, such as wordpress_dev. Leave the dropdown next to it on utf8mb4_general_ci and click Create.

What you should see: the new database name appears in the list on the left, with no tables inside it yet.
Write the database name down. You need it in Step 5.
Step 4: Download WordPress and Put It in htdocs
Go to wordpress.org and click Get WordPress, then Download WordPress. You get a ZIP file.

Unzip it. You now have a folder called wordpress holding all the WordPress core files. The official WordPress installation guide covers the same ground if you want a second reference.
Open the XAMPP folder and find the one called htdocs. This is the folder Apache serves files from.

- Windows:
C:\xampp\htdocs\ - macOS:
/Applications/XAMPP/htdocs/
Drag the unzipped wordpress folder into htdocs, then rename it to something short like mysite. That name becomes part of your local address.
Step 5: Run the WordPress Installer
In your browser, go to http://localhost/mysite, replacing mysite with whatever you named the folder.
WordPress starts its installer. Pick your language and click Continue.

Click Let’s go. On the database screen, enter exactly this:
- Database Name: the name you created in Step 3, for example
wordpress_dev - Username:
root - Password: leave it empty, because a fresh XAMPP install has no MySQL password
- Database Host:
localhost - Table Prefix:
wp_
Click Submit, then Run the installation.
If you get an error establishing a database connection at this point, one of those five values is wrong. Nine times out of ten it is the database name or a stray password in the password field.
Step 6: Finish the Setup
WordPress now asks for the details of your site and your admin account.

- Site Title: anything you like, you can change it later
- Username: your admin login
- Password: WordPress suggests a strong one, copy it somewhere safe
- Your Email: your own address
Click Install WordPress.
What you should see: a Success screen with a Log In button. Your site is at http://localhost/mysite and the dashboard is at http://localhost/mysite/wp-admin.
Your files are in the htdocs folder you used in Step 4:
- Windows:
C:\xampp\htdocs\mysite\ - macOS:
/Applications/XAMPP/htdocs/mysite/
Open that folder in VS Code, PhpStorm or whichever editor you use, and you are ready to work.
Pros and Cons of XAMPP
- Lightweight and fast
- Free and open source
- Can run multiple WordPress sites
- Direct access to Apache and PHP
- Full control over server configuration
- Manual WordPress installation
- No built-in SSL
- Database setup is manual
- Steeper learning curve
- No GUI for site management
What About WampServer and Laragon?
WampServer is the Windows-only equivalent of XAMPP. It ships the same Apache, MySQL and PHP, with a control panel that lives in the system tray. If you already have it installed, every step above still applies; only the folder changes, from C:\xampp\htdocs\ to C:\wamp64\www\. Put the unzipped WordPress folder there and go to http://localhost/mysite exactly as in Step 5.
For a new install, be careful where you download it from. On 3 November 2026, wampserver.com returned HTTP 410 with a notice that the site has not been hosted there since 27 October 2026. We do not link a mirror, because we cannot vouch for one. On Windows, XAMPP or LocalWP is the safer pick.

Laragon is the other popular Windows option. It is a lightweight stack (the site says the core app is under 6 MB) that can install WordPress for you. Read its licence page before you use it for client work.

Method 4: Install WordPress Locally with MAMP (Mac)
MAMP stands for Macintosh, Apache, MySQL and PHP. It is the tool many Mac users reach for first, and there is a Windows build too. The process is the same shape as XAMPP with one useful difference: MAMP lets you point the document root at any folder on your Mac, so your WordPress files can live wherever you keep your projects.
Step 1: Install MAMP
Download MAMP from mamp.info (all versions are on the downloads page) and open the installer. The current macOS release is MAMP 7.4.0 (2 February 2026), for Apple Silicon and Intel, and a Windows build is on the same page. The free version is all you need. MAMP PRO is a paid upgrade and this guide does not require it. For other Mac options, see our list of MAMP alternatives.

What you should see: a MAMP folder in your Applications directory containing the MAMP app.
Step 2: Start the Servers
Open MAMP and click Start on the toolbar. The button turns green when both the web server and MySQL are running; orange means only one of them started. Click WebStart to open MAMP’s start page in your browser.
MAMP runs Apache on port 8888 by default, so your local address is http://localhost:8888 rather than plain http://localhost. MySQL listens on port 8889. You can change both, and the document root, in MAMP’s settings.

Step 3: Create the Database
From the MAMP welcome page, click Tools then phpMyAdmin. Click the Databases tab, type a name such as wordpress_dev, and click Create. This is the same screen described in Method 3, Step 3.

Step 4: Add WordPress and Install
Download WordPress from wordpress.org, unzip it, and copy the folder into MAMP’s document root at /Applications/MAMP/htdocs/. Rename it mysite.
Go to http://localhost:8888/mysite and work through the WordPress installer. The database details are almost the same as XAMPP, with one change that catches people out:
- Database Name:
wordpress_dev - Username:
root - Password:
root, because MAMP sets a MySQL password by default where XAMPP leaves it blank - Database Host:
localhost
Click Submit, then Run the installation, and fill in your site title and admin login as in Method 3, Step 6.

localhost to localhost:8889, the MySQL port MAMP uses.Method 5: Install WordPress Locally with Docker
Docker runs WordPress and MySQL inside containers, which are self-contained bundles that include their own PHP and their own database. Nothing is installed onto your operating system, so removing the site later is one command and leaves no trace. This method uses the terminal, but you only type two commands.
Step 1: Install Docker Desktop
Download Docker Desktop for Windows or Mac and install it. Open the app and wait until the whale icon in your menu bar or system tray stops animating, which means the engine is running. The current release is 4.97.0 (26 October 2026). Docker Desktop is free for personal use and small businesses; larger companies need a paid Docker subscription.

Step 2: Create a Compose File
Make an empty folder for the project. Inside it, create a file named docker-compose.yml and paste this in. It describes two containers, one for the database and one for WordPress, and tells them how to talk to each other.
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp:/var/www/html
volumes:
db_data:
The official WordPress Docker image documentation lists every setting you can change here, including the PHP version.

We ran this exact file on 3 November 2026. The wordpress:latest image gave us WordPress 7.1.4 on PHP 8.3.36, and the installer answered 7.8 to 9.0 seconds after docker compose up -d returned, on a machine that already had the images downloaded. If you would rather start from Ubuntu or add phpMyAdmin, our full guide to installing WordPress on Docker covers both.
Step 3: Start It
Open a terminal in that folder and run:
docker compose up -d

What you should see: Docker downloads the two images the first time, which takes a minute or two, then prints that both containers have started.
Go to http://localhost:8080 and the WordPress installer appears. You skip the database screen entirely, because the Compose file already supplied those details. Fill in your site title and admin login and you are done.

Your WordPress files are in the wp folder that appears next to docker-compose.yml. Open that in your editor.
To stop the site, run docker compose down. To delete it and its database completely, run docker compose down -v.
Method 6: Install WordPress Locally with WordPress Studio
WordPress Studio (Automattic’s app, not to be confused with InstaWP Studio, InstaWP’s AI website builder) is a free local WordPress app from WordPress.com for macOS 13 or newer, 64-bit Windows and 64-bit Debian-based Linux. Recent versions add an AI agent called Studio Code, a live site preview, and publishing to WordPress.com and Pressable. You do not need any of that to install WordPress: creating a local site takes four screens and no database step.
Step 1: Download and install Studio
Go to developer.wordpress.com/studio and click the download button for your system. On a Mac, drag WordPress Studio into Applications. On Windows, run the setup file (or install it from the Microsoft Store); it opens when it finishes.

Step 2: Skip or connect the WordPress.com account
On first launch, Studio explains what a free WordPress.com account adds: the AI agent, preview links and publishing. Click Not now to go straight to your first local site, or Continue with WordPress.com to sign in.

Step 3: Add a blank site
The Add site dialog opens (later, use the + next to Sites, or Ctrl+N / Cmd+N). Stay on Create and click Blank site.

Step 4: Name it, pick versions, create
Enter a site name. Studio fills in the folder, the WordPress version and the PHP version, and you can change any of them, so you can match a client’s server. Under Advanced settings you can set a custom .local domain and the admin login. Click Create site.

What you should see: the new site starts on its own and opens in the preview on the right. Use the address bar menu in the preview to switch between the front end, WP Admin and the database.

Method 7: Run WordPress in Your Browser with WordPress Playground
WordPress Playground runs a complete WordPress site inside your browser, using PHP compiled to WebAssembly. Nothing is installed, so it is the quickest way to try a plugin or theme. It is not a place to build a long-lived site, because the data lives in your browser.
Step 1: Open Playground
Go to playground.wordpress.net. WordPress loads and you are already logged in as an admin.

Step 2: Pick the WordPress and PHP version
Click Site Settings in the toolbar. Choose the WordPress version (7.1 and the 7.2 beta were listed on 3 November 2026), a PHP version from 7.4 to 8.5, the language, and whether to create a multisite network, then click Apply to this Playground.

Step 3: Keep your work, or run it from a terminal
The toolbar shows when Playground is autosaving to your browser. Use Export to download the site before you clear your browser data. Developers can run the same engine from a terminal with the official Playground CLI, which mounts a local folder:
npx @wp-playground/cli@latest server

This is the engine the InstaWP CLI in Method 1 uses underneath, with naming, start and stop, and a push to hosting added on top.
Installing WordPress on Windows and on Mac
Every method above runs on both operating systems. What changes is where the files land and which port the server uses. For a Windows-only walkthrough, see our guide to installing WordPress on Windows.
| Tool | Windows file path | Mac file path | Default local address |
|---|---|---|---|
| InstaWP CLI | %USERPROFILE%\.instawp\local\[site]\ |
~/.instawp/local/[site]/ |
http://127.0.0.1:[port] |
| LocalWP | C:\Users\[you]\Local Sites\[site]\app\public\ |
~/Local Sites/[site]/app/public/ |
[site].local |
| XAMPP | C:\xampp\htdocs\mysite\ |
/Applications/XAMPP/htdocs/mysite/ |
http://localhost/mysite |
| WAMP | C:\wamp64\www\mysite\ |
Not available | http://localhost/mysite |
| MAMP | C:\MAMP\htdocs\mysite\ |
/Applications/MAMP/htdocs/mysite/ |
http://localhost:8888/mysite |
| Docker | The wp folder beside your Compose file |
The wp folder beside your Compose file |
http://localhost:8080 |
One Mac-specific point: macOS ships with its own Apache, which can hold port 80 and stop XAMPP from starting. MAMP avoids the clash by using port 8888, which is why its addresses look different.
Common Problems and How to Fix Them
These are the problems we hit most often, with the fix for each.
“Error establishing a database connection”
The installer cannot reach MySQL. Check that MySQL is actually started in your control panel, then check the four values you typed: database name, username root, the password (blank on XAMPP, root on MAMP), and host localhost. Our full guide to the error establishing a database connection covers the rarer causes.
Apache will not start
Another program is holding port 80. Change the Apache port to 8080 in httpd.conf, as described in Method 3, Step 2, and use http://localhost:8080 from then on.
A blank white page instead of your site
Usually a PHP error with error display switched off. Open wp-config.php in your site folder, find the line that sets WP_DEBUG, and change it to true so the actual message appears. If the page is loading but not rendering, our notes on a WordPress site not loading work through the rest.
“Object not found” or a 404 on every page
The folder name in your address does not match the folder in htdocs. Check the spelling, and remember it is case sensitive on macOS.
“Unsupported engine” warnings from the InstaWP or Playground CLI
npm prints these when your Node.js is older than a package asks for. In our test on Node.js 22.22, the Playground packages asked for Node.js 24.18 or newer but the site still started normally. Installing the current Node.js LTS release removes the warning.
What Happens When the Local Site Has to Go Live
Your site works. It looks right at http://localhost/mysite. Now the client wants to see it, or it needs to launch. This is where local development stops being simple, and it is the part most install guides leave out.
Three things get in the way.
1. Every URL is written into the database
WordPress does not store links as relative paths. It writes the full address into the database, including inside serialized arrays, which are strings that record their own character length. Change http://localhost/mysite to https://clientdomain.com with a plain find and replace and those length counts no longer match, so the data becomes unreadable.
Serialized data is where your theme customizer settings, widget layouts, page builder content (Elementor, Beaver Builder, Divi), plugin settings and menus all live. One broken array can take a whole page layout down.
The safe way to do it is WP-CLI’s search-replace command, which understands serialized data and rewrites the lengths correctly. Our step-by-step guide to move WordPress from local to live walks through the whole migration.
2. Your machine is not the server
You built on PHP 8.2 with a generous memory limit and every extension available. The host runs an older PHP, enforces MySQL strict mode, caps memory lower, and has disabled a function your plugin calls. The site that ran perfectly on localhost throws a fatal error on the first page load.
3. Nobody else can see it
A local address only exists on your computer. A client cannot open it. A content writer cannot start filling pages. A second developer cannot pick up where you left off, because their copy of the database is already different from yours.
The usual workarounds are a temporary staging server, which costs money and time to set up, or a tunnelling tool, which adds a moving part that breaks when your laptop sleeps.
How to Push Your Local WordPress Site Live with InstaWP
The quickest way to take a local WordPress site live is to push it to InstaWP, a managed WordPress hosting provider whose CLI copies the files and database from your computer to a new hosted site in one command. You do not need to export the database, upload files over FTP or rewrite URLs by hand.
There are two routes. If the site already exists in LocalWP, XAMPP, MAMP or another local tool, push it. If you have not started yet, build on an InstaWP sandbox and edit its files locally, so there is nothing to move at the end. For the manual export and import route with any host, see our guide to moving WordPress from local to live.
Push an existing local site with one command
The InstaWP CLI connects outward from your computer, so it works from localhost with no tunnel. You need Node.js 22 or newer, mysqldump on your PATH, and an InstaWP account on a paid plan. The full walkthrough is in the InstaWP docs.
Step 1: Sign in. Run instawp login, then instawp whoami to confirm the account.

Step 2: Preview the move. From the site’s folder, run a dry run. It prints the WordPress root, the local domain, the WordPress version and what it would upload, without creating anything.
instawp migrate push . --name my-site --source-url http://my-site.local/ --dry-run

Step 3: Run it for real. Run the same command without --dry-run. The CLI reserves a new hosted site, uploads the files and database, and restores them there as a mirror of your local site.

Step 4: Move it to the right plan. The new site is created on the Sandbox plan, even though the migration reports success. Change the plan before you point a domain at it.

Or skip the move: build on InstaWP and edit the files locally
Developers install WordPress locally for the speed and for direct access to the files. The localhost address is a side effect of getting those two things, and it is the part that causes trouble at the end of the project.
So there is a second option: start on a WordPress sandbox in the cloud that has a shareable URL, an SSL certificate and a PHP version you choose, then use Local Mount to open that site’s files on your own computer as if they were a normal folder.
Edit a theme file in VS Code, save it, and the change is live on the site. There is no upload step and no migration at the end, because the site was never on localhost to begin with. When it is ready to launch, you point a domain at it and it becomes managed WordPress hosting rather than a rebuild. That is the workflow InstaWP is built around.
Create a cloud WordPress site on InstaWP
Step 1: Create the site. In the InstaWP dashboard, click New Site. Start from scratch, a snapshot or the store, then pick the WordPress version, the PHP version and the server location.

Step 2: Choose a plan. The Sandbox plan is $2 a month and suits building and client review. Production plans start at $5 a month, and every site is billed by the day.

Step 3: Open it. The site is ready with its URL and login details. Magic Login opens WP Admin without a password, and the link is what you send the client.

Step 4: Use the developer tools. The actions menu holds PHP Config, Versions, Clone, SFTP/SSH, Map Domain and Go Live, so the same site carries on from build to launch.


The tradeoff is honest: this needs an internet connection, and a true local install does not. If you are learning WordPress on a laptop with no reliable connection, LocalWP is still the right answer.
How Local Mount works
Local Mount connects your computer to the site’s files as a network drive. WordPress keeps running on InstaWP’s servers, and each file you save in your editor is written straight to the site, so a page reload shows the change. It is available from the Starter plan up.
Setting Up Local Mount
Step 1: Turn it on. Open the Sites page in your InstaWP dashboard, click your site, choose Local Mount in the left panel, and switch Enable Mount on. Copy the Server Address, Username and Password it shows you.

Step 2 on Windows. Open File Explorer and click This PC.

Click Map network drive in the toolbar, paste the Server Address into the Folder field, and click Finish. Enter the Username and Password when prompted.

What you should see: your site appears under This PC as a drive letter.
Step 2 on macOS. Open Finder, click Go in the menu bar, then Connect to Server, or press Cmd and K together.

Type the Server Address with the https:// prefix and click Connect.

Enter the Username and Password.

What you should see: the site listed under Locations in the Finder sidebar. Open it and you have the familiar WordPress folder structure.
Step 2 on Linux. Use your file manager’s Connect to Server option, or mount it from the command line:
sshfs username@host:/path /local/mountpointOnce mounted, open the folder in your editor. You will see the standard WordPress layout:
/wp-admin/
/wp-content/
/themes/
/plugins/
/uploads/
/wp-includes/Go to /wp-content/themes/your-theme/ and start editing. Because the files are a normal folder to your operating system, Git works on them too:
cd /Volumes/InstaWP-Site/wp-content/themes/my-theme
git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:username/my-theme.git
git push -u origin main
One thing worth being clear about: WordPress is still running on InstaWP’s servers, not on your machine. You are editing the files locally while the site executes in the cloud. That is why there is no XAMPP to configure and no local database to manage, and also why an internet connection is required.
The Local Mount feature explainer goes into the protocol, the permissions and the edge cases. There is also a walkthrough video:
When to Use a Local Install and When Not To
Neither approach wins outright. Pick by what the project actually needs.
Plenty of people use both. A local install for learning and for quick throwaway experiments, and a cloud sandbox for anything a client will eventually see. If you are weighing the two seriously, we compared them directly in our writeup of the best LocalWP alternative, and a WordPress staging site covers the case where the live site already exists.
Which tool for which job
| Job | Best pick | Why |
|---|---|---|
| Learning how WordPress works, offline | XAMPP or MAMP | You start the servers and create the database yourself |
| Testing one plugin for ten minutes | WordPress Playground | It runs in the browser, so there is nothing to install or remove |
| A local site from the terminal that later goes live | InstaWP CLI | One command to create, one to push to hosting |
| Theme or plugin development with Git | LocalWP or Docker | Real MySQL, files in a normal folder |
| A client site the client must review | InstaWP sandbox with Local Mount | A real URL from day one, files in your editor |
| Matching a production server exactly | Docker or InstaWP | Pin the PHP and database versions |
| Building with an AI agent | WordPress Studio, or InstaWP with InstaMCP | Both connect an AI client to the site |
| A business website, with no development setup | InstaWP Studio | Describe the business and get a WordPress site, hosted on InstaWP, with nothing to install |
Can You Host Your Local WordPress Site on InstaWP?
Yes. InstaWP is a managed WordPress hosting provider, so a site you built locally can move onto it with instawp migrate push, and a site you started as an InstaWP sandbox goes live with a plan change and a domain, with no migration. Each site runs on InstaWP’s own cloud servers and is billed by the day.

What each plan adds, from InstaWP’s pricing page on 3 November 2026:
| Feature | Sandbox ($2/mo) | Starter ($5/mo) | Plus ($9/mo) | Pro ($15/mo) and up |
|---|---|---|---|---|
| Free SSL | Yes | Yes | Yes | Yes |
| Backups | Monthly | Weekly | Daily | Daily |
| InstaCDN | No | Basic edge | Premium | Premium |
| InstaShield firewall | No | Basic | Advanced, plus bot and DDoS protection | Advanced, plus bot and DDoS protection |
| Object cache, managed updates, uptime monitoring | No | No | Yes | Yes |
| Built-in staging and image optimization | No | No | No | Yes |
| SSH, WP-CLI, Git, SFTP, PHP 7.4 to 8.5 | Yes | Yes | Yes | Yes |
Backups restore the whole site in one click, and from the Pro plan you can branch a staging copy of the live site, test there, and push the changes back.


On speed, InstaWP ran WP Benchmark, a free plugin from the WordPress.org directory that it did not write, on its new-generation servers and on the previous generation on the same day in August 2026. The new servers scored 9.8 out of 10 against 7.3. The full method is in our WordPress hosting benchmark.
Conclusion
Installing WordPress locally takes anywhere from ten seconds to twenty minutes, depending on the tool. The InstaWP CLI and WordPress Playground skip the database entirely. LocalWP and Studio hide it. XAMPP and MAMP make you do it, which is the better way to learn. Docker gives you a disposable environment you can delete cleanly.
Whichever you choose, leave time for the day the site has to leave your machine. Moving a WordPress site off localhost takes longer than installing it did, and it is where most of the errors show up. If the site will end up on InstaWP’s managed WordPress hosting, a single instawp migrate push or a cloud sandbox from the start removes that step.
Pick the InstaWP CLI if you want a site from one terminal command and a push to hosting later. Pick LocalWP or Studio if you want WordPress running in a few clicks. Pick XAMPP or MAMP to see the database and web server for yourself, Docker if you already live in containers, and Playground for a ten-minute test. If the site is for a client, consider skipping localhost altogether: an InstaWP sandbox with a real URL removes the migration at the end, and Local Mount keeps your editor where it was.
Frequently Asked Questions
How do I install WordPress locally on Windows?
Download LocalWP from localwp.com, run the installer, click Create a new site, type a site name, choose the Preferred environment, and set a WordPress username and password. LocalWP installs WordPress and the site opens at an address like my-project.local. If you would rather do it by hand, install XAMPP, start Apache and MySQL, create a database in phpMyAdmin, drop the WordPress folder into the XAMPP htdocs directory, and go to http://localhost/mysite.
How do I install WordPress locally on a Mac?
The same tools work. LocalWP, WordPress Studio and the InstaWP CLI are the quickest. MAMP is the traditional Mac choice: install MAMP 7.4, click Start, create a database in phpMyAdmin, copy WordPress into /Applications/MAMP/htdocs/, and open http://localhost:8888/mysite. Use root as both the database username and the password on MAMP.
What is the fastest way to install WordPress locally?
From a terminal, the InstaWP CLI: instawp local create had WordPress 7.1.4 running in about 9.8 seconds in our November 2026 tests, after a one-time download on the first run. Without a terminal, LocalWP and WordPress Studio take a few minutes and a few clicks. WordPress Playground is faster still, but it runs in your browser rather than as a site on your computer.
Is installing WordPress locally free?
Yes. WordPress itself is free from wordpress.org, and the InstaWP CLI, LocalWP, WordPress Studio, WordPress Playground, XAMPP and MAMP all have free versions that do everything in this guide. Docker Desktop is free for personal use and small businesses, while larger companies need a paid Docker subscription. MAMP PRO and some LocalWP add-ons are paid, but you do not need them.
What is the difference between LocalWP and XAMPP?
LocalWP installs WordPress for you. It creates the database, writes wp-config.php and sets up the admin account, so you never see those steps. XAMPP only installs the server software. You download WordPress, create the database in phpMyAdmin, and run the installer yourself. LocalWP is faster; XAMPP teaches you what is actually happening.
Can I install WordPress locally without MySQL?
Yes. The InstaWP CLI and WordPress Playground run WordPress on SQLite, so there is no database server to install or configure. Most themes and plugins work, but a plugin that relies on MySQL-only queries may not, so test with LocalWP, XAMPP, MAMP or Docker if you need real MySQL.
Why does my local WordPress site say error establishing a database connection?
WordPress cannot reach MySQL with the details it was given. Check that MySQL is started in your control panel, then check the database name, the username (root), the password (blank on XAMPP, root on MAMP) and the host (localhost). A typo in the database name is the most common cause.
Can I access my local WordPress site from another computer or a phone?
Not by default. A local address such as localhost or my-project.local only resolves on the machine running the server, so a client or a teammate cannot open it. To let someone else see the site you need a tunnelling tool, a staging server, or a cloud sandbox that has its own public URL.
Is WampServer still available?
On 3 November 2026, the official site wampserver.com returned HTTP 410 with a notice that it has not been hosted there since 27 October 2026. An existing WampServer install keeps working, but for a new Windows install use XAMPP, LocalWP or Laragon.
How do I move my local WordPress site to a live server?
Export the database, copy the files to the host, import the database, then rewrite every stored URL with WP-CLI’s search-replace command, which handles serialized data correctly. If the destination is InstaWP, the InstaWP CLI does all of that in one command: instawp migrate push. Our guide to moving WordPress from a local server to live covers the manual sequence.
Can I host my local WordPress site on InstaWP?
Yes. InstaWP is a managed WordPress hosting provider. Push an existing local site with instawp migrate push, or push a site made with the InstaWP CLI using instawp local push. Plans start at $2 a month for a Sandbox site and $5 a month for production, billed by the day.
Do I need to install WordPress locally at all?
No. A local install is one way to get a private WordPress site to work on, and it is a good way to learn. If the project will end up on a real domain and other people need to see it along the way, starting on a cloud sandbox removes the migration step at the end. Local Mount then gives you the same file access in your own editor. And if all you need is a business website rather than a development environment, InstaWP Studio builds a WordPress site from a description of your business and publishes it on InstaWP.
Can I use Local Mount offline?
No. WordPress runs on InstaWP’s servers, so you need a connection for a saved change to take effect. Many editors let you keep working offline and save once the connection returns.
Does Local Mount work on all InstaWP plans?
Local Mount is available from the Starter plan upwards. Check the InstaWP pricing page for the current plan details, since these change.
Can two developers mount the same InstaWP site?
Yes. Each person mounts the same site on their own computer, so everyone is editing one set of files against one database. There is no local copy to keep in sync.