Skip to main content
Agency Program 50% cashback. Exclusive discounts. Priority support. Built for growing agencies. 50% cashback. Exclusive discounts. Priority support. Built for growing agencies. Speak to the team Join free

How to Install WordPress Locally (Windows & Mac): 7 Free Methods (2026)

Seven free ways to run WordPress on your own computer, from a one-command InstaWP CLI site to LocalWP, Studio, Playground, XAMPP, MAMP and Docker, each tested in November 2026 with a screenshot for every step.

NS
Neha Sharma
Content, InstaWP
Updated Nov 3, 2026 41 min read

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.

Key takeaways
  • 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.

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).

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.

ToolLatest versionRuns onOfficial download
InstaWP CLI0.0.1-beta.36 (needs Node.js 22+)Windows, Mac, Linuxnpmjs.com/package/@instawp/cli
LocalWP10.2.0 (15 Oct 2026)Windows, Mac, Linuxlocalwp.com/releases
XAMPP8.5.12 with PHP 8.5.12 (Windows build)Windows, Mac, Linuxapachefriends.org
MAMP7.4.0 for macOS (2 Feb 2026)Mac, Windowsmamp.info/en/downloads
Docker Desktop4.97.0 (26 Oct 2026)Windows, Mac, Linuxdocker.com
WordPress Studio2.1.0Windows, Mac, Linuxdeveloper.wordpress.com/studio
WordPress PlaygroundWeb app, nothing to installAny modern browserplayground.wordpress.net
WordPress core7.1.4 (for the manual methods)Anywordpress.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.

Terminal output of npm install -g @instawp/cli followed by instawp --version, which prints 0.0.1-beta.36
Our test run, 3 November 2026.

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.

Terminal output of instawp local create starting a local WordPress site on WordPress Playground with PHP 8.3 and ending in Ready, WordPress is running on 127.0.0.1:9471
Our test run, 3 November 2026.

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.

The WordPress 7.1.4 dashboard of a local site made with the InstaWP CLI, opened through its auto-login link
Our test run, 3 November 2026.

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.

Terminal output of instawp local list showing each local WordPress site with its status, URL, WordPress version and PHP version
Our test run, 3 November 2026.
It runs on SQLite, not MySQL. WordPress Playground swaps MySQL for SQLite, which suits themes, plugins and content work. A plugin that sends raw MySQL-only queries may misbehave. If you need a real MySQL server on your machine, use LocalWP, XAMPP, MAMP or Docker.

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.

Build locally, launch on InstaWPCreate a free WordPress sandbox, then push your local site to it when the client is ready to look.
Create a free sandbox →

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.

The LocalWP app open on a desktop, the free tool most people use to install WordPress locally

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.

The Download button on localwp.com with the Windows, macOS and Linux installer options

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.

The LocalWP releases page listing Local 10.2.0 downloads for macOS, Windows and Linux
Screenshot: localwp.com/releases, 3 November 2026.

Step 2: Create a New WordPress Site

Click the Create a new site button, or the plus icon in the bottom left corner.

The LocalWP dashboard with the Create a new site button 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.
LocalWP asking whether to create a new site, use a Blueprint, or pull a site from a cloud backup

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.
The LocalWP environment screen offering Preferred settings or a Custom PHP, web server and MySQL choice

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.

The LocalWP Set up WordPress screen with the WordPress username, password and e-mail fields filled in, and the Add Site button at the bottom right

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.
The LocalWP dashboard for a site called my-project, showing the WP Admin and Open site buttons at the top right and the site domain my-project.local

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

Pros
  • One-click WordPress installation
  • Clean, intuitive interface
  • Easy PHP version switching
  • Built-in SSL certificates
  • Live Links for temporary public access
Cons
  • 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.

The XAMPP homepage on apachefriends.org, the Apache, MySQL, PHP and Perl stack

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.

The XAMPP download buttons for Windows, Linux and OS X on apachefriends.org

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.
The XAMPP installer component list with Apache, MySQL, PHP and phpMyAdmin ticked

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.

The XAMPP Control Panel with the Start buttons next to the Apache and MySQL modules

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.

The XAMPP dashboard open in a browser at localhost, confirming Apache is running
If Apache refuses to start, something else is already using port 80. On Windows that is usually Skype or IIS. On a Mac it is often the built-in Apache. In the XAMPP Control Panel click Config next to Apache, open 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.

The phpMyAdmin interface at localhost/phpmyadmin with the Databases tab along the top

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.

