PHPackages                             owenmedia/setup-doctor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. owenmedia/setup-doctor

ActiveLibrary

owenmedia/setup-doctor
======================

Detects WordPress/Laravel dev-environment issues and explains fixes in plain English via Claude.

v1.0.0(today)00proprietaryPHPPHP &gt;=7.4

Since Jul 27Pushed todayCompare

[ Source](https://github.com/parmjeet-cloud/setup-doctor)[ Packagist](https://packagist.org/packages/owenmedia/setup-doctor)[ RSS](/packages/owenmedia-setup-doctor/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

Setup Doctor
============

[](#setup-doctor)

A one-command dev-environment checker for WordPress and Laravel projects. Detects the project type, runs a checklist (PHP version, `.env`/`wp-config.php`, DB connection, folder permissions, dependencies), then asks Claude to turn the raw results into a plain-English diagnosis with exact fix commands.

Installable as a Composer package, so anyone on the team can pull it down with one command instead of copy-pasting a script file.

---

Step 1 — Install PHP (if you don't have it)
-------------------------------------------

[](#step-1--install-php-if-you-dont-have-it)

Check first:

```
php -v
```

If that prints a version, skip to Step 2.

- **Mac:** `brew install php`
- **Windows:** install via [XAMPP](https://www.apachefriends.org) or `choco install php`
- **Linux (Ubuntu/Debian):** `sudo apt install php-cli php-mysqli php-curl`

Step 2 — Install Composer (PHP's package manager)
-------------------------------------------------

[](#step-2--install-composer-phps-package-manager)

Check first:

```
composer -v
```

If missing, install from **** (one script, works on all OSes).

Step 3 — Get the package onto your machine
------------------------------------------

[](#step-3--get-the-package-onto-your-machine)

This isn't on the public Packagist registry (it's an internal tool), so it installs straight from the private GitHub repo. Ask the repo owner to add you as a collaborator first, then run:

```
composer global require --repository='{"type":"vcs","url":"https://github.com/parmjeet-cloud/setup-doctor"}' owenmedia/setup-doctor
```

That installs it globally — the `setup-doctor` command becomes available from **any folder**, not just this one.

**First time using `composer global require`?** Add Composer's global bin folder to your system PATH so the command is recognized:

```
# find the path
composer global config bin-dir --absolute

# then add that folder to your shell's PATH (varies by OS/shell —
# usually ~/.bashrc, ~/.zshrc, or Windows Environment Variables)
```

Step 4 — (Optional) Set your Claude API key
-------------------------------------------

[](#step-4--optional-set-your-claude-api-key)

Only needed for the AI-written summary — the tool fully works without it, falling back to a plain pass/fail list.

```
export ANTHROPIC_API_KEY="sk-ant-..."
```

Step 5 — Run it
---------------

[](#step-5--run-it)

From inside any WordPress or Laravel project:

```
cd ~/projects/my-laravel-app
setup-doctor
```

Or point it at a project from anywhere:

```
setup-doctor --path=~/projects/my-wordpress-site
```

---

Alternative: install per-project instead of globally
----------------------------------------------------

[](#alternative-install-per-project-instead-of-globally)

If you'd rather keep it scoped to one project (e.g. it becomes a `composer require --dev` dependency of that project):

```
composer require --dev owenmedia/setup-doctor
vendor/bin/setup-doctor
```

Alternative: no Composer, just run the file directly
----------------------------------------------------

[](#alternative-no-composer-just-run-the-file-directly)

For a quick test without installing anything as a package:

```
php bin/setup-doctor --path=/path/to/project
```

---

Publishing this so `composer global require owenmedia/setup-doctor` works without the `--repository` flag
---------------------------------------------------------------------------------------------------------

[](#publishing-this-so-composer-global-require-owenmediasetup-doctor-works-without-the---repository-flag)

Right now teammates need the `--repository=...` VCS flag every time. To make it a clean one-liner:

1. This repo is already pushed to GitHub (private) ✅
2. Register it once on **packagist.com** (private Packagist), or add the repo URL to each teammate's global `composer.json` under `"repositories"`so they never need the flag either.

This is a follow-up step, not required to get this working today.

What it checks
--------------

[](#what-it-checks)

**Laravel**

- PHP version
- `.env` exists, and `APP_KEY` / `DB_HOST` / `DB_DATABASE` / `DB_USERNAME` are set
- Database connection actually works
- `vendor/` exists (composer installed)
- `storage/` and `bootstrap/cache/` are writable

**WordPress**

- PHP version
- `wp-config.php` has DB credentials filled in
- Database connection actually works
- `wp-content/uploads/` and `wp-content/themes/` are writable
- `.htaccess` present

Demo idea
---------

[](#demo-idea)

Break something on purpose beforehand (delete an `.env` value, `chmod 000`a folder), run `setup-doctor`, watch it catch and explain it, fix it live, re-run to show green. Under two minutes, clear before/after.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/242172283?v=4)[parmjeet-cloud](/maintainers/parmjeet-cloud)[@parmjeet-cloud](https://github.com/parmjeet-cloud)

---

Top Contributors

[![parmjeet-cloud](https://avatars.githubusercontent.com/u/242172283?v=4)](https://github.com/parmjeet-cloud "parmjeet-cloud (4 commits)")

### Embed Badge

![Health badge](/badges/owenmedia-setup-doctor/health.svg)

```
[![Health](https://phpackages.com/badges/owenmedia-setup-doctor/health.svg)](https://phpackages.com/packages/owenmedia-setup-doctor)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
