Blog, MacOSX

Recompilar MAMP

El soporte de LDAP en MAMP 1.7.1 esta roto asi que tube que recompilar el PHP, lo cual me obligo a recompilar todas sus dependencias, pero como no encontre ninguna guia de como realizarlo correctamente, aqui esta como lo hice yo.

Lo primero es descargarse el codigo fuente proporcionado por la gente de MAMP, y su version compilada.

Codigo fuente: MAMP 1.7.1 (src)

Version Intel: MAMP 1.7.1 (intel)

Version PPC: MAMP 1.7.1 (ppc)

Una vez que tengamos esto, hay que instalar MAMP la version compilada en /Applications y asi ya tenemos toda la estructura correcta lista para solo recompilar lo necesario.

Ahora descomprimimos el codigo fuente y vamos compilando las diferentes librerias:

CURL

tar zxvf curl-7.16.2.tar.gz
cd curl-7.16.2
./configure --prefix=/Applications/MAMP/Library
make
make install

Freetype

tar zxvf freetype-2.3.4.tar.gz
cd freetype-2.3.4
./configure --enable-shared --configure=/Applications/MAMP/Library/
make
make install

Gettext

tar zxvf gettext-0.16.1.tar.gz
cd gettext-0.16.1
./configure --prefix=/Applications/MAMP/Library
make
make install

IMAP (Parche para osx: imap-2006i-osx.patch)

