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 😉