← Back to Home

WordPress Local Development Environment Complete Guide

WordPressLocal by FlywheelDevKinstaDockerdevelopment environment

# Background

I needed a local development environment to test themes, plugins, and WordPress core updates. After hitting countless walls, I tested all the major approaches: Local by Flywheel (free, 45K+ GitHub stars), DevKinsta (from Kinsta, free but full features for Kinsta users only), manual Lnmp (most flexible but most time-consuming), and Docker (I wrote about Docker WordPress installation before, this time focusing on local dev scenarios).

This article cuts through one thing: which tool to use in which scenario.

Why Local Development Environment Matters

Editing code on a live site is suicide. A staging environment surfaces all the problems before they reach production.

Three core needs:

1. Quick site spin-up: A fresh WordPress site in 5 minutes

2. Multi-version compatibility: Test PHP 7.4/8.0/8.3 compatibility

3. Data isolation: Each project has its own database, no interference

Local by Flywheel: Free First Choice

Who Should Use It

Individual developers, students, theme developers who need quick site setup without spending money.

Core Advantages

Practical Steps

Download and install from localwp.com, then:

1. Click "+" to create a new site

2. Enter site name, select PHP version (recommend 8.2) and WordPress version

3. Click "Create", wait 3 minutes

4. Site appears in the left list, click "Admin" to enter the dashboard

Pitfalls Encountered

Pitfall 1: On macOS Big Sur and later, Local needs System Integrity Protection disabled to use Spinning Horse

Solution: Switch to "Fast CGI" mode instead of "Spinning Horse"

Pitfall 2: Site fails to start, showing "Port 443 already in use"

Cause: Other services occupying port 443 (common with Apache or VMWare)

Fix: sudo lsof -i :443 to find the process, kill it, then retry

Data

DevKinsta: Essential for Kinsta Users

Who Should Use It

Users already using Kinsta hosting, or those who want to use high-quality WordPress hosting.

Core Advantages

Practical Steps

1. Download DevKinsta (kinsta.com/devkinsta)

2. Create new site, select "WordPress" or "WordPress Multisite"

3. Choose PHP version (up to 8.3) and database engine (MySQL or MariaDB)

4. Click "Create", wait 3 minutes

5. WordPress admin URL: https://localhost:10002/

Pitfalls Encountered

Pitfall 1: After uninstall, residual MySQL process keeps port 3306 occupied

Fix: On Mac brew services stop kinsta-mysql, on Windows run as administrator sc delete KinstaMySQL

Pitfall 2: In multisite mode, subdirectory sites cannot be accessed

Cause: Nginx configuration does not support PATHINFO by default

Fix: Enable "Pretty Permalinks" in DevKinsta settings

Data

Manual Lnmp/Docker: The Control-Freaks' Choice

Who Should Use It

Developers with Linux ops experience who need full control over server configuration, or already using Docker for other services.

Local Docker + WordPress (My Previous Approach)

I wrote a complete Docker WordPress installation guide before (2026-04-25), so this time I'll skip basics and focus on the local dev scenario:

# docker-compose.yml (key configuration)
services:
  wordpress:
    image: wordpress:6.9-php8.3-fpm
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppass
      WORDPRESS_DB_NAME: wpdb
    volumes:
      - ./wp-data:/var/www/html
    depends_on:
      db:
        condition: service_healthy

  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wpdb
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppass
    volumes:
      - mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      retries: 10

volumes:
  mysql-data:
docker compose up -d
# Wait 30 seconds, then visit http://localhost:8080

Best for: Already using Docker for dev environment, need unified management with other services (n8n, PostgreSQL, etc.)

Manual Lnmp (Maximum Control)

Suits scenarios needing deep Nginx customization, PHP-FPM process counts, detailed logging:

# Ubuntu 24.04 LTS minimal install
sudo apt update && sudo apt upgrade -y

# Install Nginx
sudo apt install nginx -y

# Install PHP 8.3 FPM + common extensions
sudo apt install php8.3-fpm php8.3-mysql php8.3-curl \
  php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip \
  php8.3-imagick php8.3-redis -y

