Files
Easy-WP/windows/README-Windows.md

81 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Easy WordPress Bootstrap (Windows + Herd)
PowerShell companion to the macOS bootstrap script. It provisions a full WordPress development site backed by Laravel Herd and DBngin (or any local MySQL/MariaDB server) with a single command.
## Included Files
- `wp-bootstrap.ps1` main PowerShell script.
- `wp-cli.phar` bundled WP-CLI used by the script when `wp` is not installed globally.
- `plugins.json` default plugin manifest; copy/override per project if you need a different set.
## Prerequisites
- Windows 10/11 with PowerShell 7 (`pwsh`) recommended.
- [Laravel Herd for Windows](https://herd.laravel.com/) installed so PHP is available (the script auto-detects Herds `php.exe`).
- DBngin or another MySQL/MariaDB server running locally, with `mysql.exe` available in `PATH`.
- Git for cloning the starter theme.
- Composer and npm in `PATH` so theme dependencies can be installed and built (the script warns and skips if they are missing).
## First-Time Setup
1. Allow local PowerShell scripts (only needs to be done once for your profile):
```powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```
2. Copy the sample rc file and adjust values that should become your defaults:
```powershell
Copy-Item ..\wp-bootstraprc.example $HOME\.wp-bootstraprc
```
3. Leave `wp-cli.phar` in the same folder as `wp-bootstrap.ps1` (or update the `WP_CLI_PHAR` entry in your rc file to point elsewhere).
## Running a Bootstrap
From this directory, run:
```powershell
pwsh -File .\wp-bootstrap.ps1 -ProjectName "Client Site"
```
Optional parameters (all may also be supplied via `~\.wp-bootstraprc`):
- `-AdminUser`
- `-AdminEmail`
- `-ThemeStarterRepo`
- `-HerdWorkspace`
- `-LocalTld`
- `-MysqlHost`
- `-MysqlPort`
- `-MysqlRootUser`
- `-MysqlRootPass`
Omit parameters to fall back to your rc defaults. The script prints the detected configuration before it runs and exits early if required inputs are still missing.
## What the Script Does
- Creates a sanitized project folder in your Herd workspace and reports the local URL.
- Validates MySQL root credentials, creates the database/user, and confirms the new user can connect.
- Downloads WordPress core, generates `wp-config.php`, shuffles salts, sets permalinks, creates Home/News pages, and assigns them.
- Ensures a standard `.htaccess` exists for Apache-friendly rewrites.
- Clones the starter theme with shallow history, strips `.git`, reinitializes the repo, sets an optional remote, and activates the theme.
- Installs/activates plugins pulled from `plugins.json`, preferring a project-local manifest when present.
- Runs `composer install`, `npm install`, and `npm run build` inside the theme when those tools are available.
- Writes a `bootstrap-summary.txt` to the project root and logs plugin installs to `wp-content/plugin-bootstrap.log`.
## Plugin Manifest Details
`plugins.json` entries can be WordPress.org slugs or zip URLs (including private artifacts). Place a tailored `plugins.json` in your project directory to override the repository default for a single site.
## Troubleshooting
- **WP-CLI** ensure `wp-cli.phar` lives beside the script or set `WP_CLI_PHAR` in `~\.wp-bootstraprc` to an absolute path.
- **MySQL connectivity** verify the server is running, your root user matches the rc values, and Windows Firewall allows the connection.
- **Composer/NPM missing** install them via Scoop/winget/Homebrew on Windows, or remove their commands from the script if you do not build theme assets.
- **Permissions** confirm Herd has access to the project folder and that the execution policy change succeeded.
---
DIY-first policy: keep `plugins.json` lean; add heavier stacks only when the project truly needs them.