Internet, Informática y Tecnología

Agregar extensión JSMin para PHP en Debian y Ubuntu

Cuando se trata de minificar archivos JavaScript hay variedad de software para elegir, pero que tengan un buen rendimiento, JSMin se lleva la delantera por estar disponible como una extensión de PHP. Actualmente es compatible con PHP 7.*, y la compilación es bastante sencilla. La única recomendación es que hay que hacerlo usando las mismas versiones de PHP en caso de copiar la extensión de un sistema a otro.

Estos pasos se realizaron con éxito con Debian Bullseye y PHP 7.4.

Compilación de la extensión PHP

Los requisitos para la compilación de extensiones PHP son instalar:

sudo apt install php-dev

Clonamos el repositorio y compilamos con:

git clone --recursive --depth=1 https://github.com/sqmk/pecl-jsmin.git
cd pecl-jsmin
phpize
./configure
make

Instalación en el mismo sistema

Si deseamos usar la extensión en el mismo sistema donde la compilamos usamos el siguiente comando:

sudo make install

Con esto se copia la extensión al directorio de las extensiones de PHP, por lo que debemos tener instalado PHP previamente.

Después vamos al directorio:

cd /etc/php/7.*/mods-available/

Ahí creamos un archivo que lleve por nombre jsmin.ini:

sudo nano jsmin.ini

El contenido que tendrá el archivo es el siguiente:

extension=jsmin.so

Instalación en un sistema diferente

Si deseamos instalar la extensión en otro sistema con la misma versión de PHP, verificamos de nuevo por si las dudas con el comando php -v.

Copiamos el archivo que se generó pecl-jsmin/modules/jsmin.so hacia la carpeta donde se encuentran las extensiones de PHP en el sistema destino.

Para saber la ruta de la carpeta en el sistema destino ejecutamos el comando:

php -i | grep '^extension_dir' | sed -e 's/extension_dir => .* => //'

El archivo en el sistema final debe quedar con el siguiente formato (varía según la versión de PHP):

/usr/lib/php/20180731/jsmin.so

Después creamos un archivo con el nombre jsmin.ini en el directorio de configuraciones de PHP:

sudo nano /etc/php/7.*/mods-available/jsmin.ini

Le agregamos el siguiente contenido y lo guardamos:

extension=jsmin.so

Activación de la extensión

Para activar JSMin usamos el comando:

sudo phpenmod jsmin

Si todo está bien no deberá aparecer ningún mensaje. Para comprobar que la extensión se encuentre cargada ejecutamos:

php -m

Ahí debe aparecer una lista con todas las extensiones cargadas en la sección "[PHP Modules]".

Para terminar, reiniciamos PHP.

Nginx, PHP y PHP-FPM, cambiando 7.3 por la versión actual que estemos usando (ejemplo 7.2 y 7.4):

sudo systemctl restart php7.3-fpm

Apache y PHP:

sudo systemctl restart apache2

PHP CLI:

No es necesario reiniciar.

Repositorio: sqnk/pecl-jsmin.

Contenido relacionado