# Install MySQL 8.0
sudo apt install mysql-server -y

# Start services
sudo systemctl start php8.3-fpm
sudo systemctl start nginx
sudo systemctl start mysql

# Create WordPress database
sudo mysql
# > CREATE DATABASE wpdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# > CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppass';
# > GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';
# > FLUSH PRIVILEGES;

Nginx configuration (/etc/nginx/sites-available/wordpress):

server {
    listen 80;
    root /var/www/wordpress;
    index index.php;
    server_name localhost;

    client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo ln -s /etc/nginx/sites-available/wordpress \
  /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

# Download WordPress
cd /var/www
sudo wget https://wordpress.org/wordpress-6.9.4.tar.gz
sudo tar -xzf wordpress-6.9.4.tar.gz
sudo chown -R www-data:www-data /var/www/wordpress

Best for: Mirror of VPS production environment, local dev 100% identical to production.

Pitfalls Encountered (Manual Lnmp)

Pitfall 1: PHP 8.3 socket path changed

On Ubuntu 24.04, PHP 8.3 FPM socket path is /run/php/php8.3-fpm.sock, not the old /run/php/php7.sock

Fix: Check the socket path in /etc/nginx/snippets/fastcgi-php.conf or modify manually

Pitfall 2: MySQL 8.0's caching_sha2_password authentication

Some older WordPress plugins are incompatible with caching_sha2_password, need to switch to mysql_native_password:

ALTER USER 'wpuser'@'localhost' \
  IDENTIFIED WITH mysql_native_password BY 'wppass';

Pitfall 3: Nginx 403 Forbidden

Check: Is /var/www/wordpress directory owned by www-data?

Fix: sudo chown -R www-data:www-data /var/www/wordpress

Side-by-Side Comparison

DimensionLocal by FlywheelDevKinstaManual Lnmp/Docker
CostFreeFree (full features for Kinsta users)Free
Ease of use⭐⭐ (5 minutes)⭐⭐ (5 minutes)⭐⭐⭐⭐⭐ (1 hour+)
Multi-site support✅ (manual config)
PHP version switching✅ (UI click)✅ (UI click)❌ (needs reinstall)
Auto SSL config❌ (manual certbot)
Live Link sharing✅ (unique)
Production push✅ (Kinsta one-click deploy)
System footprint~500MB~2GBDepends on config

Decision Tree for Choosing

Need quick site for testing plugins/themes?
├─ Yes → Need Live Link to share with clients?
│    ├─ Yes → Local by Flywheel ✅
│    └─ No → Local by Flywheel ✅
└─ No → Using Kinsta hosting?
     ├─ Yes → DevKinsta ✅ (one-click to production)
     └─ No → Need full control of Nginx/PHP config?
          ├─ Yes → Manual Lnmp ✅
          └─ No → Docker ✅ (unified management with n8n etc.)

Summary

Local by Flywheel: First choice for individual developers, 5-minute setup, free, Live Link is the killer feature.

DevKinsta: Essential for Kinsta users, one-click push to production eliminates deployment headaches.

Manual Lnmp/Docker: For developers with ops experience who need complete control, or want to locally mirror their VPS production environment.

👉 立即参与:https://platform.minimaxi.com/subscribe/token-plan?code=E5yur9NOub&source=link

Related Reading

WordPress Development Book

If you want to master WordPress plugin and theme development, I recommend **WordPress Plugin Development** (ISBN 1803237263), which I use as a reference in my own projects.

📌 This article was AI-assisted generated and human-reviewed | TechPassive — An AI-driven content testing site focused on real tool reviews

🔗 Recommended Tools

These are carefully selected tools. Using our affiliate links supports us to keep producing quality content:

☁️ DigitalOcean Cloud ⚡ Vultr VPS 📚 WordPress Books 🔍 WordPress SEO Books 🌐 Web Hosting Books 🐳 Docker Books 🐧 Linux Books 🐍 Python Books 💰 Affiliate Marketing 💵 Passive Income Books 🖥️ Server Books ☁️ Cloud Computing Books 🚀 DevOps Books ⭐ MiniMax Token Plan
← Back to Home