Hola,
Esta cuestión se ha planteado en el foro diversas veces enfocándola, sobre todo, en la actualización de la versión base de
PHP instalada por
Plesk (
5.3.3 en
CentOS 6 y
5.4.16 en
CentOS 7) aunque la opción recomendada pasa por instalar las nuevas versiones de
PHP como opciones seleccionables en el propio panel de control, sin tocar la versión base de
PHP sobre la que se asienta
Plesk y que, además, tiene la ventaja de funcionar en todos los modos disponibles (como módulo
Apache,
CGI,
FastCGI y
FPM) sin complicarse la vida recompilando varias veces la misma versión de código fuente.
Aunque también podrías intentar recurrir a versiones compiladas en repositorios particulares, la opción más flexible y potente pasa por descargarte y compilar tú mismo cada versión de
PHP a medida que está disponible. Para ello, encontraras muchos tutoriales en la red, aunque, frecuentemente, se suele obviar el tema de las dependencias en ellos, que es, con mucho, el tema que más dolores de cabeza te puede dar (en forma de errores) durante la compilación. Uno de los mejores tutoriales que he encontrado para
CentOS 6.5 es el escrito por
Stéphan Schamp, al que pertenecen estos pasos (adaptados a los requisitos de
CentOS 7 y probados sobre una plantilla base de
CentOS 7 para
VPS Cloud, sobre la que se ha instalado una copia limpia de
Plesk), que cito a continuación para tu comodidad y aunque los he probado y funcionan sin problemas … si falla algo “
G es tu amigo”.
Antes de empezar y como
punto crítico a tener en cuenta: para la instalación de algunas librerías necesarias durante el proceso de compilación de
PHP hace falta instalar el repositorio
EPEL. Este repositorio contiene componentes avanzados (como
fail2ban) que entran en conflicto con las versiones personalizadas que incluye
Plesk, por lo que, una vez hayas instalado las librerías requeridas, deberías deshabilitar este repositorio para evitar que cualquier “update” desatendido (por ejemplo, del propio
Plesk) sobre escriba componentes vitales y deje de funcionar.
Requisitos previos, librerías y dependencias.
yum install epel-release
yum -y install gcc make gcc-c++ cpp kernel-headers.x86_64 libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel openldap-devel postgresql-devel aspell-devel net-snmp-devel libxslt-devel libc-client-devel libicu-devel gmp-devel curl-devel libmcrypt-devel unixODBC-devel pcre-devel sqlite-devel db4-devel enchant-devel libXpm-devel mysql-devel readline-devel libedit-devel recode-devel libtidy-devel libtool-ltdl-devel libc-client-2007f uw-imap-devel uw-imap-static uw-imap-utils
Los pasos para la instalación de
PHP 5.5.20, por ejemplo (deberían ser los mismos para cualquier versión de las ramas 5.4, 5.5 y 5.6):
Descarga y descompresión del código fuente de PHP 5.5.20.
Atención: es necesario comprobar que el enlace de descarga es correcto (si se copia el texto del comando desde el recuadro, el enlace queda roto y no funcionará, aunque colocando el cursor sobre el enlace este apunta al sitio correcto y se puede usar esta información como texto de corrección).
Compilación. Si se cambian las opciones de
./configure puede ser necesario instalar nuevas librerías como dependencias antes de compilar de nuevo (aparecen errores crípticos). :confused:
cd /usr/local/src/php-5.5.20/
./configure --with-libdir=lib64 --cache-file=./config.cache --prefix=/usr/local/php-5.5.20 --with-config-file-path=/usr/local/php-5.5.20/etc --disable-debug --with-pic --disable-rpath --with-bz2 --with-curl --with-freetype-dir=/usr/local/php-5.5.20 --with-png-dir=/usr/local/php-5.5.20 --enable-gd-native-ttf --without-gdbm --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr/local/php-5.5.20 --with-openssl --with-pspell --with-pcre-regex --with-zlib --enable-exif --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-kerberos --with-unixODBC=/usr --enable-shmop --enable-calendar --with-libxml-dir=/usr/local/php-5.5.20 --enable-pcntl --with-imap --with-imap-ssl --enable-mbstring --enable-mbregex --with-gd --enable-bcmath --with-xmlrpc --with-ldap --with-ldap-sasl --with-mysql=/usr --with-mysqli --with-snmp --enable-soap --with-xsl --enable-xmlreader --enable-xmlwriter --enable-pdo --with-pdo-mysql --with-pdo-pgsql --with-pear=/usr/local/php-5.5.20/pear --with-mcrypt --without-pdo-sqlite --with-config-file-scan-dir=/usr/local/php-5.5.20/php.d --without-sqlite3 --enable-intl --enable-zip --enable-inline-optimization
make -j $(grep processor /proc/cpuinfo | wc -l)
[ ! -d "/usr/local/php-5.5.20/" ] && make install
Creación del archivo php.ini base.
cp /usr/local/src/php-5.5.20/php.ini-production /usr/local/php-5.5.20/etc/php.ini
Edición del archivo php.ini .
nano /usr/local/php-5.5.20/etc/php.ini
Añadir en el apartado adecuado (quitar ';' y completar):
Código:
include_path = “/usr/local/php-5.5.20/pear”
date.timezone = Europe/Paris
Registrar la nueva versión de PHP en Plesk (para simplificar sólo usaremos el modo
FastCGI).
/usr/local/psa/bin/php_handler --add -displayname "5.5.20c" -path /usr/local/php-5.5.20/bin/php-cgi -phpini /usr/local/php-5.5.20/etc/php.ini -type fastcgi -id "fastcgi-5.5.20c"
(es un único comando)
A partir de este punto la versión de
PHP recién instalada ya se podrá seleccionar en el panel de
Plesk como una opción más.
Estos pasos no pretenden ser un tutorial serio, puesto que puede que no funcionen en todos los sistemas, aún contando con una configuración aparentemente idéntica. Más bien son un ejemplo a partir del cual experimentar, sobre todo si se están dando los primeros pasos en la administración de sistemas y no hay miedo a perder nada de valor.
Saludos cordiales.