Solução: WordPress exibe código fonte index.php e não carrega pagina

Solução: WordPress exibe código fonte index.php e não carrega pagina

0 comentário 19,8K visualizações

Após upgrade de um Servidor Linux Ubuntu 20.04.5 LTS para a versão Ubuntu 22.04.1 LTS o site para de carregar a página principal e exibe código-fonte do arquivo index.php, segue abaixo o código exibido.

código fonte index.php do wordpress

código fonte index.php do wordpress

Código fonte index.php do Wordpress que exibe ao tentar carregar o site.

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );

/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';

Identificando o problema do Wordpress não carregar a página inicial.

Executamos o comando ls -l para verificar as permissões dos arquivos e pasta do WordPress e tudo estava ok

Verificando a situação do Apache no servidor Ubuntu.

Executamos o comando sudo apache2ctl start e recebemos o resultado:

AH00526: Syntax error on line 38 of /etc/apache2/sites-enabled/ocaradoti-le-ssl. conf:
SSLCertificateFile: file '/etc/letsencrypt/live/site.com.br/fullchain.pem' does not exist or is empty
Action 'start' failed.
The Apache error log may have more information.

Em seguida verificamos qual módulo de multiprocessamento o Apache HTTP está usando, executando o seguinte comando:
sudo apachectl -M | grep 'mpm'

Recebemos o seguinte resultado:

mpm_event_module (shared) este é o resultado que você deve receber

Como ainda estávamos desconfiados que o problema estava no Apache2 executamos o seguinte comando

sudo apache2ctl configtest

Recebemos o resultado
Syntax OK Este é o resultado que você deve receber

Reinstalando certificados Lets Encrypt.

Continuamos os testes reinstalando os certificados  letsencrypt existentes do site executando o comando:
sudo certbot --apache -d ocaradoti.com.br -d www.ocaradoti.com.br

Recebemos o seguinte resultado:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Certificate not yet due for renewal
You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/ocaradoti.com.br.conf)

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the certificate (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Selecione a opção 1 para não ter erros futuros.
Deploying certificate
Successfully deployed certificate for ocaradoti.com.br to /etc/apache2/sites-enabled/ocaradoti-le-ssl.conf
Successfully deployed certificate for www.ocaradoti.com.br to /etc/apache2/sites-enabled/ocaradoti-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://ocaradoti.com.br and https://www.ocaradoti.com.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Carregando módulo SSL.

Carregamos novamente o módulo SSL executando o comando.
sudo a2enmod ssl

Abaixo segue o resultado obtido:

Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

Investigando o módulo PHP.

Confirmando que o Apache, os certificados Lets Encrypt e o módulo SSL estavam OK, investigamos o modulo PHP instalado.
Sabíamos que a versão que tínhamos instalado era a versão 7.4.
Sendo assim, acessamos a pasta /etc/php.
Após executar o comando ls recebemos o seguinte resultado:

7.4 8.1

Existiam duas pastas de versões diferentes do PHP, a versão 7.4 que instalamos anteriormente e a versão 8.1 atualizada durante o upgrade para o Ubuntu 22.04.1 LTS

Acessamos a pasta /etc/apache2/mods-mods-enabled e executamos o comando ls e notamos que só existiam dois arquivos de referência ao PHP 7.4 os arquivos

php7.4.conf php7.4.load

Causou-nos estranheza, pois se houve atualização do módulo PHP para a versão 8.1 os arquivos php8.1.config e php8.1.load deveriam aparecer na pasta.

Acessamos a pasta /etc/apache2/mods-available$ e executamos o comando ls e localizamos os arquivos

php8.1.config   php8.1.load 

O fato de os arquivos aparecerem na pasta mods-available nos indica que eles estavam disponíveis, mas não habilitado.

Obtendo a versão ativa do módulo PHP no servidor Ubuntu.

Para confirmar se a versão do PHP em execução era realmente a versão 8.1 como suspeitamos executamos o comando php -v e recebemos o seguinte resultado:

PHP 8.1.2 (cli) (built: Aug 15 2022 12:24:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Dessa forma, concluímos que de fato a versão do PHP que estava rodando no servidor era a 8.1

Causa do erro que faz o Wordpress exibir o codigo fonte.

Este erro passou a acontecer porque o Apache não havia habilitado a versão atualizada do PHP, antes de atualizar o Ubuntu, o PHP ativo no servidor utilizava a versão php7.4, após atualização do Ubuntu a versão ativa do PHP instalado passou a ser php8.1 conforme o resultado postado acima.

Como solucionar o problema do WordPress exibir codigo fonte na pagina principal?

  1. Executamos o seguinte comando para habilitar o módulo PHP 8.1 no apachesudo a2enmod php8.1Recebemos o resultado:Considering dependency mpm_prefork for php8.1:
    Considering conflict mpm_event for mpm_prefork:
    Considering conflict mpm_worker for mpm_prefork:
    Module mpm_prefork already enabled
    Considering conflict php5 for php8.1:
    Enabling module php8.1.
    To activate the new configuration, you need to run:
    systemctl restart apache2
  2. Enfim, como o resultado nos confirma que o modulo php8.1 foi habilitado com sucesso e solicita o reinício do apache2, executamos o seguinte comando:

sudo systemctl restart apache2

Imediatamente após reiniciar o apache2 o site funcionou novamente.

Posteriormente, executei o comando sudo a2dismod php7.4 para desabilitar o modulo php7.4, reiniciamos novamente o Apache executando o comando sudo systemctl restart apache2 e testamos o site que continuou funcionando.

Enfim, esperamos que esta solução lhe ajude a resolver o problema do WordPress carregar a página de código fonte e não a página inicial após efetuar o upgrade para o Ubuntu 22.04.1 LTS.

Curta, comente e compartilhe.

Fontes de bugs e comandos para Linux: PHP: Debian GNU/Linux installation notes – Manual e Issues · php/php-src · GitHub

Deixe um Comentário

Sobre nós

O Cara do TI é um projeto voltado ao compartilhamento de notícias, resolução de problemas, reviews, games, filmes e tudo o que envolve o mundo da tecnologia.

Newsletter

Subscribe my Newsletter for new blog posts, tips & new photos. Let's stay updated!

© Copyright 2023 O Cara do TI® | Todos os direitos reservados

O Cara do TI
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00

Adblock Detected

Por favor, nos apoie desativando sua extensão AdBlocker de seus navegadores para nosso site. Nosso site depende das propagandas para se manter vivo. Contamos com sua colaboração