# Como corrigir Could not create directory no WordPress

Could not create directory aparece quando o WordPress tenta criar uma pasta dentro de wp-content e o servidor recusa por falta de permissão de escrita. É comum ao instalar ou atualizar plugins e temas, quando a pasta wp-content/upgrade ou wp-content/plugins está com dono ou permissão errados.

## O que é o erro Could not create directory?

O WordPress precisa criar pastas em disco para instalar e atualizar plugins, temas e para descompactar pacotes na pasta wp-content/upgrade. Quando o usuário do PHP que roda o WordPress não tem permissão de escrita no diretório de destino, a função de criação de pasta falha e o painel mostra Could not create directory. O erro é de permissão de arquivo, não de banco de dados: o site continua no ar, mas instalações, atualizações e às vezes uploads param porque o WordPress não consegue gravar no disco.

## Como identificar

- Mensagem "Could not create directory." ao instalar ou atualizar um plugin ou tema pelo painel.
- Em sites em português, a mensagem "Não foi possível criar o diretório.".
- A atualização para na tela do instalador, sem concluir, e o plugin fica numa versão antiga.
- O caminho citado na mensagem aponta para wp-content/upgrade, wp-content/plugins ou wp-content/uploads.

**Antes de começar:** Nunca deixe a pasta wp-content em 777 de forma permanente. Essa permissão deixa qualquer processo do servidor gravar nos seus arquivos e é um vetor de invasão. Se usar 777 só para testar, volte para 755 logo depois.

## Como prevenir

- Mantenha wp-content e subpastas em 755 e arquivos em 644 após qualquer migração ou restauração de backup
- Ao mover arquivos por SSH como root, sempre reaplique o dono correto com chown ao terminar
- Acompanhe a cota de disco da hospedagem para o servidor nunca ficar sem espaço para criar pastas

Erros relacionados

- [Como corrigir Missing a temporary folder](https://full.services/wp-fixer/corrigir-missing-temporary-folder-wordpress/)
- [Como corrigir mídia que não faz upload no WordPress](https://full.services/wp-fixer/corrigir-upload-midia-nao-funciona-wordpress/)
- [Como corrigir o botão Adicionar Mídia que não funciona](https://full.services/wp-fixer/corrigir-adicionar-midia-wordpress/)

## Causa

- Pasta wp-content (ou wp-content/upgrade) sem permissão de escrita para o usuário do PHP, geralmente em 644 quando deveria estar 755.
- Dono dos arquivos diferente do usuário que roda o PHP/Apache, comum após restaurar backup ou migrar de servidor por SSH como root.
- Pasta wp-content/upgrade ausente, que o WordPress usa como área temporária para descompactar pacotes.
- Cota de disco da hospedagem esgotada, impedindo a criação de qualquer novo diretório.
- Regra de open_basedir ou de jail do servidor restringindo onde o PHP pode gravar.

## Como resolver

1. Identifique a pasta citada no erro: leia o caminho na mensagem Could not create directory. Quase sempre é wp-content/upgrade, wp-content/plugins ou wp-content/uploads. É essa pasta que precisa ficar gravável.
2. Ajuste a permissão da pasta para 755: no cliente FTP ou no gerenciador de arquivos da hospedagem, defina a permissão da pasta wp-content e das subpastas para 755 e os arquivos para 644. Esse é o padrão recomendado pelo WordPress.
3. Crie a pasta wp-content/upgrade se faltar: via FTP, confira se existe a pasta wp-content/upgrade. Se não existir, crie manualmente com permissão 755. O WordPress usa essa pasta para descompactar as atualizações.
4. Corrija o dono dos arquivos via SSH: se você tem acesso SSH, ajuste o dono de wp-content para o usuário do servidor web. Em muitas hospedagens é www-data; em painéis cPanel costuma ser o usuário da conta. Use o comando abaixo com o usuário correto.

```
chown -R www-data:www-data wp-content
find wp-content -type d -exec chmod 755 {} ;
find wp-content -type f -exec chmod 644 {} ;
```

5. Teste a instalação de novo: volte ao painel e tente instalar ou atualizar o plugin novamente. Se o erro persistir, confira a cota de disco e o open_basedir com a hospedagem.

## Código

```bash
# Via SSH na raiz do site: corrige dono e permissoes do wp-content.
# Troque www-data pelo usuario do seu servidor web (ex.: o usuario da conta no cPanel).
chown -R www-data:www-data wp-content

# Pastas em 755, arquivos em 644 (padrao recomendado pelo WordPress):
find wp-content -type d -exec chmod 755 {} ;
find wp-content -type f -exec chmod 644 {} ;

# Garante a pasta de atualizacao usada pelo instalador:
mkdir -p wp-content/upgrade && chmod 755 wp-content/upgrade
```

## Perguntas frequentes

### Por que o WordPress precisa criar diretórios?

Para instalar e atualizar plugins e temas, o WordPress baixa um pacote e o descompacta numa pasta temporária dentro de wp-content/upgrade, depois move os arquivos para o destino. Se ele não consegue criar essas pastas por falta de permissão, a operação falha com Could not create directory.

### Qual permissão devo dar à pasta wp-content?

Use 755 para a pasta wp-content e suas subpastas, e 644 para os arquivos. Esse é o padrão recomendado pelo WordPress: permite ao servidor gravar quando precisa, sem abrir a pasta para qualquer processo, como aconteceria com 777.

### O erro apareceu depois de restaurar um backup. Por quê?

Restaurações e migrações feitas por SSH como root costumam deixar os arquivos com dono root, em vez do usuário do servidor web. Como o PHP roda com outro usuário, ele perde a permissão de escrita. Reaplicar o dono correto com chown resolve.

### Posso usar 777 para resolver de vez?

Não use 777 de forma permanente. Ela deixa qualquer processo do servidor gravar nos seus arquivos, o que é um risco grave de segurança. Se precisar testar se o problema é permissão, use 777 por um instante e volte para 755 assim que confirmar.

### Não tenho acesso SSH. Dá para resolver só por FTP?

Sim. Pelo cliente FTP você consegue ajustar as permissões das pastas para 755 e criar a pasta wp-content/upgrade se ela faltar. O que o FTP não faz bem é mudar o dono dos arquivos; nesse caso, peça à hospedagem para corrigir a posse.

### Ajustei tudo e o erro continua. O que mais checar?

Confira se a cota de disco da hospedagem não está esgotada, pois sem espaço o servidor não cria nenhuma pasta. Verifique também se uma regra de open_basedir não está bloqueando o caminho. A hospedagem pode confirmar essas duas restrições.

**Fonte:** [WordPress.org — Changing File Permissions](https://wordpress.org/documentation/article/changing-file-permissions/)
