Proyectos de Domingo

Month: octubre 2014

Mac OS 10.10 Yosemite, instalando módulos extra de PHP

OS X Yosemite

Este post no pretende ser un tutorial paso a paso ni mucho menos, son sólo algunas notas rápidas sobre el tema que pueden ser de ayuda a los “early adopters” del Yosemite o nerds en general. Recomiendo leerlo completo antes de hacer nada.

Antes que nada hay que instalar las Command Line Tools (requiere de un Apple Id).

Dependiendo de los módulos que queramos con esto puede ser suficiente para instalarlos via pecl, pero si queremos instalar un módulo que viene con php pero que Apple decidió no compilarlo, debemos descargar el código fuente de la versión de PHP que viene ya incluída en Yosemite, es el 5.5.14.

Descomprimirlo y configurarlo con la siguiente línea (que es como viene configurado ya en OS X, comprobarlo con phpinfo() por las dudas):

./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info \
--disable-dependency-tracking --sysconfdir=/private/etc --with-apxs2=/usr/sbin/apxs \
--enable-cli --with-config-file-path=/etc --with-config-file-scan-dir=/Library/Server/Web/Config/php \
--with-libxml-dir=/usr --with-openssl=/usr --with-kerberos=/usr --with-zlib=/usr --enable-bcmath \
--with-bz2=/usr --enable-calendar --disable-cgi --with-curl=/usr --enable-dba --with-ndbm=/usr \
--enable-exif --enable-fpm --enable-ftp --with-png-dir=no --with-gd \
--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-93~55/Root/usr/local \
--enable-gd-native-ttf --with-icu-dir=/usr --with-ldap=/usr --with-ldap-sasl=/usr \
--with-libedit=/usr --enable-mbstring --enable-mbregex --with-mysql=mysqlnd --with-mysqli=mysqlnd \
--without-pear --with-pear=no --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/mysql/mysql.sock \
--with-readline=/usr --enable-shmop --with-snmp=/usr --enable-soap --enable-sockets \
--enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --enable-wddx --with-xmlrpc \
--with-iconv-dir=/usr --with-xsl=/usr --enable-zend-multibyte --enable-zip --with-pcre-regex=/usr

Si todo sale bien aquí podríamos hacer make, make install y listo, o si no podemos copiar los headers requeridos en /usr/include/php, etc. y luego compilar los módulos que nos interesen, por ejemplo mcrypt:

cd ext/mcrypt/
phpize
./configure
make
make install

En cambio si queremos soporte png para el módulo gd, no nos queda otra opción que compilar php nuevamente con el mismo “configure” anterior pero simplemente quitando este switch “–with-png-dir=no”.

Ya que estamos podemos agregar este también “–enable-opcache”.

Con APC me di por vencido, y aparte no anda bien junto con el nuevo opcache, pero igual lo necesitaba, así que instalé APCu y por ahora va bien.

Todo lo demás que falte a nivel librerías, lo instalamos con Brew.

Si vamos a compilar php completo, no sólo algunos módulos, ya no hace falta que sea el 5.5.14, podemos instalar uno más nuevo pero, para evitar problemas, yo instalé la misma, que se supone que es la que ellos probaron y debería compilar sin sobresaltos.

Y de hecho lo hizo.

 

UPDATE: Si por ningún motivo aparente aparece un error como este:

PHP Warning:  preg_match(): Compilation failed: unknown option bit(s) set at offset 0 in...

recomiendo compilar php sin esta opción:

--with-pcre-regex=/usr

Esto hace que php use la versión de PCRE que trae incluída en lugar de la desactualizada de OS X. Mágicamente el error desaparece y ciertas expresiones regulares vuelven a funcionar.

 

 

 

Reparación de la entrada auxiliar del stereo

Luego de probar con un par de cables, e incluso “reparar” un cable que andaba bien, llegué a la conclusión de que el problema era la ficha del stereo.

El primer obstáculo a sortear fue quitar el stereo sin la herramienta adecuada. Ya que esto es un “blog” de hacks, entre otras cosas, decidí fabricarla. Los lectores mas perspicaces se darán cuenta que es una percha cortada al medio. No es como la herramienta original, pero funciona.

Herramienta quita stereos (percha)

El stereo se abre bastante fácil, sólo tiene algunos tornillos torx, perdón por las fotos que no se entiende bien el proceso.

Abriendo el stereo

En la parte superior se ve el cable de la ficha, el cable verde suelto es el que agregué yo y luego terminé de soldar, el problema fue que me olvidé de sacar foto y lo volví a colocar. Perdón. De nuevo.

¡Cuidado con el flex al abrirlo!

Ficha en su lugar

Aquí se ve el espacio que ocupaba la ficha, fue bastante complicado quitarla sin tener que desarmar todo, por suerte pude sin romperla.

Aquí va la ficha

El problema era que se levantó una de las pistas donde iba soldada la ficha de 3.5mm. Lo primero que hice fue pegar la pista suelta nuevamente en la placa y luego soldarle un cable y así “puentear” el circuito.

Así quedó el cable soldado

La otra punta del cable fue soldada a la parte trasera del conector blanco.

Así quedó el cable soldado

Antes de volver a armar todo tuve la brillante idea de probar la continuidad para asegurarme que la soldadura haya quedado bien y evitar montar y desmontar todo nuevamente. Para esto le conecté una ficha macho de 3.5mm para poder medir más fácilmente.

Probando continuidad

Aquí se puede ver la ficha nuevamente en su lugar.

Ficha en su lugar

Y aquí nadie vio nada…

Aquí no pasó nada

Aquí está el stereo listo para volver a instalar.

Stereo terminado

Para la próxima, si no cambio el stereo o el auto antes, la idea es meterle un módulo bluetooth que compré escondido adentro. El desafío va a ser tratar de ver si puedo “robar” 3.3v de algún lugar dentro del stereo, si no lo logro, el plan B es esconder una pequeña fuente DC-DC ajustable y robar 12v de la alimentación del stereo, ya tengo todo lo necesario, incluso los cables esenciales del módulo bluetooth ya soldados, con pulso de neurocirujano, con 0,8mm entre cada contacto.

Lo único que me falta -como siempre- es tiempo.

Copyright © 2019 Proyectos de Domingo

Theme by Anders NorenUp ↑