Programación

Instalar Laravel 4.2 (antiguo) con composer+AMPPS en Mac OS X Yosemite

Mac Os X 10.10 Yosemite viene con una instalación Apache+MySQL+PHP. Así que muchos optamos por distintas soluciones. Bien reinstalar y adaptar nuestro sistema con Homebrew, MacPorts, MAMP o mi preferido AMPPS ya que lo compatibilizo con los servidores a través de Softaculous, lo cual complica la instalación de Laravel 4.2

Laravel 4.2 – Usar composer en un Mac OS X con varias versiones de PHP (AMPPS)

Al intentar instalar Laravel 4.2 con composer en una versión antigua, la 4.2, obtuve un error, ya que el fichero composer funciona usando la variable de entorno env

#!/usr/bin/env php

Esto fuerza a usar el PHP de Yosemite, pero en el caso de que usemos por ejemplo AMPPS, nos arrojara errores, ya que no tendrá las extensiones de nuestro PHP de desarrollo.

composer create-project laravel/laravel proyecto4.2 4.2 --prefer-dist
Installing laravel/laravel (v4.2.0)
- Installing laravel/laravel (v4.2.0)
Loading from cache
Created project in mejorandolaravel2
Loading composer repositories with package information
Installing dependencies (including require-dev)
...
...
Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output:

Tras intentar modificar el fichero composer para que use nuestro php cambiando la variable de entorno #!/usr/bin/env php por nuestro path

#!/usr/bin/env php

Obtenemos nuevos errores

composer create-project laravel/laravel mejorandolaravel 4.2 --prefer-dist
PHP Fatal error: Uncaught exception 'PharException' with message 'phar "/usr/local/bin/composer" has a broken signature' in /usr/local/bin/composer:23
Stack trace:
#0 /usr/local/bin/composer(23): Phar::mapPhar('composer.phar')
#1 {main}
thrown in /usr/local/bin/composer on line 23

Fatal error: Uncaught exception 'PharException' with message 'phar "/usr/local/bin/composer" has a broken signature' in /usr/local/bin/composer:23
Stack trace:
#0 /usr/local/bin/composer(23): Phar::mapPhar('composer.phar')
#1 {main}
thrown in /usr/local/bin/composer on line 23

Tras varios intentos según distintos documentos encontrados el problema persistía, y lo que era una fácil instalación de Laravel 5, paso a una difícil instalación de Laravel 4.2.

Solución presentada: Cambio del binario por el usado en nuestro desarrollo.

La solución más rápida que encontramos y la menos intrusiva fue el cambio del binario, por un enlace simbólico a la versión que usamos de AMPPS en nuestro caso la 5.4 ya que el desarrollo que estamos trabajando usa esa versión.

$sudo su -
Password:
cd /usr/bin; mv php php.original; ln -s /Applications/AMPPS/php-5.4/bin/php

Otros problemas detectados

tokenizer no instalado

Debemos instalar o activar la extensión tokenizer.so

Use of undefined constant T_DOUBLE_COLON - assumed 'T_DOUBLE_COLON'

Script php artisan optimize handling the post-install-cmd event returned with an error

[RuntimeException]
Error Output:

[ErrorException]
Use of undefined constant T_DOUBLE_COLON - assumed 'T_DOUBLE_COLON'

optimize [--force] [--psr]

ctype no instalado

Debemos instalar o activar la extensión ctype.so

cript php artisan optimize handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output: PHP Fatal error: Call to undefined function ctype_digit() in /path_instalacion/vendor/nikic/php-parser/lib/PHPParser/PrettyPrinter/Default.php on line 88
Opinión 1/05/2017
Desde que escribí este artículo he tenido tiempo de probar varias alternativas, al lío de tener de forma nativa con mac OS X distintos entornos de desarrollo, con distintas versiones de PHP. Teniendo en cuenta mis limitaciones de equipos y memoria, al final para cosas especificas que me llevan a la necesidad de software anticuado, he optado por crear mi propia máquina virtual con VirtualBox, y para el resto uso Valet (Laravel)

Comparte este artículo

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.

Comparte este articulo en

Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

5 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

9 meses hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

11 meses hace

Actualización de seguridad 6.2.1 para WordPress y la importancia de los backups confiables

La seguridad de nuestro sitio web es de vital importancia en el mundo digital actual.…

12 meses hace

El mito de los ficheros SVG inseguros en las subidas de ficheros

Los ficheros SVG son archivos gráficos vectoriales escalables ampliamente utilizados en diseño web. Aunque no…

12 meses hace

Solución de problemas de errores 500 en Castris Hosting: una guía para usuarios de cPanel

En este artículo, te guiamos en la solución de problemas de errores 500 en Castris…

12 meses hace