tar zxvf imap-2006i.tar.Z
cd imap-2006i
patch -p1 < imap-2006i-osx.patch
make oxp
cp c-client/*.h /Applications/MAMP/Library/lib/imap-2006i/include/
cp c-client/*.c /Applications/MAMP/Library/lib/imap-2006i/lib/
cp c-client/c-client.a /Applications/MAMP/Library/lib/imap-2006i/lib/libc-client.a

JPEG

tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-shared --prefix=/Applications/MAMP/Library
ln -s `which glibtool` ./libtool
make
make install

libiconv

tar zxvf libiconv-1.11.tar.gz
cd libiconv-1.11
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

LibIdn

tar xvfz libidn-0.6.14.tar.gz
cd libidn-0.6.14
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

libmcrypt

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

libpng

tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

libxml

tar zxvf libxml2-2.6.29.tar.gz
cd libxml2-2.6.29
./configure --enable-shared --prefix=/Applications/MAMP/Library
make
make install

libxst

tar zxvf libxslt-1.1.21.tar.gz
cd libxslt-1.1.21
./configure --enable-shared --prefix=/Applications/MAMP/Library/ --with-libxml-prefix=/Applications/MAMP/Library/
make
make install

t1lib

tar zxvf t1lib-5.1.1.tar.gz
cd t1lib-5.1.1
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make without_doc
make install

libexpat

Esta libreria es necesaria y no esta incluida, asi que hay que bajarla de http://sourceforge.net/projects/expat/

tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --enable-shared --prefix=/Applications/MAMP/Library/
make
make install

MySQL

tar xvfz mysql-5.0.41.tar.gz
cd mysql-5.0.41
./configure --prefix=/Applications/MAMP/Library --with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock --with-tcp-port=9999 --localstatedir=/Applications/MAMP/db/mysql/
make
make install

Apache2

tar zxvf httpd-2.0.59.tar.gz
cd httpd-2.0.59
./configure --prefix=/Applications/MAMP/Library --sysconfdir=/Applications/MAMP/conf/apache --enable-nonportable-atomics --enable-so --enable-cgid --enable-auth-anon --enable-auth-dbm --enable-auth-digest --enable-file-cache --enable-echo --enable-charset-lite --enable-cache --enable-disk-cache --enable-mem-cache --enable-example --enable-ext-filter --enable-case-filter --enable-case-filter-in --enable-deflate --enable-mime-magic --enable-cern-meta --enable-expires --enable-headers --enable-usertrack --enable-unique-id --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-bucketeer --enable-http --enable-info --enable-cgid --enable-vhost-alias --enable-speling --enable-rewrite --enable-so --with-ssl=/usr --enable-dav --enable-dav-fs --enable-ssl=shared --enable-mods-shared=most --with-mpm=prefork --without-berkeley-db
make

Si al compilar nos aparece este error:

endrecv.c:965:2: error: #error APR has detected sendfile on your system, but nobody has written a
sendrecv.c:966:2: error: #error version of it for APR yet. To get past this, either write apr_sendfile
sendrecv.c:967:2: error: #error or change APR_HAS_SENDFILE in apr.h to 0.

Entonces tenemos que editar el fichero srclib/apr/include/apr.h y cambiar la linea #define APR_HAS_SENDFILE 1 por #define APR_HAS_SENDFILE 0

Y finalmente para instalar

make install

PHP

tar zxvf php-5.2.5.tar.gz
cd php-5.2.5
./configure --with-mysql=/Applications/MAMP/Library --with-apxs2=/Applications/MAMP/Library/bin/apxs --with-gd --with-jpeg-dir=/Applications/MAMP/Library --with-png-dir=/Applications/MAMP/Library --with-zlib --with-freetype-dir=/Applications/MAMP/Library --prefix=/Applications/MAMP/bin/php5 --exec-prefix=/Applications/MAMP/bin/php5 --sysconfdir=/Applications/MAMP/conf/php5 --with-soap --with-config-file-path=/Applications/MAMP/conf/php5 --enable-track-vars --enable-bcmath --enable-ftp --enable-gd-native-ttf --with-bz2=/usr --with-ldap --with-mysqli=/Applications/MAMP/Library/bin/mysql_config --with-sqlite --with-ttf --with-t1lib=/Applications/MAMP/Library --enable-mbstring=all --with-curl=/Applications/MAMP/Library --enable-dbx --enable-sockets --enable-bcmath --with-imap=shared,/Applications/MAMP/Library/lib/imap-2006i --enable-soap --with-kerberos --enable-calendar --with-pgsql=shared,/Applications/MAMP/Library/pg --enable-dbase --enable-exif --with-libxml-dir=/Applications/MAMP/Library --with-gettext=shared,/Applications/MAMP/Library --with-xsl=/Applications/MAMP/Library --with-pdo-mysql=shared,/Applications/MAMP/Library --with-pdo-pgsql=shared,/Applications/MAMP/Library/pg --with-mcrypt=shared,/Applications/MAMP/Library --with-openssl --with-iconv=shared,/Applications/MAMP/Library
make
make test
make install

Y con esto ya tenemos recompilado el MAMP y listos para funcionar. En cualquiera de las opciones se puede aprovechar para cambiar opciones, añadir o quitar modules, etc…

Blog, Development

jWeather: Modulo de tiempo para Joomla 1.5

Hace mucho que no pongo posts, es lo que tiene la falta de tiempo ;(

En el trabajo estoy preparando la nueva web con Joomla 1.5 y necesitabamos un modulo de tiempo, mirando en http://extensions.joomla.org no encontre ningun modulo que funcionase con Joomla 1.5 y tampoco que mostrara simplemente el tiempo, asi que decidi a hacer yo un modulo. Me puse manos a la obra y he creado un proyecto en SourceForge llamado jWeather que ya tiene su version 0.1.1 y muestra correctamente los iconos del tiempo para 3 dias. El modulo coge la informacion de la pagina weather.com

Tambien he puesto un pequeño tutorial de como coger el codigo de la ciudad y usarlo en el modulo en el wiki de sourceforge

Seguramente la semana que viene colgare una nueva version que venga con mas opciones. Los datos del proyecto son:

Proyecto Sourceforge: http://sourceforge.net/projects/joomlaweather/
Modulo en Joomla: http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,4055/Itemid,35/

Blog, GNU/Linux

PHP5 eAccelerator

Hacia tiempo que queria poner esto, pero nunca me he puesto. eAccelerator es un modulo de php que compila y carga en memoria las aplicaciones php, y con esto consigue que haya una mejora de respuesta y descarga bastante el servidor. Aqui os explico como instalar eAccelerator con PHP5 en una debian.

Lo primero que hay que hacer es descargarse la ultima version de eAccelerator, tambien necesitaremos en el server las utilidades de desarrollo de php

apt-get install php5-dev

La instalacion es realmente muy sencilla, solo tenemos que descomprimir, compiler, instalar y configurar.

  • Descomprimimos
tar xvfj eaccelerator-0.9.5.tar.bz2
  • Compilamos
cd eaccelerator-0.9.5
phpize
./configure
make
  • Instalamos (nos pondra el modulo en la carpeta de modulos de php)
make install
  • Copiamos la configuracion para que la cargue php
cp eaccelerator.ini /etc/php5/conf.d/

Lo primero que hay que hacer en la configuracion es decirle que no es una zend_extension, por lo tanto cambiamos

zend_extension="/usr/lib/php4/eaccelerator.so"

por

extension="eaccelerator.so"

Luego yo en la configuracion he dejado todo como venia por defecto excepto

eaccelerator.log_file = "/var/log/apache/eaccelerator_log"
Blog

Entorno de desarrollo web con Eclipse

Ultimamente estoy mirando de encontrar el mejor entorno de desarollo multiplataforma que me vaya bien para llevar los proyectos de webs. Finalmente el que me ha convencido ha sido Eclipse con los plugins para PHP/HTML/CSS/Javascript y SVN:

  • Aptana: HTML/CSS/Javascript. Update Site: http://update.aptana.com/update/
  • PHPEclipse: PHP. Update Site: http://phpeclipse.sourceforge.net/update/releases/
  • Subclipse: SVN. Update Site: http://subclipse.tigris.org/update_1.0.x

Lo unico que hace falta para instalarse todos los plugins, es bajarse el ultimo Eclipse e ir a “Help->Software Updates->Find and install…” y añadir los “Update Site” de cada uno bajo “Search for new features to install”.

Blog, Development

Roundcube vhost patch

Bueno trasteando con el roundcube para binware he visto que le faltan algunas cosas, aunque esta muy bien dise�ado y funciona mas o menos estable.

Como en squirrelmail uso la opcion de vhost para que los usuarios no tengan que poner el dominio al hacer login al webmail, pues he echo esta opcion en version simple para roundcube (la version de squirrelmail hace muchisimas mas cosas, pero a mi me va bien con esto ya…). Les envie el codigo a los desarrolladores, lo que no se si lo incluiran o no…

Aqui esta el parche para la version 0.1-beta para quien le interese, lleva tambien configuracion para activarlo o no y para decidir si alguien de otro dominio puede hacer login.

--- roundcubemail-0.1beta/config/main.inc.php.dist
2006-02-21 00:29:13.000000000 +0100
+++ roundcubemail.new/config/main.inc.php.dist  2006-02-23
15:28:07.614663680 +0100
@@ -171,5 +171,21 @@
// show pretty dates as standard
$rcmail_config['prettydate'] = TRUE;

+/*
+        Automatic add webserver domain and option to not
let to connect with other domains
+                               Author: Marco
+                               Date: 23/02/2006
+                               Mail: P0L0_notspam_binware.org
+*/
+//Automatic add @domain from webserver domain
+$rcmail_config['adddomain'] = TRUE;
+
+//Number of dots for domain
+$rcmail_config['adddomain_dots'] = 2;
+
+//Dont let login with different domains
+$rcmail_config['adddomain_dif'] = FALSE;
+/* End */
+
// end of config file
-?>
\ No newline at end of file
+?>
diff -Naur roundcubemail-0.1beta/program/include/main.inc
roundcubemail.new/program/include/main.inc
--- roundcubemail-0.1beta/program/include/main.inc
2006-02-21 00:29:13.000000000 +0100
+++ roundcubemail.new/program/include/main.inc  2006-02-23
15:31:08.237204880 +0100
@@ -365,7 +365,42 @@
{
global $CONFIG, $IMAP, $DB, $sess_user_lang;
$user_id = NULL;
-
+
+       /*
+         Automatic add webserver domain and option to not
let to connect with other domains
+               Author: Marco
+               Date: 23/02/2006
+               Mail: P0L0_notspam_binware.org
+       */
+       //Check if we need to add mail
+       if ($CONFIG['adddomain'])
+       {
+               //Save domain
+               $addTempDomain = explode('.',
$_SERVER['HTTP_HOST']);
+               $addDomain = '';
+               for
($i=0;$i

Descargar