PHP: Problemas con la libreria CURL en Mac OSX

He estado implemtando algunas funciones con curl desde PHP, pero misteriosamente dejo de funcionar la libreria CURL y PHP me lanzaba el siguiente error:

PHP Fatal error: Call to undefined function curl_init()

Entonces lo más seguro es que la libreria curl no este instalada, pero revisando el phpinfo(); si aparece la referencia para cargar curl.so

Additional .ini files parsed /opt/local/var/db/php5/calendar.ini, /opt/local/var/db/php5/curl.ini, /opt/local/var/db/php5/ftp.ini, /opt/local/var/db/php5/gd.ini, /opt/local/var/db/php5/http.ini, /opt/local/var/db/php5/iconv.ini, /opt/local/var/db/php5/imap.ini, /opt/local/var/db/php5/mbstring.ini, /opt/local/var/db/php5/mcrypt.ini, /opt/local/var/db/php5/memcache.ini, /opt/local/var/db/php5/mssql.ini, /opt/local/var/db/php5/mysql.ini, /opt/local/var/db/php5/openssl.ini, /opt/local/var/db/php5/pcntl.ini, /opt/local/var/db/php5/soap.ini, /opt/local/var/db/php5/sockets.ini, /opt/local/var/db/php5/xdebug.ini, /opt/local/var/db/php5/xsl.ini, /opt/local/var/db/php5/zip.ini

Pero más abajo donde esta la información de los modulos pues nada de nada!, entonces opte por reinstalar la libreria.

Primero actualizo el repositorio del port (aca una guía para instalar port en tu Mac)

sudo port selfupdate

Y despues ya la instalación de la liberia php5-curl

sudo port install php5-curl

Reinicio el apache:

sh /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart

Y nada de nada!, el mismo error, entonces pues a ver los logs de apache para ver que esta sucediendo con el mentado modulo!.. ,y oooh sorpresa, error de dependencias, entonces a buscarlas., y resulta que tengo una versión más nueva de la que me esta solicitando PHP.

Aca el log de apache2: cat /opt/local/apache2/logs/error_log

Warning: PHP Startup: Unable to load dynamic library ‘/opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so’ – dlopen(/opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so, 9): Library not loaded: /opt/local/lib/libssl.0.9.8.dylib
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so
Reason: image not found in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library ‘/opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so’ – dlopen(/opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so, 9): Library not loaded: /opt/local/lib/libcrypto.0.9.8.dylib
Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/curl.so
Reason: image not found in Unknown on line 0

De hecho varias liberias (http.so, ftp.so, openssl.so, imap.so) que necesitan libssl marcaban el mismo error y pues a crear los enlaces simbolicos.

cd /opt/local/lib/
ln -s libssl.dylib libssl.0.9.8.dylib
ln -s libcrypto.dylib libcrypto.0.9.8.dylib

Reiniciamos Apache y listo!!.., todo arreglado!. =)

Mac: Eliminar icono de MobileMe

Si no usas el servicio de MobileMe que nos sirve para sincronizar información, respaldos , etc etc entre diferentes dispositivos Apple pues existe una solución para eliminar el icono de la barra superior de Snow Leopard

Presionando la tecla CMD ( o la debía manzanita) y luego click en el
icono y arrastrar hacia fuera y listo, adiós icono y mas espacio en la barra de menús.

De hecho este truco del CMD funciona para cualquier icono =)

MySQL: Cannot add or update a child row: a foreign key constraint fails

Si al hacer un insert les marca el siguiente error en MySQL:

Cannot add or update a child row: a foreign key constraint fails

La solución es cambiar el motor de almacenamiento MyISAM a InnoDB de la tabla que tiene la referencia, una vez realizado este cambio ya debe de funcionar el insert (claro, siempre y cuando exista el valor del ID que hace referencia).

Aca pueden ver más información sobre las relaciones de tablas en MySQL

SqlServer: Error al guardar los cambios de una tabla previamente creada

Desde que he usado Microsoft SQLServer siempre me ha dado el problema de cuando tengo una tabla ya creada y despues quiero modificar algun campo ya existente me dice que no se puede guardar:

Saving changes is not permitted. The changes you have made require the following tables to be dropped an re-created. You have either made changes to a table that can’t be re-created or enabled option Prevent saving changes that require the table to be re-created

Y bueno, pues lo que hacia antes era volver a crear otra tabla, ponerle un nombre temporal, eliminar la anterior y luego cambiar el nombre de la tabla, como ven nada eficiente., y pues la otra solución como lo indica el mensaje de error es deshabilitar la opción de prevenir cambios al guardar.

Entramos al menú: Tools > Options > Designers y quitamos la palomita del texto: Prevent saving changes that require table re-creation.

Y listo!! ya podemos modificar campos.., claro que hay que tener cuidado con los tipos de datos porque si tenemos información puede meter inconsistencias.

Cherokee: Duped suffix (case insensitive) ‘z’, pointing to ‘package.png’

Despues de actualizar el servidor web Cherokee y querer reiniciar el servicio desde el panel de control, me aparecio el siguiente mensaje de error:

Duped suffix (case insensitive) ‘z’, pointing to ‘package.png’
An unexpected error has just occurred in the server. The cause of the issue is unknown. Please, do not hesitate to report it at http://bugs.cherokee-project.com/ so the developer team can fix it.

La solución es ingresar a la siguiente página: http://127.0.0.1:9090/general#Icons-4 (Ajustes generales > Iconos) y despues buscar en la lista de extensiones el icono de paquetes (esta abajo de musica y arriba de pdf) y eliminar la extensión llamada Z (con mayusculas), ya que existe una llamada z (en minusculas) y en la nueva versión de cherokee ya no es necesario especificar las 2.