PHPackages                             ianchanning/wp-insella - 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. [Framework](/categories/framework)
4. /
5. ianchanning/wp-insella

ActiveLibrary[Framework](/categories/framework)

ianchanning/wp-insella
======================

Composer version of WordPress-Skeleton

0.1.29(8y ago)14GPL-3.0+PHPPHP &gt;=5.3.0

Since Apr 7Pushed 8y ago1 watchersCompare

[ Source](https://github.com/ianchanning/wp-insella)[ Packagist](https://packagist.org/packages/ianchanning/wp-insella)[ Docs](https://github.com/ianchanning/wp-insella)[ RSS](/packages/ianchanning-wp-insella/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (31)Used By (0)

WP in-sella
===========

[](#wp-in-sella)

Based on [WordPress Skeleton](https://github.com/markjaquith/WordPress-Skeleton) but replacing Git Submodules with [Composer](https://getcomposer.org/).

In sella is Italian for 'in the saddle' and was initially used for .

This tries to make the benefits of WordPress Skeleton available for a wider audience:

1. This readme should get you fully started with WordPress installed and uploads working
2. Composer in my view is easier to understand than learning about Git Submodules
3. Composer should be able to install on hosts that don't have Git
4. I agree with the idea that [Composer is a more appropriate tool to use than Git Submodules](https://roots.io/using-composer-with-wordpress/)
5. The directory structure remains compatible with WordPress Skeleton, so you should be able to mix in the extra WordPress Skeleton goodies when you get to them
6. There's a separate `wp-config-skeleton.php` file so that you don't have to fork this repo which makes it easier to get WordPress updates
7. This is a [Composer Package](https://packagist.org/packages/ianchanning/wp-insella) so instead of cloning you can call `composer create-project ianchanning/wp-insella .` in your httpdocs directory
8. It still encourages local development with the `local-config.php` file and allows all the other great stuff you can do with WordPress-Skeleton

**This setup relies on having SSH access and running the PHP commands to [install composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx) on your webserver.**

If you don't have Git on your webserver, follow the [No git and no composer setup](#no-git-and-no-composer-setup) section below. There's a [Media Temple installation guide](#media-temple-grid-service-installation) at the bottom as that happens to be what I'm using.

Quick start
-----------

[](#quick-start)

[Skip](#no-git-and-no-composer-setup) this section if you don't have git or composer installed.

```
cd your/httpdocs/dir
git clone https://github.com/ianchanning/wp-insella .
composer install
cp wp-config-skeleton.php wp-config.php
```

Create your database and edit `wp-config.php` with your database config and salts.

### Configuration

[](#configuration)

Then go to  - beware of going directly to [www.example.com](http://www.example.com) as it will try going to  which misses out the `wp` directory and ends up in an infinite redirect.

Once WordPress is installed, go to *Settings | General* and change the **Site Address (URL)** to

[![Site Address (URL) example](https://camo.githubusercontent.com/b5b185dc536e8e5c3eebc85a9f3fcb72fcffb947c7dc989e5bd64b28691c818c/68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f752f373736353537312f6769746875622f77702d696e73656c6c612f736974655f616464726573732e706e67)](https://camo.githubusercontent.com/b5b185dc536e8e5c3eebc85a9f3fcb72fcffb947c7dc989e5bd64b28691c818c/68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f752f373736353537312f6769746875622f77702d696e73656c6c612f736974655f616464726573732e706e67)

### Uploads

[](#uploads)

WordPress Skeleton suggests that you should only use the 'shared' directory for uploads locally. Given that we're not using capistrano we'll keep the directory structure the same but just use the shared directory in production.

```
cd your/httpdocs/dir
mkdir -p shared/content/uploads
```

Make sure uploads directory is writable by your webserver.

### Future updates

[](#future-updates)

1. I'll update, commit and push the `composer.json` file to
2. On your site:

```
cd your/httpdocs/dir
git pull
composer update
```

No git and no composer setup
----------------------------

[](#no-git-and-no-composer-setup)

This is assuming that you have the most basic web host that doesn't allow anything except SSH / PHP / MySQL.

### Database

[](#database)

Using your hosting admin:

1. Create the MySQL database
2. Create a database user
3. Give the database read and write access on the database
4. Have the details handy

### Composer

[](#composer)

From the main [composer installation guide](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx), I'm going to assume that you probably don't have the rights to install it globally so we'll install it locally. N.B. the `-d allow_url_fopen=On` which is to modify one of the php.ini settings which may be turned off by your host (e.g. Media Temple)

Log in via SSH. Install composer in the `httpdocs` **parent** directory and `httpdocs` must be empty.

```
cd your/httpdocs/dir
cd ..
php -r "readfile('https://getcomposer.org/installer');" | php -d allow_url_fopen=On
```

### WordPress

[](#wordpress)

```
php -d allow_url_fopen=On composer.phar create-project ianchanning/wp-insella [httpdocs]
cp wp-config-skeleton.php wp-config.php
```

This should set up the entire WordPress Skeleton installation and the `wp` directory with all the WordPress files.

Edit `wp-config.php` with your database config and [salts](https://api.wordpress.org/secret-key/1.1/salt/).

Follow the above [WordPress database installation / configuration](#wordpress-database-installation--configuration) and [Create the shared uploads directory](#create-the-shared-uploads-directory) sections above.

### Future updates

[](#future-updates-1)

1. I'll update, commit and push the `composer.json` file to
2. Download
3. FTP it to your httpdocs directory and overwrite the `composer.json`
4. Run `php -d allow_url_fopen=On ../composer.phar update`

Media Temple (Grid Service) installation
----------------------------------------

[](#media-temple-grid-service-installation)

### Database

[](#database-1)

In [media temple admin](https://ac.mediatemple.net/home.mt) go to:

1. Create a database
2. Create a database user
3. Give the user permission on the database

### Composer

[](#composer-1)

Composer can't be installed globally so it has to be installed locally. Based off [this guide](http://www.neontsunami.com/posts/installing-composer-and-laravel-4-on-media-temple-%28gs%29):

Login via SSH, this assumes that your `html` directory is empty. You will get warnings when you install comopser, but it should still install correctly.

```
cd domains/example.com
curl -sS https://getcomposer.org/installer | php -d allow_url_fopen=On
```

### WordPress

[](#wordpress-1)

```
cd html
git clone https://github.com/ianchanning/wp-insella .
php -d allow_url_fopen=On ../composer.phar install
cp wp-config-skeleton.php wp-config.php
```

This should set up the entire WordPress Skeleton installation and the `wp` directory with all the WordPress files.

Edit `wp-config.php` and change the database settings to (**N.B. the `DB_HOST` isn't localhost**):

```
define( 'DB_NAME', 'dbXXXXXX_[your domain]' );
define( 'DB_USER', 'dbXXXXXX_[your domain]' );
define( 'DB_PASSWORD', 'xkcd.com/936' );
define( 'DB_HOST', $_ENV['DATABASE_SERVER'] );
```

Update the [salts](https://api.wordpress.org/secret-key/1.1/salt/).

Follow the above [WordPress database installation / configuration](#wordpress-database-installation--configuration) and [Create the shared uploads directory](#create-the-shared-uploads-directory) sections above.

### Future updates

[](#future-updates-2)

1. I'll update, commit and push the `composer.json` file to
2. On your site:

```
cd domains/example.com/html
git pull
php -d allow_url_fopen=On ../composer.phar update
```

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 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

Every ~40 days

Recently: every ~104 days

Total

30

Last Release

2942d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d6e981970f50929088c756e312f1c87642e97c6b7cf87d35fb2be10d88f1960?d=identicon)[ianchanning](/maintainers/ianchanning)

---

Top Contributors

[![ianchanning](https://avatars.githubusercontent.com/u/233318?v=4)](https://github.com/ianchanning "ianchanning (27 commits)")

### Embed Badge

![Health badge](/badges/ianchanning-wp-insella/health.svg)

```
[![Health](https://phpackages.com/badges/ianchanning-wp-insella/health.svg)](https://phpackages.com/packages/ianchanning-wp-insella)
```

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k39.6M298](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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