# Permission issues with fresh Trellis/Bedrock installation

**URL:** https://discourse.roots.io/t/permission-issues-with-fresh-trellis-bedrock-installation/5599
**Category:** trellis
**Created:** 2015-12-31T12:50:17Z
**Posts:** 8

## Post 1 by @anon21078981 — 2015-12-31T12:50:18Z

Hello,

I’m new to Trellis and spent the last 2 days learning how to use it. I was finally able to deploy to Digital Ocean but there seems to be a permissions issue as I cannot install plugins. In WP-Admin, the New Plugin menu doesn’t even show up, and trying to install with `wp plugin install` returns this error

`Warning: Could not create directory.`

My Trellis installation is pretty much using default settings. I did set `sshd_permit_root_login: false` for added security.

What are some steps I can take to possibly fix this?

Update: Uploading media in the Media Library works.

---

## Post 2 by @DaveNaylor — 2015-12-31T14:16:23Z

You don’t install plugins using the WordPress interface. Add any desired plugins to your Bedrock composer.json file, commit and push to your remote git server and then re-deploy the site.

A quick and simple way to add a plugin would be to do this in your Bedrock directory:

`composer require wpackagist-plugin/<plugin-slug>`

---

## Post 3 by @anon21078981 — 2015-12-31T14:28:04Z

Ok thanks. Is there documentation about this and how to install other non-WordPress plugins (paid plugins, custom plugins, etc)

---

## Post 4 by @DaveNaylor — 2015-12-31T14:33:53Z

The Bedrock Docs themselves are a good place to start:

> **[WordPress Dependencies with Composer | Bedrock Docs](https://roots.io/bedrock/docs/composer/)**
>
> Composer is used to manage dependencies. Bedrock considers any 3rd party library as a dependency including WordPress itself and any plugins.

There are a few discussions on here regarding custom/commercial plugins. Here’s one:

[https://discourse.roots.io/t/using-bedrock-composer-with-premium-plugins-w-no-repo-or-source/2731](https://discourse.roots.io/t/using-bedrock-composer-with-premium-plugins-w-no-repo-or-source/2731)

---

## Post 5 by @anon21078981 — 2015-12-31T17:10:54Z

Thanks for these docs. I was able to get my plugins running in the `development` environment but when I deploy to `staging`, they dont get included.

I ran `composer update` in the `sites/`directory. Is there anything else I should be doing?

---

## Post 6 by @fullyint — 2015-12-31T18:01:43Z

I’m guessing you still need to commit your updated composer files to the [repo](https://github.com/roots/trellis/blob/97a9c05e3479af370a551682d9a689e6763b5d2f/group_vars/staging/wordpress_sites.yml#L7) that is cloned during deploy, like [Downgrade WP when deploy](https://discourse.roots.io/t/downgrade-wp-when-deploy/5574/6). Then the deploy will run [`composer install`](https://github.com/roots/trellis/blob/97a9c05e3479af370a551682d9a689e6763b5d2f/roles/deploy/hooks/build-after.yml#L13) automatically.

---

## Post 7 by @anon21078981 — 2016-01-02T10:32:32Z

Right. I had not realised that deployment meant that the source repo would be cloned.

I cloned the repo and updated the `repo` key in wordpress\_sites.yml for both `staging` and `production`, and committed my changes to github. However, on deployment, plugins still don’t get included.

Here is my repo: [https://github.com/epicenterbitcoin/epicenter.tv](https://github.com/epicenterbitcoin/epicenter.tv)

Update: I noticed that several tasks are being skipped during deployment

```
TASK: [Ensure environment is defined]
skipping: [localhost]

TASK: [deploy | Update git remote URL]
skipping: [-domain redacted-]

TASK: [deploy | Check for project repo subtree]
skipping: [-domain redacted-]

TASK: [deploy | Fail if repo_subtree_path is set incorrectly]
skipping: [-domain redacted-]

TASK: [deploy | Run git archive with subdirectory to populate new build dir]
skipping: [-domain redacted-]

TASK: [deploy | Fail if composer.json not found]
skipping: [-domain redacted-]

TASK: [deploy | Warn about updating network database.]
skipping: [-domain redacted-]

TASK: [deploy | Update WP network database]
skipping: [-domain redacted-]

TASK: [deploy | Restart HHVM]
skipping: [-domain redacted-]
```

---

## Post 8 by @anon21078981 — 2016-01-02T11:42:00Z

**Resolved.**

I wasn’t running `composer update` before committing my changes to github.
