MENU It's me: Mário!

wordpress-pedindo-senha-do-ftp

WordPress pedindo senha do FTP em localhost no Linux

WordPress 18 de outubro de 2014 42 comentários
WordPress
  • 18 - 10 - 14
  •        
  • 42

E ae galera! Tudo bem?

Essa vai ser uma dica rápida, mas daquelas que salvam vidas.

wordpress-solicitando-ftp

Linux: amor e ódio

Quem nunca se complicou com questões de permissões e dono de pasta no Linux não teve infância. Sério… é algo tipo assistir ao Chaves: você fica puto com o Seu Madruga apanhar toda hora inocentemente, mas é impossível não gostar.

Então antes de começar vou deixar links para estudo dos comandos para mudança de usuário e permissões.

O problema

O problema (como o título sugere) é o fato de o WordPress ficar solicitando as credenciais de FTP para instalar plugins e temas. Na maioria dos casos, o problema pode ser resolvido como a documentação (e o A.Torres lá nos comentários) sugerem: usando a constante FS_METHOD.

Mas as vezes isso não resolve ou então você não consegue manualmente alterar arquivos (o que é chato, já que você está desenvolvendo). Isso ocorre (dentre outros motivos) porque o usuário do seu servidor localhost (Xampp, Mamp, Lamp, EasyPHP, etc) não é o dono da pasta.

Solução e mais problemas

Com uma pesquisa rápida no Tio Google você encontra a solução de mudar o dono da pasta do site (no momento deve estar “root” ou “seu-usuario”):

$ sudo chown -R www-data pasta-do-site
$ sudo chmod -R g+w pasta-do-site

A primeira linha altera recursivamente o dono da pasta para “www-data” (geralmente esse é o usuário atribuído ao seu localhost, se não for, troque o nome) e a segunda linha torna isso verdade para as novas subpastas, caso crie alguma.

O problema dessa solução é que muito provavelmente você não poderá mais criar ou alterar manualmente pastas e arquivos (através da interface gráfica, por exemplo).

Solução definitiva: alterar o usuário do localhost

A forma que encontrei pra dar permissão ao “locahost” alterar os arquivos e não impedir que eu também possa fazer isso foi atribuir meu usuário ao localhost. Ou seja, troquei “www-data” por “meu-usuario”.

Para fazer isso, você vai até o arquivo de configurações do seu servidor local (aqui no meu caso foi /etc/apache2/apache2.conf) e altera as seguintes linhas (trocando “www-data” pelo nome do seu usuário):

User www-data
Group www-data

Maaaaaaaas… pode acontecer como aconteceu comigo e no lugar de “www-data” ter uma variável. Nesse caso, deve vir comentado acima a origem desses valores. Como você pode ver no exemplo:

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Nesse caso, você vai lá e altera. Aqui ficou assim:

export APACHE_RUN_USER=neo
export APACHE_RUN_GROUP=www-data

Lembre-se que sudo é necessário para alterar esses arquivos.

Por favor, considere desativar o AdBlock

Não perca nenhuma novidade, assinando nossa newsletter!



Não se preoculpe, não enviaremos muitos e-mails, nem mostraremos seu e-mail para ninguém. Dúvidas?


Deixe seu comentário! Dúvida sobre como comentar
ou vai postar código? Leia antes.

  • Funcionou perfeitamente no Ubuntu 14.04 e no Fedora 20, obrigado!!

  • Mayko Kioschi

    Boa noite Mário. No meu caso eu estou usando o nginx, como funciona nele?

    • Cara, nunca usei o nginx, mas imagino que deva seguir a mesma lógica.
      Sem falar que dei uma pesquisada e parece que ele usa o mesmo usuário www-data.

  • Naldo Herculino

    Funcionou legal

  • Pingback: Como trabalhar com WordPress em equipe usando MySQL remoto e Git? | It's me: Mário!()

  • A.Torres

    Tchê, é só adicionar o código: define(‘FS_METHOD’,’direct’);
    ao wp-config.php e salvar que fica tudo resolvido (Apache e NGinx)

    • Sim. Muito fácil e é exatamente a primeira coisa a ser tentada.
      Quando escrevi o post, meu foco era a situação em que eu me encontrava: alterar o FS_METHOD não resolveu.

      Como não fui claro quanto a isso, dei uma atualizada no post agora. Obrigado pelo comentário! :D

    • jesicafelix21

      Muito bom A.torres deu certinho no meu colocando define(‘FS_METHOD’,’direct’);
      Muito obrigada viu, fazia tempo que eu tentava resolver isso.

      • Feliz por você ter conseguido Jéssica, abraço;

  • define(‘FS_METHOD’,’direct’); é realmente a primeira solução que devemos testar.

    Obrigado pelo comentário!

  • Pitico Medtler

    Pôoo!! Essa dica me ajudou muito. Obrigado!

  • Valeu cara, li tantos tutoriais e vc resolveu meu problema com 1 linha kkk abraço!

  • Gui Malaquias

    Na parte do código
    export APACHE_RUN_USER=neo
    export APACHE_RUN_GROUP=www-data
    você colocou este código no arquivo envvars ou no apache2.config?

    • No arquivo “envvars”.
      No meu caso, o comentário informava: “# These need to be set in /etc/apache2/envvars”.

      Abraços.

  • Gui Malaquias

    Na parte do código
    export APACHE_RUN_USER=neo
    export APACHE_RUN_GROUP=www-data
    você colocou este código no arquivo envvars ou no apache2.config?

  • Wilson Gomes

    Matou a pau!!! Simples e objetivo.

  • Edson Souza

    Boa noite pessoal, estou tentando instalar um tema que se chama conversion-wp one-free no wordpress mas não estou conseguindo. Estou utitilzando o Ubuntu 15.04 já esta tudo configurado com Lamp localmente.
    Já entrei em /etc/apache/apache2.conf e testei essas formas como foi passado acima e não deu certo!!!!

    # These need to be set in /etc/apache2/envvars

    Antes:
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}

    Depois:
    # These need to be set in /etc/apache2/envvars
    User ${APACHE_RUN_edson}
    Group ${APACHE_RUN_www-data}

    Também coloquei o define(‘FS_METHOD’,’direct’); em wp-config.php e nada resolvido!

    Desde já agradeço pela ajuda! Abraços!

    • Olá Edson. Tudo bem?

      ${APACHE_RUN_USER} e ${APACHE_RUN_GROUP} são variáveis, por favor, volte ao que estava antes. Como o sistema está usando essas variáveis, você precisa procurar onde elas estão sendo definidas, no caso vai ser algo assim:

      export APACHE_RUN_USER=www-data
      export APACHE_RUN_GROUP=www-data

      Abraços!

      • Edson Souza

        Bom dia Mário Valney, sim tudo jóia…

        Quando fiz essa modificação vi que o sistema apresentou uma página em branco, então foi necessário voltar a configuração default! Agora revisando o que você diz no post verifiquei que eu estava fazendo algo errado.

        Pois eu estava entrando em /etc/apache2/apache2.conf mas lá não tinha nenhuma linha como essa: export APACHE_RUN_USER=www-data e export APACHE_RUN_GROUP=

  • Edu Oliveira

    É galera, tudo funciona, porém é um pé no saco ficar fazendo modificações, principalmente pra quem instala varios e varios sites em local, tanto para teste quanto para a construção off line de site de clientes, então ao meu ver, o mais correto é montar uma partição home ( isso mesmo, eu prefiro separado ) e trocar de var/www para home/user, assim com funciona nas hospedagens com centos, dessa forma roda filé sem precisar ficar alterando ou aplicando pemissões a cada novo site!

    • José Roberto Batista Dos Reis

      Edu Oliveira, favor poderia mostrar como faço para trocar o caminho(de var/www para home/user)?

      • Edu Oliveira

        Perdão José Roberto, só vi a mensagem agora, já conseguiu resolver a troca do diretório?

      • Edu Oliveira

        Poxa cara, foi mal, só vi esta mensagem agora, se ainda estiver precisando trocar, me fala fala qual o seu sistema operacional…

  • Denis Couras

    Thank’s for the help!

  • Marcello F. Fornari

    Rapaz, que coisa linda! Fiquei um tempão sofrendo aqui na constante do FS_METHOD e nada….. Deu certo, muito obrigado! Abs!

  • Simples direto e objetivo. Muito boa dia! Obrigado

  • Renan Aryel

    Muito obrigado, estava quebrando a cabeça aqui atrás de uma solução.
    Funcionou comigo colocar: define(‘FS_METHOD’,’direct’); no wp-config.php
    Obs. Uso Lubuntu GNU/Linux

  • Rafael Giffone

    MUITO OBRIGADO!!!
    Fucionou perfeitamente!

    define(‘FS_METHOD’,’direct’);

  • Júlio

    Resolvi alterando o usuário lá no /etc/apache2/envvars (ubuntu)

    Valeu!!!

  • Marcos Antonio Ferreira de Amo

    Show ! Valeu cara ! Parametro perfeito !

  • Esmael Silva

    Valew cara me ajudou bastante!

  • Dener Oliveira

    Perfeito, vlw!

  • MERDINHA

    Caraca ainda bem que eu vim nos comentários, nem precisei mexer no apache.

  • Thauan Santos

    Acabei de fazer só o primeiro passo, aqui no Ubuntu 14.04 LTS e também funcionou… PS: Em um VPN

  • Vinicius Salles

    UP!!!!! obrigado pela dica!! #2016 abraços!!

  • Hildo Quetz

    Achei essa página como resposta no fórum do WP Brasil. Cara, ajudou bastante, funfou aqui. Obrigado e abração !

  • alex freire

    esqueca tudo isso. simplesmente va ate o arquivo wp-config.php e adicione a seguinte linha:

    define(‘FS_METHOD’, ‘direct’);

    voila!

    Alex.

  • Fantástico, ajudou pra caramba… valeu!