Typing a database name into the Create database field in phpMyAdmin

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.

The Get WordPress download button on wordpress.org

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.

The extracted WordPress folder copied into the XAMPP htdocs directory
  • 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.

The WordPress installation wizard asking you to pick a language at localhost

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.

The WordPress welcome screen asking for a site title, admin username, password and email
  • 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

Pros
  • Lightweight and fast
  • Free and open source
  • Can run multiple WordPress sites
  • Direct access to Apache and PHP
  • Full control over server configuration
Cons
  • 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.

wampserver.com showing a Site retired notice, This website is no longer available, returned as HTTP 410 on 3 November 2026
Screenshot: wampserver.com, 3 November 2026.

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.

The Laragon homepage on laragon.org with the Download button
Screenshot: laragon.org, 3 November 2026.

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.

The MAMP homepage on mamp.info with the Download button at the top right

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.

The MAMP window with the Start and Stop button, WebStart, the document root set to Applications, MAMP, htdocs, Apache selected and PHP 8.3
Image: MAMP documentation.

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.

Typing a database name into the Create database field in phpMyAdmin
phpMyAdmin works the same way in MAMP and XAMPP.

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.

The WordPress database connection screen filled in with MAMP defaults: database wordpress_dev, username root, password root, host localhost
The database screen of the WordPress 7.1.4 installer, filled in with MAMP’s defaults. Our test run, 3 November 2026.
If WordPress cannot connect on MAMP, change Database Host from 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.

The Docker Desktop page on docker.com with the Download Docker Desktop button
Screenshot: docker.com, 3 November 2026.

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.

The official WordPress image on Docker Hub, listing tags such as 7.1.4-php8.2-apache
Screenshot: Docker Hub, 3 November 2026.

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
Terminal output of docker compose up -d creating the network, database volume, db container and wordpress container
Our test run, 3 November 2026.

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.

The WordPress installer at localhost after docker compose up, asking for a site title, username, password and email
The WordPress installer from the official Docker image. Our test run, 3 November 2026.

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.

The WordPress Studio download page on developer.wordpress.com with download buttons for Mac, Windows and Linux and the CLI install command
Screenshot: developer.wordpress.com/studio, 3 November 2026.

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.

The Welcome to WordPress Studio dialog with the Continue with WordPress.com and Not now buttons
Image: WordPress Studio documentation.

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.

The WordPress Studio Add site dialog open on Create, showing the Blank site card and Blueprint options
Image: WordPress Studio documentation.

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.

The WordPress Studio Create a blank site screen with Site name, Local path, WordPress version and PHP version fields
Image: WordPress Studio documentation.

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.

The WordPress Studio window with the sites sidebar on the left, the Studio Code chat in the middle and the live site preview on the right
Image: WordPress Studio documentation.

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.

WordPress running inside the browser on playground.wordpress.net, with the Playground toolbar at the bottom of the page
Screenshot: playground.wordpress.net, 3 November 2026.

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.

The WordPress Playground Site Settings panel set to WordPress 7.1 and PHP 8.3, with options for language, network access and multisite
Screenshot: playground.wordpress.net, 3 November 2026.

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
Terminal output of npx @wp-playground/cli server reporting PHP 8.3, WordPress latest and Ready, WordPress is running on 127.0.0.1:9481
The first run took 17.7 seconds in our test, including the npx download check. Our test run, 3 November 2026.

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.

Terminal showing instawp login and instawp whoami confirming the signed-in InstaWP account
Image: InstaWP documentation.

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
Terminal output of instawp migrate push with --dry-run, listing the WordPress root, source domain, WordPress version and what would be uploaded
Image: InstaWP documentation.

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.

Terminal output of instawp migrate push finishing the migration of a local WordPress site to a new InstaWP site
Image: InstaWP documentation.

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.

The migrated site in the InstaWP dashboard, created on the Sandbox plan
Image: InstaWP documentation.
Take your local site live on InstaWPPush it with one command, or start the next project on a sandbox that already has a real URL.
Create a free sandbox →

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.

The InstaWP new site screen with From Scratch, Snapshot and Store tabs, WordPress and PHP version, server location and site name

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.

The InstaWP plan picker showing daily prices for the Sandbox, Starter, Plus, Pro and Turbo plans

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.

The InstaWP Your new WordPress website is ready screen with the site URL, login details and Magic Login

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 InstaWP sites list with the actions menu open, showing Versions, PHP Config, Go Live, Clone, SFTP/SSH and Map Domain
An InstaWP cloud site opened in a code editor through Local Mount, showing the wp-content folder

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.

