post
Corrigir problema de permissão REST API WordPress Bitnami EC2
Publicado em: 12/06/2019
Recentemente ao instalar uma instancia na amazon web service (AWS) utilizando o empacotador da Bitmani, me deparei com um problema quando precisei usar a REST API json do wordpress para criar posts de um ambiente externo, mesmo com os dados todos corretos, o servidor estava barrando o acesso do usuário por não reconhecer os dados de autorização enviados pelo “header”, retornando um erro de “Sem permissão para criar posts com este usuário” com status de “erro 401”.
{
"code": "rest_cannot_create",
"message": "Sem permissão para criar posts com este usuário.",
"data": {
"status": 401
}
}
Para habilitar a REST API do WordPress com autenticação, o primeiro passo seria instalar um plugin chamado de Basic Auth para wordpress.
1. Instalando o plugin
O plugin pode ser obtido neste link ( https://github.com/WP-API/Basic-Auth ), copiando todo o código dentro do arquivo “basic-auth.php” ou fazendo o download do zip em “clone or download > download zip”.

Navegue até a pasta de plugins do wordpress (…/wp-content/plugins), crie um diretório chamado “Basic-Auth”, e adicione ou crie o arquivo “basic-auth.php”.
Segue processo realizado via linha de comando:
$ cd /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins
$ git clone https://github.com/WP-API/Basic-Auth.git
$ cd Basic-Auth
$ sudo rm -rf .git
OBS: O processo a cima foi feito com o terminal git para windows (https://gitforwindows.org/), você pode também fazer o download manual ou copiar o conteúdo do arquivo manualmente para seu servidor.
2. Definindo permissões
Rode o código no terminal para conceder permissões corretas para o usuário que esta gerenciando o seu servidor.
$ sudo chown bitnami:daemon -R /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/Basic-Auth
$ sudo chmod g+w -R /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/Basic-Auth
3. Ative o plugin
Acesse o painel administrativo do wordpress, vá em “Plugins > Plugins Instalados”, localize o plugin (deve estar com o nome de “JSON Basic Authentication”), e clique em ativar.
4. Modificar as configurações do Apache
Acesse o arquivo de configurações principal do apache server configurado pelo empacotador da Bitnami da seguinte maneira:
$ sudo vim /opt/bitnami/apps/wordpress/conf/httpd-app.conf
Ao abrir o arquivo, navegue até o final, assim que localizar um trecho de código como este:
RewriteEngine On
#RewriteBase /wordpress/
RewriteRule ^index\.php$ - [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Adicione acima dele as seguintes linhas:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
Seu código deve ficar mais ou menos assim:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
RewriteEngine On
#RewriteBase /wordpress/
RewriteRule ^index\.php$ - [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Salve o arquivo clicando na tecla “esc” do seu teclado, para iniciar o dialogo e digite exatamente como abaixo:
:wq
5. Reinicie o apache
Para reiniciar o apache server do empacotador Bitnami WordPress, você deve digitar o seguinte comando em seu terminal:
$ sudo /opt/bitnami/ctlscript.sh restart apache
Após o apache server reiniciar, seu site wordpress já esta habilidade para receber requisições via REST API.
Esta explicação foi retirada do canal oficial de duvidas da Bitnami.
Confira o link: https://community.bitnami.com/t/wordpress-rest-api-basic-authentication-header-not-working/59090/6
BÔNUS
Como posso criar meu primeiro post com a REST API ?
Segue link de um bom exemplo em PHP (https://gist.github.com/andrewahead4/489e6422feb5be901143)
Não cheguei a testar o código mas parece que esta tudo certo.
Outra maneira de sempre testar uma API sem precisar iniciar servidor ou preparar ambiente é usar o Postman (https://www.getpostman.com/).
Link de compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/115
ID de Referência: 115
Sugira uma publicação
Envie uma mensagem para mim, e sugira alguma publicação de algum tema que tenha dificuldades de resolver.