index.php se muestra como listado en el servidor Apache2

index.php se muestra como listado en el servidor Apache2

Mi sistema operativo es Ubuntu 22.04

Empecé instalando php 8.1

Luego instalé el servidor Apache/2.4.52 (Ubuntu)

Luego agregué lo siguiente:

sudo apt-get install -y php php-cli php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath libapache2-mod-php

El comando: php -v, produce:

PHP 8.1.2-1ubuntu2.8 (cli) (built: Nov  2 2022 13:35:25) (NTS)

Luego modifiqué:

/etc/apache2/mods-enabled/dir.conf: DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Reinicié el servidor apache2.

Agregué un archivo index.php, pero cuando intento ir a la página web, solo veo la lista de index.php

<?php
echo 'This is a test';

También tengo un archivo index.html allí:

<h1>This is a test</h1>

Cuando elimino index.php y vuelvo a la página web, veo

This is a test

En letra grande y en negrita, como se esperaba.

El manual de PHP (así como la respuesta que encontré en este sitio) hace referencia a un archivo httpd.conf y quiere que agregue:

LoadModule php_module modules/libphp.so

pero no tengo un httpd.conf en Ubuntu 22.04, tengo un apache2.conf en la carpeta /etc/apaache2, que es un archivo esqueleto que carga todo desde varias subcarpetas.

Cuando lo intenté:

sudo a2enmod php

Obtuve:

ERROR: Module php does not exist!

¿Algunas ideas?

Editar:

Hice:

cd /etc/apache2
grep -R php

Y esto es lo que obtuve:

sites-available/default-ssl.conf:       <FilesMatch "\.(cgi|shtml|phtml|php)$">
sites-available/default-ssl.conf.original:      <FilesMatch "\.(cgi|shtml|phtml|php)$">
mods-enabled/dir.conf:  DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
mods-available/dir.conf:    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

Y haciendo:

sudo a2enmod php8.1

Produce el mismo error:

ERROR: Module php8.1 does not exist!

Y buscando los paquetes instalados, obtengo:

libapache2-mod-php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed,automatic]
libapache2-mod-php/jammy,now 2:8.1+92ubuntu1 all [installed]
php-bcmath/jammy,now 2:8.1+92ubuntu1 all [installed]
php-cli/jammy,now 2:8.1+92ubuntu1 all [installed]
php-common/jammy,now 2:92ubuntu1 all [installed]
php-curl/jammy,now 2:8.1+92ubuntu1 all [installed]
php-gd/jammy,now 2:8.1+92ubuntu1 all [installed]
php-mbstring/jammy,now 2:8.1+92ubuntu1 all [installed]
php-mysql/jammy,now 2:8.1+92ubuntu1 all [installed]
php-xml/jammy,now 2:8.1+92ubuntu1 all [installed]
php-zip/jammy,now 2:8.1+92ubuntu1 all [installed]
php8.1-bcmath/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-cli/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-common/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-curl/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-gd/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-mbstring/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-mysql/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-opcache/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed,automatic]
php8.1-readline/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed,automatic]
php8.1-xml/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1-zip/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 amd64 [installed]
php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.8 all [installed,automatic]
php/jammy,now 2:8.1+92ubuntu1 all [installed]

información relacionada