PHPackages                             dxw/whippet-server - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. dxw/whippet-server

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

dxw/whippet-server
==================

8076[23 issues](https://github.com/dxw/whippet-server/issues)PHP

Since Jun 29Pushed 9y ago7 watchersCompare

[ Source](https://github.com/dxw/whippet-server)[ Packagist](https://packagist.org/packages/dxw/whippet-server)[ RSS](/packages/dxw-whippet-server/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (11)Used By (0)

Whippet Server
--------------

[](#whippet-server)

Whippet Server launches a stand-alone web server for a specific WordPress installation. It makes WordPress easier to develop with, for example, by adding lots of debug information to the terminal without cluttering up or breaking your templates.

Whippet Server allows you to run and work on a WordPress website without having to use Apache and without having to set up a virtualhost. You don't even have to have your WordPress files -- Whippet Server will happily run from a wp-content folder by itself.

Note: Whippet Server is Alpha software. We're sure it still has problems that need to be fixed, and we know the install process is a bit labourious. Please do let us know how you get on, or open an issue if you have problems. Thanks!

Installation
------------

[](#installation)

Clone the repository and run:

```
$ composer install

```

You might also want to symlink Whippet Server to something in your path:

```
$ sudo ln -s /path/to/the/script/called/whippet-server /usr/bin/whippet-server

```

### PHP &gt;= 5.4

[](#php--54)

Whippet Server requires PHP 5.4 or greater. It must have been compiled with the --enable\_pcntl flag otherwise you will see "Call to undefined function pcntl\_signal()" errors.

Check which version you're currently using by running php -v.

To install do:

#### Under Ubuntu 12.04 LTS

[](#under-ubuntu-1204-lts)

```
$ sudo add-apt-repository ppa:ondrej/php5
$ sudo apt-get update
$ sudo apt-get install php5

```

#### Under Ubuntu 12.10

[](#under-ubuntu-1210)

```
$ sudo apt-get install php5

```

#### Under OSX

[](#under-osx)

See  for an easy install

Depending on how your path is set up, you may need to add the install location to your path (edit your .bashrc or similar)

Using the above method you may get an error when trying to run whippet-server:

```
Error: Unable to find file /etc/mime.types, and failed to load fallback

```

In which case you can obtain the most recent mime file here: Instruct Whippet Server to use this file using the --mime-file argument, or save it to /etc/mime.types

#### Other operating systems

[](#other-operating-systems)

For Windows, I think you might be out of luck. If you manage to get it working, we'd love to know what you did.

For other operating systems, please consult Google, or download and install from PHP.net:

#### Handling multiple versions of PHP

[](#handling-multiple-versions-of-php)

If for some reason you don't want to use 5.4 as your system's version of PHP, make sure your system PHP comes up first in your PATH, and then tell Whippet Server where to find PHP5.4 on your system:

```
$ WHIPPET_PHP=/path/to/php/5.4 whippet

```

### MYSQL

[](#mysql)

If you've directly installed MYSQL on your system, Whippet Server should just work. If you encounter any problems, please raise an issue.

#### MYSQL through MAMP (OSX)

[](#mysql-through-mamp-osx)

If you're using MAMP, and don't want to install MYSQL directly for whatever reason, you need to tell PHP5.4 how to use MAMP's MySQL server. To fix this, update your php.ini:

```
$ sudo vi /usr/local/etc/php/5.4/php.ini

```

And put in the option for mysql.default\_socket:

```
mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock

```

Docker usage
------------

[](#docker-usage)

Run it on port 80:

```
$ docker run -ti --rm -v /path/to/wp-content:/app -p 80:80 thedxw/whippet-server

```

The default command is "whippet-server -i 0.0.0.0 -p 80 --show-wp-errors --siteurl=", so if you need WordPress to put a different domain in absolute URIs, or you want to have it listen on a different port:

```
$ docker run -ti --rm -v /path/to/wp-content:/app -p 8000:80 thedxw/whippet-server whippet-server -i 0.0.0.0 -p 80 --show-wp-errors --siteurl=http://mysite.local:8000

```

(Note that the --siteurl option merely sets the WP\_SITEURL and WP\_HOME constants - you'll have problems if those are set differently to the equivalent options in the database).

If you're making changes to whippet-server or for whatever reason the image isn't available on dockerhub, you'll need to build it before you do that:

```
$ docker build -t thedxw/whippet-server .

```

The below section includes notes about options which may be useful.

Usage
-----

[](#usage)

### The server

[](#the-server)

The simplest way to use Whippet Server is on an existing WordPress installation. If you have a working installation, cd to the root of the WordPress installation and do:

```
$ /path/to/whippet-server

```

You should see the server start. Visit  and you should see a normal WordPress website. If you look at your terminal, you'll see quite a bit of output about the queries being exected, templates being loaded, and so on.

### Filtering server output

[](#filtering-server-output)

Sometimes Whippet Server's output can be a bit too noisy. You can customise what gets displayed:

```
$ /path/to/whippet-server --no-sql

```

For a full listing of Whippet Server's options, do:

```
$ /path/to/whippet-server --help

```

#### Setting Defaults

[](#setting-defaults)

Any of these options can be set as defaults for Whippet by creating `~/.whippetrc` or `/etc/whippetrc`. Both files will be read if present. Your local defaults will override system-wide defaults. The file should be in ini format:

```
p = 8080
i = my-machine.local
show-wp-errors = true
; this is a comment
```

### Output to the console

[](#output-to-the-console)

A common way to debug WordPress sites is to output to the browser with `var_dump()` or `die()`. When running Whippet you can instead output to the console:

```
Whippet::print_r(thing-to-be-output)

```

### Managing WordPress

[](#managing-wordpress)

Whippet Server can also make it easier to manage multiple WordPress installations. Instead of having to keep a full WordPress installation for each site that you work on, you can just keep the wp-content folder, along with the database for that site:

```
$ cd /path/to/wp-content
$ /path/to/whippet-server

```

Whippet Server will detect that it's being launched from a wp-content folder. The first time you do this, it will ask to download and store the latest WordPress core. It'll then use those files to launch the site. You can also specify the version of WordPress you'd like to use:

```
$ /path/to/whippet-server --wp-version 4.1

```

Whippet Server will ask to download the files if they don't already exist, and will prompt you for your database configuration the first time you run it for a particular wp-content diretory.

### Multisite

[](#multisite)

`WP_ALLOW_MULTISITE` is always enabled, so you can do Tools &gt; Network Setup at any time. Once multisite has been setup in the database, you should send whippet-server a SIGTERM and restart it with `--multisite` and `-p 80`.

Note that if you don't want to do a search/replace on your database you should use `-p 80`before you enable multisite.

Remember that `sudo` is required for port 80 and you may need to kill a server if you already have on listening on port 80.

### Troubleshooting

[](#troubleshooting)

#### Issue:

[](#issue)

After installing on OSX and running whippet-server you get the following error in your browser:

```
Your PHP installation appears to be missing the MySQL extension which is required by WordPress

```

#### Solution:

[](#solution)

Reinstall php, ensuring that you include the `--with-mysql` option.

Contribute
----------

[](#contribute)

We'd welcome help to make Whippet Server better. If you want to fix a bug or add a feature, please fork the project and Github, make changes, and submit a pull request. If it's something big, you might want to talk to us first. If you need inspiration, check the TODO page on the wiki.

Authors
-------

[](#authors)

Harry Metcalfe ()

Tom Adams ()

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.3% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/370665?v=4)[Rob Skilling](/maintainers/RobjS)[@RobjS](https://github.com/RobjS)

![](https://avatars.githubusercontent.com/u/4721596?v=4)[Matthew Passmore](/maintainers/matpassmore)[@matpassmore](https://github.com/matpassmore)

![](https://avatars.githubusercontent.com/u/71827088?v=4)[Serena Piccioni](/maintainers/serena-piccioni)[@serena-piccioni](https://github.com/serena-piccioni)

---

Top Contributors

[![mallorydxw](https://avatars.githubusercontent.com/u/2256130?v=4)](https://github.com/mallorydxw "mallorydxw (42 commits)")[![harry-m](https://avatars.githubusercontent.com/u/146397?v=4)](https://github.com/harry-m "harry-m (17 commits)")[![holizz](https://avatars.githubusercontent.com/u/9224?v=4)](https://github.com/holizz "holizz (8 commits)")[![dgmstuart](https://avatars.githubusercontent.com/u/393167?v=4)](https://github.com/dgmstuart "dgmstuart (4 commits)")[![Stretch96](https://avatars.githubusercontent.com/u/13812373?v=4)](https://github.com/Stretch96 "Stretch96 (1 commits)")[![tommorris](https://avatars.githubusercontent.com/u/175?v=4)](https://github.com/tommorris "tommorris (1 commits)")[![duncanjbrown](https://avatars.githubusercontent.com/u/642279?v=4)](https://github.com/duncanjbrown "duncanjbrown (1 commits)")[![kaelig](https://avatars.githubusercontent.com/u/85783?v=4)](https://github.com/kaelig "kaelig (1 commits)")[![scribu](https://avatars.githubusercontent.com/u/225715?v=4)](https://github.com/scribu "scribu (1 commits)")

### Embed Badge

![Health badge](/badges/dxw-whippet-server/health.svg)

```
[![Health](https://phpackages.com/badges/dxw-whippet-server/health.svg)](https://phpackages.com/packages/dxw-whippet-server)
```

###  Alternatives

[typhoon/type

Typhoon Type System

6459.4k11](/packages/typhoon-type)

PHPackages © 2026

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