En el panel de administración de WordPress, en el área de Salud del sitio se muestran las mejoras que el CMS recomienda. Es habitual que falten uno o más módulos PHP recomendados, como por ejemplo, el módulo opcional intl
.
![Captura del mensaje de WordPress "El módulo opcional, intl, no está instalado, o ha sido desactivado"](https://www.ingenieroinformatico.org/wp-content/uploads/2022/02/2022-02-27-19_51_19-Salud-del-sitio-Estado-_-Ingeniero-Informatico-—-WordPress.png)
Aunque pueden existir varios módulos no instalados o desactivados, en el caso práctico que nos aplica sólo implica un único módulo de PHP, el intl
. Intl
se encarga de realizar operaciones de localización (formato, transliteración, zonas horarias, etcétera).
intl – Enable to perform locale-aware operations including but not limited to formatting, transliteration, encoding conversion, calendar operations, conformant collation, locating text boundaries and working with locale identifiers, timezones and graphemes.
Extensiones PHP, WordPress
Usted puede encontrar información de cada uno de los módulos que necesita el gestor de contenidos en la página web de extensiones PHP de WordPress.
Comprobar si el módulo está instalado pero desactivado
Lo primero es asegurarse si el módulo existe y está deshabilitado. Para ello nos conectamos remotamente al servidor (sistema operativo Debian en el caso que nos ocupa) y listamos los módulos PHP instalados filtrando por el nombre:
usuariosudoer@debian:~$ ls /etc/php/7.3/mods-available/ | grep intl
usuariosudoer@debian:~$
El directorio del comando anterior es 7.3 por ser esa la versión de PHP instalada, pero se puede sustituir por otra o por un *. Como no se obtienen resultados el módulo no está desactivado, sino que no está instalarlo. Si el módulo estuviera desactivado, se puede habilitar mediante el comando phpenmod y, probablemente, sea necesario reiniciar el servidor Apache.
Instalación y activación de un módulo no instalado
Antes de instalar el módulo intl, actualizamos los repositorios mediante apt-get update:
usuariosudoer@debian:~$ sudo apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:3 http://deb.debian.org/debian buster-backports InRelease [46.7 kB]
Get:4 http://security.debian.org buster/updates InRelease [65.4 kB]
Get:5 http://deb.debian.org/debian buster-backports/main Sources.diff/Index [27.8 kB]
Get:6 http://deb.debian.org/debian buster-backports/main amd64 Packages.diff/Index [27.8 kB]
Get:7 http://deb.debian.org/debian buster-backports/main Translation-en.diff/Index [27.8 kB]
Get:8 http://deb.debian.org/debian buster-backports/main Sources 2022-02-16-2006.49.pdiff [15.2 kB]
Get:9 http://deb.debian.org/debian buster-backports/main Sources 2022-02-17-0801.42.pdiff [42 B]
Get:10 http://deb.debian.org/debian buster-backports/main Sources 2022-02-25-0803.22.pdiff [1,296 B]
Get:11 http://deb.debian.org/debian buster-backports/main Sources 2022-02-25-1407.21.pdiff [33 B]
Get:12 http://deb.debian.org/debian buster-backports/main amd64 Packages 2022-02-16-2006.49.pdiff [483 B]
Get:13 http://deb.debian.org/debian buster-backports/main amd64 Packages 2022-02-17-0201.53.pdiff [4,242 B]
Get:11 http://deb.debian.org/debian buster-backports/main Sources 2022-02-25-1407.21.pdiff [33 B]
Get:14 http://deb.debian.org/debian buster-backports/main amd64 Packages 2022-02-25-1407.21.pdiff [1,375 B]
Get:15 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-16-2006.49.pdiff [343 B]
Get:16 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-17-0201.53.pdiff [2,475 B]
Get:17 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-17-0801.42.pdiff [831 B]
Get:14 http://deb.debian.org/debian buster-backports/main amd64 Packages 2022-02-25-1407.21.pdiff [1,375 B]
Get:18 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-17-2005.30.pdiff [727 B]
Get:19 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-18-0203.31.pdiff [479 B]
Get:20 http://security.debian.org buster/updates/main Sources [223 kB]
Get:21 http://security.debian.org buster/updates/main amd64 Packages [317 kB]
Get:22 http://security.debian.org buster/updates/main Translation-en [171 kB]
Get:19 http://deb.debian.org/debian buster-backports/main Translation-en 2022-02-18-0203.31.pdiff [479 B]
Fetched 986 kB in 2s (433 kB/s)
Reading package lists... Done
A continuación, localizamos el paquete a instalar mediante el comando apt-cache search junto con el nombre del módulo objetivo para listar ocurrencias:
inusuariosudoer@debian:~$ apt-cache search intl
cmake-extras - Extra CMake utility modules
db5.3-util - Berkeley v5.3 Database Utilities
python-elib.intl - enhanced internationalization (I18N) for Python
freewnn-common - Files shared among the FreeWnn packages
freewnn-jserver - Japanese input system
libwnn-dev - Header files and static libraries for Wnn (FreeWnn jserver)
libwnn0 - FreeWnn library for Wnn (FreeWnn jserver)
gemma - Genome-wide Efficient Mixed Model Association
golang-github-pointlander-compress-dev - parallelized modular compression library
golang-github-pointlander-jetset-dev - JetSet is a compressed set of numbers
golang-github-pointlander-peg-dev - implementation of a Packrat parser generator - dev package
golang-github-spf13-jwalterweatherman-dev - Go library for both printing to the terminal and logging to files
golang-github-ttacon-chalk-dev - Go library for prettifying terminal/console output
html-xml-utils - HTML and XML manipulation utilities
emacs-intl-fonts - fonts to allow multilingual PostScript printing from Emacs
xfonts-intl-arabic - international fonts for X - Arabic
xfonts-intl-asian - international fonts for X - (south-east) Asian
xfonts-intl-chinese - international fonts for X - Chinese
xfonts-intl-chinese-big - international fonts for X - large Chinese
xfonts-intl-european - international fonts for X - European
xfonts-intl-japanese - international fonts for X - Japanese
xfonts-intl-japanese-big - international fonts for X - large Japanese
xfonts-intl-phonetic - international fonts for X - International Phonetic Alphabet
intltool - Utility scripts for internationalizing XML
intltool-debian - Help i18n of RFC822 compliant config files
libcodemodel-java - Java library for code generators
langdrill - language drills to test vocabulary
libintl-perl - Uniforum message translations system compatible i18n library
libintl-xs-perl - Uniforum message translations system compatible i18n library
libjama-dev - C++ Linear Algebra Package
libjuniversalchardet-java - Encoding detector library (Java port of the Mozilla library)
libjuniversalchardet-java-doc - Documentation for juniversalchardet
minetest-mod-intllib - Minetest module for internationalization of modules
libmono-posix4.0-cil - Mono.Posix library (for CLI 4.0)
pakcs - Portland Aachen Kiel Curry Compiler
php-intl - Internationalisation module for PHP [default]
php-patchwork-utf8 - UTF-8 strings handling for PHP
php7.3-intl - Internationalisation module for PHP
python-plwm - Pointless Window Manager - Python libraries for creating Window Managers
rofi - window switcher, run dialog and dmenu replacement
sphinx-intl - translation support utility for Sphinx
php-symfony-intl - limited replacement layer for the PHP extension intl
texlive-bibtex-extra - TeX Live: BibTeX additional styles
texlive-latex-extra - TeX Live: LaTeX additional packages
xjump - jumping game for X
De todos los resultados devueltos, sólo interesan estos dos:
php-intl - Internationalisation module for PHP [default]
php7.3-intl - Internationalisation module for PHP
Llegados a este punto, se instala el paquete php-intl por ser el paquete por defecto en lugar del php7.3-intl ( o cualquier otra versión):
usuariosudoer@debian:~$ sudo apt-get install php-intl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
php7.3-intl
The following NEW packages will be installed:
php-intl php7.3-intl
0 upgraded, 2 newly installed, 0 to remove and 6 not upgraded.
Need to get 132 kB of archives.
After this operation, 532 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://deb.debian.org/debian buster/main amd64 php-intl all 2:7.3+69 [5,996 B]
Get:2 http://security.debian.org buster/updates/main amd64 php7.3-intl amd64 7.3.31-1~deb10u1 [126 kB]
Fetched 132 kB in 0s (2,713 kB/s)
Selecting previously unselected package php7.3-intl.
(Reading database ... 36504 files and directories currently installed.)
Preparing to unpack .../php7.3-intl_7.3.31-1~deb10u1_amd64.deb ...
Unpacking php7.3-intl (7.3.31-1~deb10u1) ...
Selecting previously unselected package php-intl.
Preparing to unpack .../php-intl_2%3a7.3+69_all.deb ...
Unpacking php-intl (2:7.3+69) ...
Setting up php7.3-intl (7.3.31-1~deb10u1) ...
Creating config file /etc/php/7.3/mods-available/intl.ini with new version
Setting up php-intl (2:7.3+69) ...
Processing triggers for libapache2-mod-php7.3 (7.3.31-1~deb10u1) ...
Finalmente, reiniciamos el servidor Apache para que el nuevo módulo se cargue y esté disponible:
usuariosudoer@debian:~$ sudo service apache2 restart
Tras el reinicio, el estado de Salud del sitio
mostrará el problema por solucionado. El procedimiento que se ha detallado para el módulo intl
es aplicable también a cualquier otro módulo no instalado.