Pues eso, que si habeis llegado aquí, ya sabeis por donde van los tiros…

El tema es que sino controlas mucho de sistemas, meterle una versión distinta de PHP a nuestro VPS, da bastante, ¡¡cague!!

Pero, querer es poder. Y si la necesidad apremia, …

Si partimos de la web de Laravel, apartado instalación, dice:

Server Requirements. The Laravel framework has a few system requirements:

  • PHP >= 5.4

  • MCrypt PHP Extension

¿Parece poco eh? 😉 Si, engaña el tema…

Lo curioso, es que di con este enlace, y adios miedos. Copiar, pegar en consola ssh, ejecutar, tiki-taka, y funciona a la primera. Lo único que me dolió, es no haberlo encontrado antes, porque el paquete oficial que usa para hacer la instalación también incluye otros muy interesantes para mi:

  • Ruby 1.9.3 (ruby193)  — Me pido este
  • Python 2.7 (python27) — … y este
  • Python 3.3 (python33) — … y este
  • PHP 5.4 (php54) — … y este
  • Perl 5.16.3 (perl516)
  • Node.js 0.10 (nodejs010)– … y este
  • MariaDB 5.5 (mariadb55)– y este
  • MySQL 5.5 (mysql55)– y este otro 😉
  • PostgreSQL 9.2 (postgresql92)

Ahora me falta el MCrypt… Que ya he conseguido instalarlo en local sobre MacOs Yosemite. Así que ahora me toca en centos…

Pues demasiado fácil…

Primero aquí: http://kb.sp.parallels.com/es/118651 Pero la ruta de descarga es incorrecta.

Después: https://fedoraproject.org/wiki/EPEL

yum install epel-release
yum install php-mcrypt

Pero, no es suficiente… ¿Porqué?

Porque le estamos instalando mcrypt a la versión php 5.3.3, y no lo a la que nos interesa, a la 5.4.16

¿Y como lo hago?

Descargamos la librería MCrypt y la versión php que se corresponde con nuestro server. En nuestro caso 5.4.16.

http://museum.php.net/php5/php-5.4.16.tar.gz

http://sourceforge.net/projects/mcrypt/files/latest/download

Subimos al server los ficheros desde línea de comandos, o por ftp en modo ssh, y seguimos las instrucciones del articulo para instalar mcrypt en Yosemite. Haciendo los cambios finales, en función de la ruta donde se instala la versión 5.4.16 en el server.

Falta ponerlo bonito desde aquí..

Instalar el phpize

yum update php-devel
yum install php-devel

Instalar el autoconf – Antes de  usar el manual del post anterior, probar a ejecutar el comando:

autoconf

Si esta instalado seguimos…

cd php-5.4.16/ext/mcrypt/
/opt/rh/php54/root/usr/bin/phpize

Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212

./configure
make

Daría error…. puesto que intenta usar el php 5.3.3

Gracias a este artículo:

http://serverfault.com/questions/317463/php-fe-function-c-error-when-trying-to-enable-extension

Encontré la forma de seguir adelante…

Buscamos la ruta del php-config de la versión que nos interesa:

http://rpm.pbone.net/index.php3/stat/4/idpl/28173284/dir//com/php54-php-devel-5.4.16-22.el7.x86_64.rpm.html

Donde muestra todo el contenido que tenemos con el php54, y seguimos el camino:

./configure –with-php-config=/opt/rh/php54/root/usr/bin/php-config
make
sudo make install

Y voila:

Installing shared extensions:     /opt/rh/php54/root/usr/lib64/php/modules/

Vale, ya solo nos queda decirle en el php.ini que active la extensión mcrypt de serie.

En este punto de ilusión momentánea, traté de hacerlo en:

/etc/php.ini

Pero según lo estaba haciendo, me autoinsulté… porque ese php.ini es el general de apache, cuando a nosotros nos interesa cambiar el php.ini del dominio al que le hemos dicho desde el panel de control de Plesk que va a usar la 5.4.16.

Así que nos falta saber donde esta el php.ini de nuestro dominio. Para ello, subimos un info.php a nuestro dominio, lo vemos vía web, y buscamos dentro de la web: php.ini.

Por ejemplo:

/var/www/vhosts/system/midominio.com/etc/php.ini

sudo vi /var/www/vhosts/system/midominio.com/etc/php.ini

Total que después de hacer todo ese cipizurri, encontré este otro enlace y resulta que instalar la 5.4 era mucho mas fácil 😉