Desinstalar cualquier version de PHP instalada con apt o dara conflictos.
sudo apt autoremove --purge php
sudo apt update; sudo apt upgrade -y
sudo apt install -y build-essential autoconf bison re2c libxml2-dev \
libsqlite3-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev \
libwebp-dev libxpm-dev libzip-dev libonig-dev libreadline-dev \
libtidy-dev libxslt1-dev libffi-dev pkg-config git perl apache2 apache2-dev
mkdir php-latest
cd php-latest
wget https://www.php.net/distributions/php-8.4.7.tar.gz
7z x php-8.3.21.tar.gz
cd php-8.3.21
sudo chmod u+x configure
sudo chmod u+x build/shtool
./configure --with-apxs2=/usr/bin/apxs --with-config-file-scan-dir=/usr/local/lib/php/conf.d \
--enable-mbstring --with-curl --with-openssl --enable-soap \
--enable-intl --with-zip --with-zlib --enable-bcmath --with-readline \
--with-xsl --with-tidy --enable-pcntl --enable-opcache --with-mysqli \
--with-pdo-mysql --enable-fpm --enable-zts
make -j$(nproc)
make test
sudo make install
#Verificamos que se haya creado el módulo de php
ls /usr/lib/apache2/modules/libphp*.so
#verificamos que se haya Cargado el módulo php en Apache
sudo nvim /etc/apache2/mods-available/php.load
LoadModule php_module /usr/lib/apache2/modules/libphp.so
#copiamos el binario a /usr/bin
sudo cp /usr/local/bin/php /usr/bin/
#verificamos la ultima version
php --version
#habilitamos el modulo php en apache
sudo a2enmod php
a2query -m
#configuramos apache para que reconozca los archvios php
sudo nvim /etc/apache2/apache2.conf
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex index.php
#agregamos la funcion phpinfo
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
#copiar el php.ini a su ruta correcta
sudo cp php.ini-production /usr/local/lib/php.ini
php --ini
#reinciamos apache
sudo systemctl restart apache2
#verificamos que apache reconosza php
http://localhost/info.php
¿Cómo saber con certeza qué archivo
php.ini
está usando?Ejecuta:
php -i | grep "Loaded Configuration File"
php --ini
En una instalacion de php con apt:
dpkg -l php
ii php 2:8.3+93ubuntu2 all server-side, HTML-embedded scripting language (default)
Esta son las rutas: