Skip to content

Instantly share code, notes, and snippets.

@nullx5
Last active May 28, 2025 06:21
Show Gist options
  • Save nullx5/b02dd9d7e019351dbdf81afe0beb3047 to your computer and use it in GitHub Desktop.
Save nullx5/b02dd9d7e019351dbdf81afe0beb3047 to your computer and use it in GitHub Desktop.

Compilar php manualmente y agregarlo a una instalacion de apache.

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



@nullx5
Copy link
Author

nullx5 commented May 25, 2025

sudo make install

libtool: warning: remember to run 'libtool --finish /home/blessed/php-latest/php-8.4.7/libs'

✅ Es solo una advertencia, no un error.

⚙️ Puedes correr el comando si quieres, pero no es necesario en la mayoría de sistemas modernos.

@nullx5
Copy link
Author

nullx5 commented May 25, 2025

¿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:

Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File:         /etc/php/8.3/cli/php.ini
Scan for additional .ini files in: /etc/php/8.3/cli/conf.d
Additional .ini files parsed:      /etc/php/8.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/8.3/cli/conf.d/10-opcache.ini,
/etc/php/8.3/cli/conf.d/10-pdo.ini,
/etc/php/8.3/cli/conf.d/20-calendar.ini,
/etc/php/8.3/cli/conf.d/20-ctype.ini,
/etc/php/8.3/cli/conf.d/20-exif.ini,
/etc/php/8.3/cli/conf.d/20-ffi.ini,
/etc/php/8.3/cli/conf.d/20-fileinfo.ini,
/etc/php/8.3/cli/conf.d/20-ftp.ini,
/etc/php/8.3/cli/conf.d/20-gettext.ini,
/etc/php/8.3/cli/conf.d/20-iconv.ini,
/etc/php/8.3/cli/conf.d/20-mysqli.ini,
/etc/php/8.3/cli/conf.d/20-pdo_mysql.ini,
/etc/php/8.3/cli/conf.d/20-phar.ini,
/etc/php/8.3/cli/conf.d/20-posix.ini,
/etc/php/8.3/cli/conf.d/20-readline.ini,
/etc/php/8.3/cli/conf.d/20-shmop.ini,
/etc/php/8.3/cli/conf.d/20-sockets.ini,
/etc/php/8.3/cli/conf.d/20-sysvmsg.ini,
/etc/php/8.3/cli/conf.d/20-sysvsem.ini,
/etc/php/8.3/cli/conf.d/20-sysvshm.ini,
/etc/php/8.3/cli/conf.d/20-tokenizer.ini```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment