{"id":5925,"date":"2022-04-19T14:30:47","date_gmt":"2022-04-19T17:30:47","guid":{"rendered":"https:\/\/blog.lucianoreis.com\/?p=5925"},"modified":"2022-04-19T14:30:47","modified_gmt":"2022-04-19T17:30:47","slug":"wordpress-erro-em-wp_get_server_protocol","status":"publish","type":"post","link":"https:\/\/blog.lucianoreis.com\/2022\/04\/19\/wordpress-erro-em-wp_get_server_protocol\/","title":{"rendered":"WordPress – Erro em wp_get_server_protocol( )"},"content":{"rendered":"\n

E, de repente, seu site sai do ar com uma mensagem parecida com essa:<\/p>\n\n\n\n

Fatal error: Uncaught Error: Call to undefined function wp_get_server_protocol() in \/home1\/kemonostudio\/public_html\/wp-includes\/functions.php:1431 \nStack trace: \n#0 \/home1\/kemonostudio\/public_html\/wp-includes\/class-wp.php(741): status_header(200) \n#1 \/home1\/kemonostudio\/public_html\/wp-includes\/class-wp.php(761): WP->handle_404() \n#2 \/home1\/kemonostudio\/public_html\/wp-includes\/functions.php(1310): WP->main('')\n#3 \/home1\/kemonostudio\/public_html\/wp-blog-header.php(16): wp() \n#4 \/home1\/kemonostudio\/public_html\/index.php(17): require('\/home1\/kemonost...')\n#5 {main} thrown in \/home1\/kemonostudio\/public_html\/wp-includes\/functions.php on line 1431<\/code><\/pre>\n\n\n\n

A solu\u00e7\u00e3o \u00e9 complexa e assustadora mas a boa not\u00edcia \u00e9 que ela existe e pode ser aplicada rapidamente seguindo o passo-a-passo que vou aqui descrever.<\/p>\n\n\n\n

N\u00e3o consegui, at\u00e9 o momento, identificar porque esse erro ocorre. Se por causa de uma atualiza\u00e7\u00e3o autom\u00e1tica o ataque de algum malware. O que pude perceber \u00e9 que alguns aquivos do WordPress foram alterados no dia em que come\u00e7ou a pane.<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Ao perceber isso sobrescrevi a functions.php por outra teoricamente saud\u00e1vel mas ent\u00e3o disparou outros erros em outras rotinas. Percebi que a solu\u00e7\u00e3o seria sobrescrever todos os arquivos do WordPress, uma vez que a fazer isso arquivo por arquivo geraria in\u00fameros erros em cascata.<\/p>\n\n\n\n

Mas ent\u00e3o veio o temor: se eu sobrescrever todos os arquivos do WordPress, isso n\u00e3o iria desconfigurar meu site? Ele j\u00e1 est\u00e1 com tema aplicado, artigo, diversas caracter\u00edsticas de funcionalidades de formata\u00e7\u00e3o que eu n\u00e3o gostaria de ter que refazer. A resposta feliz \u00e9 que todas as informa\u00e7\u00f5es de formata\u00e7\u00e3o e funcionalidade do seu site WordPress est\u00e3o no banco de dados, ent\u00e3o voc\u00ea pode sim baixar a \u00faltima vers\u00e3o da plataforma diretamente no site oficial e sobrescrever todos os arquivos em seu servidor.<\/p>\n\n\n\n

O \u00fanico cuidado que deve ser tomado \u00e9 em rela\u00e7\u00e3o ao arquivo “wp-config.php”, que fica localizado no diret\u00f3rio raiz, pois l\u00e1 est\u00e1 a configura\u00e7\u00e3o de acesso ao banco de dados. Mesmo assim, caso apague esse arquivo ou o sobrescreva, a solu\u00e7\u00e3o \u00e9 f\u00e1cil, basta reconfigurar o WordPress para se conectar ao banco de dados corretamente novamente.<\/p>\n\n\n\n

\/\/ ** MySQL settings - You can get this info from your web host ** \/\/\n\/** The name of the database for WordPress *\/\ndefine( 'DB_NAME', 'nome_do_bd' );\n\n\/** MySQL database username *\/\ndefine( 'DB_USER', 'usuario_do_bd' );\n\n\/** MySQL database password *\/\ndefine( 'DB_PASSWORD', 'senha_do_bd' );\n\n\/** MySQL hostname *\/\ndefine( 'DB_HOST', 'localhost' );\n\n\/** Database Charset to use in creating database tables. *\/\ndefine( 'DB_CHARSET', 'utf8mb4' );\n\n\/** The Database Collate type. Don't change this if in doubt. *\/\ndefine( 'DB_COLLATE', '' );<\/pre><\/div>\n\n\n\n

Essas s\u00e3o as linhas do aquivo “wp-config.php” que registram as informa\u00e7\u00f5es de acesso ao banco de dados. Por garantia, fa\u00e7a uma c\u00f3pia deste arquivo em local seguro, e tamb\u00e9m anote as informa\u00e7\u00f5es contidas em “nome_do_bd”, “usuario_do_bd” e “senha_do_bd”. Caso voc\u00ea perca o arquivo que est\u00e1 no local original pode subrescrever com o arquivo que voc\u00ea salvou ou, em \u00faltimo caso, simplesmente preencher novamente as informa\u00e7\u00f5es de nome, usu\u00e1rio e senha do BD.<\/p>\n\n\n\n

Passo a Passo<\/h2>\n\n\n\n

1. Baixe os arquivos originais do WordPress diretamente do site deles clicando no bot\u00e3o “Download Wordpres x.x.x”.
https:\/\/wordpress.org\/download<\/a><\/p>\n\n\n\n

2. Voc\u00ea receber\u00e1 um aquivo .zip com todos os arquivos que comp\u00f5em o sistema WordPress. Descompacte esses aquivos em algum local de seu conhecimento. Ao final voc\u00ea ter\u00e1 algo desse tipo:<\/p>\n\n\n\n

Mode                 LastWriteTime         Length Name\n----                 -------------         ------ ----\nda---l        13\/04\/2022     08:01                wp-admin\nda---l        13\/04\/2022     08:01                wp-content\nda---l        13\/04\/2022     08:02                wp-includes\n-a---l        13\/04\/2022     07:55            405 index.php\n-a---l        13\/04\/2022     07:55          19915 license.txt\n-a---l        13\/04\/2022     07:55           7437 readme.html\n-a---l        13\/04\/2022     07:55           7165 wp-activate.php\n-a---l        13\/04\/2022     07:55            351 wp-blog-header.php\n-a---l        13\/04\/2022     07:55           2338 wp-comments-post.php\n-a---l        13\/04\/2022     07:55           3001 wp-config-sample.php\n-a---l        13\/04\/2022     07:55           3939 wp-cron.php\n-a---l        13\/04\/2022     07:55           2496 wp-links-opml.php\n-a---l        13\/04\/2022     07:55           3900 wp-load.php\n-a---l        13\/04\/2022     07:55          47916 wp-login.php\n-a---l        13\/04\/2022     07:55           8582 wp-mail.php\n-a---l        13\/04\/2022     07:55          23025 wp-settings.php\n-a---l        13\/04\/2022     07:55          31959 wp-signup.php\n-a---l        13\/04\/2022     07:55           4747 wp-trackback.php\n-a---l        13\/04\/2022     07:55           3236 xmlrpc.php<\/code><\/pre>\n\n\n\n

3. No servidor, v\u00e1 at\u00e9 o diret\u00f3rio principal, aquele que vai gerar o site, normalmente “public_html” ou coisa parecida e apague todos os arquivos e pastas listadas acima EXCETO<\/strong>:<\/p>\n\n\n\n

  • wp-config.php (n\u00e3o est\u00e1 na lista acima, mas est\u00e1 l\u00e1 no servidor)<\/li>
  • wp-content (pasta)<\/li><\/ul>\n\n\n\n

    Tome muito cuidado neste processo porque o arquivo acima, “wp-config.php” e a pasta “wp-content” cont\u00e9m conte\u00fado vital para a montagem do seu site.<\/p>\n\n\n\n

    Via FTP<\/h2>\n\n\n\n

    1. Selecione todos esses aquivos e pastas, exceto a pasta “wp-content” e envie, via FTP, para o diret\u00f3rio raiz em seu servidor. Se o seu provedor utliza o CPanel, voc\u00ea pode pular este passo e ir direto para o passo 4.<\/p>\n\n\n\n

    Via CPanel<\/h2>\n\n\n\n

    1. V\u00e1 para o diret\u00f3rio principal da sua hospedagem, aquele que cont\u00e9m o conte\u00fado a ser exibido na web. Normalmente “public_html” e clique em “Carregar” para enviar o arquivo que acabou de baixar l\u00e1 no site WordPress.org.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    2. Selecione o arquivo e fa\u00e7a o envio.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    3. De volta ao gerenciador de arquivos, selecione o arquivo que acabou de enviar (wordpress-x.x.x.zip) e ent\u00e3o clique em “Extrair”.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    4. Aceite o local sugerido, que normalmente ser\u00e1 o mesmo diret\u00f3rio onde est\u00e1 localizado o arquivo .zip e clique em “Extract”.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    5. Clique em “Recarregar” e observe que agora existe um novo subdiret\u00f3rio, chamado “wordpress” no diret\u00f3rio principal.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    7. Entre no novo subdiret\u00f3rio “wordpress”, selecione todos os arquivos e pastas e ent\u00e3o clique em “Mover”.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    8. Apague o “\/wordpress” do caminho de destino, para que os arquivos sejam movidos para o diret\u00f3rio principal. No caso do nosso exemplo, ficaria apenas “\/public_html”.<\/p>\n\n\n\n

    \"\"<\/figure>\n\n\n\n

    Finaliza\u00e7\u00e3o<\/h2>\n\n\n\n

    Realizados os processos acima, tente acessar seu site novamente. Ele dever\u00e1 estar funcionando.<\/p>\n\n\n\n

    Se voc\u00ea achou esse conte\u00fado \u00fatil ou relevante, considere assinar este blog e fazer um coment\u00e1rio l\u00e1 no final. Para assinar basta preencher seu e-mail na caixa abaixo:<\/p>\n\n\n\t

    \n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t