The Local Mount panel in the InstaWP dashboard showing the server address, username and password

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

File Explorer open at This PC on Windows, where the Map Network Drive button sits in the toolbar

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.

The Windows Map Network Drive dialog with the InstaWP server address pasted into the Folder field

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.

The Finder Go menu on macOS with the Connect to Server option highlighted

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

The macOS Connect to Server dialog with the InstaWP Local Mount address entered

Enter the Username and Password.

The mounted InstaWP site showing under Locations in the macOS Finder sidebar

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/mountpoint

Once 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:

After the site is live, you can point an AI client at it. InstaWP sites can be made MCP-ready from the dashboard with a single toggle and no plugin to install, which lets tools like Claude or Cursor call typed actions on the site instead of you clicking through wp-admin. That is a post-launch convenience, not an install or migration tool. See InstaMCP and the background on a WordPress MCP server.
Only need a website, not a development setup? You may not need a local install at all. InstaWP Studio is InstaWP’s AI website builder: describe your business and it builds a real WordPress site on native blocks, which you then edit by chat, by clicking on the page, or in the normal WordPress editor. It publishes to InstaWP hosting, so there is no local site to push.

When to Use a Local Install and When Not To

Neither approach wins outright. Pick by what the project actually needs.

What you need Local install InstaWP
Work with no internet connection Yes No
Learn how the WordPress stack fits together Yes, that is the point Hidden from you
Send a client a link to review Needs a staging server or a tunnel The site already has a URL
Two developers on the same site Separate databases, manual syncing Both mount the same site
Match the production PHP version Possible, you configure it Chosen when the site is created
Go live at the end A full migration Point a domain at it
Cost while you build Free From $2 a month (Sandbox), billed by the day
SSL and backups You set them up yourself Free SSL on every plan, daily backups from Plus

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

JobBest pickWhy
Learning how WordPress works, offlineXAMPP or MAMPYou start the servers and create the database yourself
Testing one plugin for ten minutesWordPress PlaygroundIt runs in the browser, so there is nothing to install or remove
A local site from the terminal that later goes liveInstaWP CLIOne command to create, one to push to hosting
Theme or plugin development with GitLocalWP or DockerReal MySQL, files in a normal folder
A client site the client must reviewInstaWP sandbox with Local MountA real URL from day one, files in your editor
Matching a production server exactlyDocker or InstaWPPin the PHP and database versions
Building with an AI agentWordPress Studio, or InstaWP with InstaMCPBoth connect an AI client to the site
A business website, with no development setupInstaWP StudioDescribe the business and get a WordPress site, hosted on InstaWP, with nothing to install
Test your next client site on InstaWPSpin up a sandbox with a shareable URL, edit it locally with Local Mount, and launch it without a migration.
Create a free sandbox →

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.

The InstaWP managed hosting page with the Sandbox to Production toggle and InstaCDN, InstaShield and daily backups listed

What each plan adds, from InstaWP’s pricing page on 3 November 2026:

FeatureSandbox ($2/mo)Starter ($5/mo)Plus ($9/mo)Pro ($15/mo) and up
Free SSLYesYesYesYes
BackupsMonthlyWeeklyDailyDaily
InstaCDNNoBasic edgePremiumPremium
InstaShield firewallNoBasicAdvanced, plus bot and DDoS protectionAdvanced, plus bot and DDoS protection
Object cache, managed updates, uptime monitoringNoNoYesYes
Built-in staging and image optimizationNoNoNoYes
SSH, WP-CLI, Git, SFTP, PHP 7.4 to 8.5YesYesYesYes
Turbo is $25 and Elite $45 a month. Adding a card unlocks $25 in credits, production plans have a 14-day money-back guarantee, and there is no annual contract.

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.

Backups and Restore on an InstaWP Pro site, with Monitor, Object Cache, CDN, Shield and Image Optimizer in the sidebar
The InstaWP staging panel with production and staging sites and Pull to staging and Push to production buttons

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.

Launch your site on InstaWPManaged WordPress hosting from $5 a month per site, billed daily, with free migration and human support.
See managed hosting →

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.

The recap

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.

Try it on a real siteSpin up a WordPress sandbox, share the URL with your client the same day, and move it to managed hosting when it launches.
See managed hosting →

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.

NS
Neha Sharma
Content, InstaWP

Neha writes practical WordPress tutorials and agency playbooks, with a focus on dev workflows and AI building.