Setup de ambiente de desarrollo (ubuntu / debian)

Instalar los programas básicos

Todos los desarrolladores de portales Drupal de axai tendran que tener instalado una serie de programas para poder correr de manera satisfactoria el CMS. Apache o nginx como servidores web. MySQL o MariaDB como base de datos y PHP instalados. Nosotros utilizamos nginx porque es más ligero y rápido que apache. Si tienes la curiosidad, también puedes utilizar MariaDB en lugar de MySQL, aunque estas instrucciones usas mysql al instalar, pero lo demás es igualito para ambos. Y además necesitas instalar git que se utiliza para descargar muchos programas y además para llevar un control de versiones de nuestros sitios de drupal. Y finalmente también necesitas un buen editor de texto. Te recomendamos vi (este es un buen tutorial: http://www.gentoo.org/doc/es/vi-guide.xml), pero hay otros como gedit (si instalaste gnome o ubuntu) o scite (si instalaste lubuntu u otro sistema operativo ligero).

En Ubuntu es necesario ejecutar los siguientes comando en consola para instalarlos. Para tus sitios de desarrollo te recomendamos poner una contraseña en blanco para mysql. Pero nunca hagas esto en producción:

sudo apt-get install nginx
sudo apt-get install mysql-server
sudo apt-get install php5-cli php5-fpm php5-mysql php5-gd php5-curl php5-sqlite php5-tidy php5-imagick
sudo apt-get install git tig
sudo apt-get install vim-gtk

PHP por default viene con un límite de memoria muy pequeño (16MB). Por lo que es necesario aumentarlo para casi cualquier aplicación. Te recomendamos poner un límite de 128M o más en tu computadora editando los archivos php.ini que puedas tener en /etc/php5/fpm o /etc/php5/cli o /etc/php5/cgi y cambiando la variable memory_limit.

Y finalmente solo asegúrate que mysql, nginx y php-fpm estén corriendo

sudo /etc/init.d/nginx status
sudo /etc/init.d/mysql status
sudo /etc/init.d/php5-fpm status

Si alguno no está corriendo, puedes cambiar status por start.

Drush

Para ayudar al desarrollo de portales en drupal utilizamos el programa drush que se puede descargar desde https://github.com/drush-ops/drush. Recomendamos utilizar la instalación manual:

cd /home/usuario
git clone https://github.com/drush-ops/drush.git
sudo ln -s /home/usuario/drush/drush /usr/bin/drush

Para comprobar que drush corre correctamente lanza el comando drush --version

Estructura para carpetas de drupal

Los sitios de drupal los podemos poner todos en un mismo folder. La estructura que recomendamos es:

/home/usuario/work
  /drupal-sites
    /sitio1
      /drupal
    /sitio2
      /drupal
    /sitio3
      /drupal

Esto para que cada carpeta de sitios tenga una carpeta drupal con la instalación de drupal, y además fuera de la carpeta de drupal puedan existir backups de la base de datos, archivos de diseño, documentación y otros archivos que no necesitan verse desde el sitio web. Vamos a crear esta estructura. El comando mkdir -p crea carpetas y si la carpeta padre no existe la crea también. Y después podemos descargar ahí la última versión de drupal:

mkdir -p /home/usuario/work/drupal-sites/sitio1
cd /home/usuario/work/drupal-sites/sitio1
drush dl drupal

Al final debes tener una carpeta drupal-7.x. Te recomendamos renombrar esa carpeta como drupal para facilitar los siguientes pasos (mv drupal-7.x drupal).

Configurar nginx

Enseguida se tiene que configurar drupal en nginx. Para esto podemos utilizar la configuración de https://github.com/jackbravo/simple-drupal-nginx

cd ~/work
git clone https://github.com/jackbravo/simple-drupal-nginx.git

Ahora ya podemos crear archivos de configuración para cada sitio de Drupal que queramos instalar. El primero puede ser así. Vamos a crear un archivo llamado /etc/nginx/sites-available/sitio1.conf con el siguiente contenido:

server {
  listen       80;
  server_name  sitio1;
  root         /home/usuario/work/drupal-sites/sitio1/drupal;
  include      /home/usuario/work/simple-drupal-nginx/drupal.conf;
}

Como podrás ver, el sitio tiene el nombre (server_name) de sitio1. Para que tu computadora pueda abrir ese sitio, necesitas decirle que cuando escribas sitio1 en tu navegador use la IP de tu computadora, para esto hay que editar el archivo /etc/hosts y agregar esta línea:

127.0.0.1 sitio1

El archivo de configuración de nginx que creamos está en la carpeta sites-available. Para habilitarlo hay que hacer dos cosas. 1) crear un symlink a la carpeta sites-enabled y 2) reiniciar nginx:

sudo ln -s /etc/nginx/sites-available/sitio1.conf /etc/nginx/sites-enabled/sitio1.conf
sudo /etc/init.d/nginx reload

Recuerda editar tu archivo /etc/hosts cada que agregas un nuevo sitio local.

Base de datos

Finalmente, antes de instalar necesitas tener una base de datos. Para poderlo hacer sigue los siguientes comandos dentro de mysql:

mysql -u root
> create database sitio1; 
> grant all on sitio1.* to usuario1@localhost identified by 'password del sitio 1';
> exit;

Listo, ya puedes entrar a tu navegador a http://sitio1 y continuar instalando tu primer sitio de drupal.

Opcional. Instalar fish

Fish es una consola que puede reemplazar bash (la consola por default en linux). Tiene varias opciones como autocompletado y un historial de búsqueda muy chido. Este programa se compila para instalarse. Para todos los programas que compiles te recomendamos usar la carpeta /home/usuario/work/build

cd /home/usuario/work/build
git clone https://github.com/fish-shell/fish-shell.git
sudo apt-get install build-essential autoconf libncurses5-dev libncursesw5-dev
cd fish-shell
autoconf
./configure
make
sudo make install

Para utilizar fish como tu consola principal necesitas agregarla al archivo /etc/shells. Ahí agrega esta línea:

/usr/local/bin/fish

Y luego corre el siguiente comando para cambiar tu consola (chsh o change shell):

chsh -s /usr/local/bin/fish

Instalando LedgerSMB en ubuntu 12.04 LTS

Tags: 

Basado en http://sourceforge.net/p/ledger-smb/code/HEAD/tree/branches/1.3/INSTALL

  1. Bajar la última versión de ledgersmb. Yo la puse en la carpeta: /var/www/vhosts/ledger.axai.mx/public

  2. Instalar postgres:

    sudo apt-get install postgresql-9.1 postgresql-client postgresql-contrib

  3. Instalar dependencias de perl, lo que viene en el archivo INSTALL +

    sudo apt-get install libmodule-install-perl libio-stringy-perl fcgiwrap

Fcgiwrap se usa para correr perl. Este artículo fue esado como referencia: https://library.linode.com/web-servers/nginx/perl-fastcgi/ubuntu-10.04-l...

Hay otras opciones para correr perl en nginx:

Pero esta parece ser la más sencilla.

  1. Instalar y configurar nginx

    sudo apt-get install nginx

configurar con:

server { listen 80; server_name example.com; root /var/www/vhosts/example.com/public;

location / {
    index  index.html index.htm;
}

location ~ \.pl$ {
    gzip off;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    fastcgi_index index.pl;
    fastcgi_param SCRIPT_FILENAME /var/www/vhosts/example.com/public$fastcgi_script_name;
}

# Deny access to configuration and other nasty places.
location ~ \.conf$ { deny all; }
location /users { deny all; }
location /bin { deny all; }
location /utils { deny all; }
location /spool { deny all; }
location /templates { deny all; }
location /LedgerSMB { deny all; }

}

  1. Ahora, en la carpeta de ledgersmb, edita el archivo ledgersmb.conf y cambia la carpeta de contrib a su dirección en postgres 9.1: /usr/share/postgresql/9.1/extension.

  2. Listo, reinicia nginx y entra a example.com/setup.pl

Una aventura extraordinaria (Life of Pi)

Hace poco vi la película de Life of Pi. Y la verdad me gustó mucho. Primero, porque el personaje es hindú, cristiano y musulmán. Creo que todos deberíamos ser más tolerantes con todas las religiones, y más aún, entender que todas hablan de lo mismo, son diferentes maneras de entender el mundo y a Dios y todas guardan algo de verdad. Me da gusto ver una película que también propone esto a más gente.

Sobre el asunto de la religión, para mi es muy significativa la parte final:

- cuál historia te gustó más?
- la primera
- y lo mismo sucede con la religión

Mi opinión es que el personaje tenía dos maneras de interpretar la misma historia. La segunda historia que cuentan en la película es la historia cruda, sin moral ni enseñanza, la vida tal cual es. La primera, era su interpretación a la luz de sus creencias, de la enseñanza que había sacado del hecho trágico de estar en un naufragio y perder a toda su familia. El darle una interpretación no hace a la segunda falsa o que nosotros queramos ocultarla u olvidarla (aunque a veces sí pasa así con la religión, olvidamos también). Pero tampoco la primera es una historia inventada de ciencia ficción que jamás sucedió. Es una interpretación, es una manera de ver la vida. Ambas son verdaderas.

Lo mismo sucede con la religión. Es nuestra interpretación de la vida. Pero es importante conocer ambas partes, reconocer nuestra interpretación religiosa y también la historia del mundo, saber la diferencia, pero no enterrar una por darle valor sólo a la otra. Y hoy en día estamos en medio de un doloroso proceso de combinar ambas partes, pero es un proceso que acaba de empezar hace menos de 100 años. La evolución, los nuevos estudios históricos sobre Jesús y la Biblia y muchas otras ondas "nuevas" (tienen como 50 años algunas, pero apenas nos vamos enterando muchos), son nuestra manera de descubrir lo que realmente pasó, pero como siempre habíamos creído que la primera historia era la única y verdadera a algunos nos da entonces por tacharla como un error completamente y a otros por negar los avances de la ciencia.

Demostración de VIM para edición rápida de archivos

Tags: 

Esta es una demostración rápida de algunos comandos de VIM para editar un archivo. Algunos de los comandos que utilicé:

* dd - borrar una línea
* Ctrl-v - selección en bloque
* v - selección normal
* gg - ir al principio del archivo
* G - ir al final del archivo
* f[letra] - mandar el cursor a la primer ocurrencia de la [letra]
* $ - ir al final de la línea
* 0 - ir al principio de la línea
* w - avanzar una palabra (word)
* b - ir hacia atrás una palabra (back)
* q[letra] - para empezar a grabar un macro en la [letra]
* q - otra vez para dejar de grabar un macro
* @[letra] - para ejecutar un macro (presionas : y luego escribes normal @[letra] para ejecutar el macro en una selección de texto)
* x - borrar caracter actual
* / - buscar

Sobre Democracia 2.0 y el wikipartido

Tags: 

Acabo de leer sobre Democracia 2.0 en un post de la cofradía. Como no me pude registrar ahí, pongo mis comentarios en este post. Democracia 2.0 al parecer es una iniciativa para formar una plataforma tecnológica democrática para un nuevo partido político (posiblemente llamado democracia 2.0). La idea me gusta mucho.

Ya antes había escuchado de una idea similar, por parte del wikipartido y me lamentaba que ambas organizaciones no funcionaran de manera conjunta. En el post de la cofradía la gente de D20 responde esta pregunta. En lo personal, cuando supe del wikipartido, también despertó mucho mi interés y me registré, pero creo que con ellos ha faltado mucho la comunicación. Mi sugerencia sería poner inmediatamente un blog, con RSS, subir el código de sus desarrollos a github o algún otro repositorio público y constantemente estar haciendo anuncios, para que no pase lo mismo. Si tienen reuniones como la del DF, poner una minuta en el blog, para los que no podemos asisitir porque somos de ciudades diferentes. Comunicación.

Twitter puede ser un medio de comunicación también, pero a mi modo de ver siempre debe ir acompañado de un blog. Twitter no permite el mismo tipo de discusiones que pueden surgir desde un blog, y es fácil que información importante se pierda en el mar de tweets que se publican diariamente.

Suerte!

Sobre la fe

¿Qué es la fe? La fe muchas veces es tomada como sinónimo de esperanza o convicción, normalmente en alguien, particularmente en Dios. Una de las definiciones que me parecen más desafortunadas es la de "creer en algo aunque no tengas pruebas." Acepto creer en algo aunque no lo veas, pero ¿sin tener pruebas?

Creo que la fe es la confianza en aquello que ya has experimentado. En debates seguido se utiliza el ejemplo de la persona que tiene fe en que su esposa lo quiere. Esta fe o confianza viene de la experiencia, la persona conoce a su esposa, lo mismo debería pasar con otros tipos de fe. Que fuera sustentada en base a experiencias. Así entonces, para tener una buena fe, la tendrías que ponerla a prueba, criticarla, hacerle experimentos, para desechar aquello que no compagina con tus experiencias y reafirmar aquello que sí. Así también es doblemente cierto el dicho de que la fe sin obras está muerta (Santiago 2:14-19), porque para tener fe tendrías que obrar.

Otra cita que viene al caso es la de Marcos 16:1-8. Es la conclusión del evangelio de Marcos, y el chiste es que no concluye con ninguna aparición de Jesús resucitado (después se le agregaron algunas como un "apéndice canónico"), sino que concluye simplemente con que “Él va delante de ustedes a Galilea. Allí lo verán, tal como les dijo.” Te pueden decir mil historias de Jesús resucitado, pero hasta que no sigas sus pasos, no imites su vida, no seas su discípulo, no lo experimentarás.

Esto nos asusta un poco, porque luego, estamos aceptando que inicialmente podríamos tener fe en cosas que no son ciertas, y nos hace falta comprobarlas. Creo que este es el caso. Muchas veces creemos cosas que no tienen ningún fundamento.

Por eso tampoco me gustan mucho textos como el Youcat. Por su tono definitivo. Ahí te dicen que cosas están bien y que cosas están mal. Ya no necesitas razonar nada por ti mismo. O de actividades para reafirmar la fe en donde repasamos el credo. Creemos que explicando el credo, de donde proviene y cómo se formo, ya reafirmamos nuestra fe. Cuando en realidad simplemente informamos, pero el juicio final de si realmente creo todo aquello que se dice en él es cierto o no sigue sin realizarse. No hemos razonado, probado o experimentado nada. Decimos cada domingo que creemos en la Santa Iglesia Católica, cuando en realidad todos sabemos que no es santa, y lo justificamos diciendo que en realidad solo está en camino de la santidad.

La fe es tu teoría de vida, como crees que funciona el mundo y tu relación con él. Necesitas experimentar para ver si tu teoría es correcta o si necesitas formular nuevas teorías.

La fe debe ser razonable, si no, se convierte en superstición.

Debuguear PHP con vim y xdebug

Tags: 

UPDATE: cambié el plugin de vim que se utiliza para debuguear por uno más nuevo mantenido en github.

El día de hoy estuve probando varios IDEs para PHP, porque quería debuguear un script con XDebug en lugar de utilizando echos, krumos y exits. Es decir, me quería ver más fresón. Y me daba flojera utilizar emacs que es lo que antes he descrito que puedes utilizar para debuguear PHP. Así que me bajé y probé:

  • NetBeans. El más lento de los 3.
  • PHPStorm. El más fácil de configurar pero con la interfáz más rara.
  • Eclipse. El más difícil de configurar, por mucho.

Debo decir, que fue sumamente penoso y laborioso. Configurar cada uno de estos programas tiene su chiste, en especial eclipse fue un PAIN IN THE ASS. PHPStorm y NetBeans fueron más sencillos, pero vaya, que feas son los programas de java. Además de lentos. Lo peor de todos estos programas es configurar cada proyecto que quieres debuguear. Cuando debugueas con emacs y con vim simplemente lanzas el debugger y listo, abre cada archivo que vas necesitando sin tanta faramalla, así sean archivos de distintos proyectos (como cuando usas drush con tu proyecto de drupal). Así que al final desistí de estos "IDEs modernos" y regresé a vim.

Debo decir que debuguear con vim ha sido muy placentero. Entonces, vamos a los pasos para instalar:

  1. Instalar XDebug. Hoy en día si usas ubuntu esto es de lo más sencillo: sudo apt-get install php5-xdebug. Si usas otro sistema operativo, buena suerte, seguro hay más tutoriales en google =). También recuerda aumentar el timeout the php-fpm. En nginx esto es con fastcgi_read_timeout 600;
  2. Configurar xdebug para que acepte conexiones remotas poniendo esta línea en tu php.ini o en el caso de ubuntu la puedes poner en /etc/php5/conf.d/xdebug.ini: xdebug.remote_enable=on
  3. Instalar el cliente de XDebug para vim. Que simplemente lo bajas y pones archivos debugger.vim y debugger.py en tu carpeta .vim/plugin

Y listo, cuando quieres debuguear simplemente preparas vim con F5 para que esté esperando conexiones de XDebug en el puerto 9000. Tienes entonces 5 segundos para lanzar tu script en la consola o entrar a la página de PHP que quieres debuguear. Si lo haces desde el explorador simplemente es cuestion de agregar ?XDEBUG_SESSION_START=1 al final de tu ruta o instalar la extensión de firefox de easy Xdebug para no tener que escribir esto sino simplemente apretar un boton para cuando quieras debuguear.

El debugger de vim tiene los shortcuts en una de sus ventanas así que es muy sencillo de aprender. Los breakpoints funcionan muy bien, e inspeccionar variables también, así que no hay excusas para no usar xdebug ahora.

Si estas usando xdebug con fpm o fastcgi en el puerto 9001 (como describo en un post anterior), entonces necesitas configurar el plugin de vim para escuchar este puerto poniendo esta línea en tu .vimrc:

let g:debuggerPort = 9001

Saludos!

Image: 

DrupalCamp Panamá 2012

Tags: 

El evento más importante de Drupal en Centroamérica será realizado los días 11, 12 y 13 de Octubre de 2012, en el Ciudad del Saber, Panamá.

Este evento tendrá muchas conferencias y talleres dictadas por reconocidos y experimentados drupaleros provenientes de varios países de América Latina y Estados Unidos. Mi amigo Elias junto con algunos otros mexicanos estarán ahí ;-).

Se espera la presencia de más de 250 participantes de toda América Latina con los que podrás compartir, aprender y generar nuevos conocimientos. Si deseas proponer una sesión en el DrupalCamp Centroamérica 2012, puedes realizarlo en http://panama2012.drupal-centroamerica.org/node/add/session antes del 28 de Septiembre del 2012.

También es posible patrocinar el evento, convertirse en patrocinador del Drupalcamp Centroamérica – Panamá 2012 es una gran oportunidad para apoyar el proyecto Drupal y promover tu organización dentro de la comunidad. Además, es una oportunidad para conectar con los clientes, socios y proveedores de servicios en Panamá y Latinoamérica.

El evento está siendo co-organizado entre la comunidad de Drupal Centroamérica Y la comunidad de Drupal Panamá.

Para registrarse en el evento visitar el sitio web: http://panama2012.drupal-centroamerica.org

Enemigo público no. 1: La iglesia católica

Tags: 

Este texto publicado por un amigo en facebook ya es viejito, pero un amigo no tiene facebook y lo publico aquí para que lo pueda ver =).


En estos últimos días, con la visita del Papa, líder de la iglesia Católica, han surgido muchas protestas que han llamado mi atención, tanto por la falta de fundamento como por la falta de información al realizar las mismas acusaciones de siempre... "El Papa protege a los pederastas"... "La visita del Papa costo X$ de millones de pesos y hay Tarahumaras muriendo de hambre"... Y yo como católico en lo personal no me vi ofendido, la libertad de expresión es algo por lo que estoy a favor.

Pero algo con lo que definitivamente no estoy de acuerdo, es con las acusaciones sin sentido y vacias, realizadas por esta extraña "moda" de culpar a la iglesia de aparantemente todos los males sobre la tierra y de la hipocresía de las personas al criticar las vestimentas de alto precio del Papa. La Iglesia, al ser una institución humana tiene errores humanos, así que les invito a que lean el siguiente texto, no a modo de defensa ni de tomar partido, sino de ampliar un poco mas alla de los posts de 9gag y Facebook, la visión de las cosas sobre este tema.

Quiero empezar con este ultimo punto. ¿De verdad somos tan hipócritas para lanzar una piedra y luego esconder la mano? ¿Como criticar a alguien que usa tunicas caras y demás acusaciones, cuando por lo menos el 60% de las personas que utilizan Facebook, terminaron la preparatoria, probablemente tienen un iPod o un genérico, tienen ropa para vestirse, transporte propio, comida todos los días, televisión, dinero para salir... entre otros? Lanzo la siguiente pregunta: ¿Nosotros no podríamos mandar todo ese dinero extra a los tarahumaras? No tendría porque haber problema, ¿cierto? Sin embargo aqui seguimos nosotros con nuestras comodidades, nuestra comida, nuestra educación, nuestros coches y casas, cuando son los misioneros CRISTIANOS, los que llevan no solo apoyo económico sino moral a estas comunidades de pobreza extrema.

La raza humana, tiende a buscar una causa para todo, explicaciones lógicas que llenen ese vacío de comprensión sobre las cosas. Y algo que nosotros como humanos mexicanos nos encanta hacer es encontrar un chivo expiatorio para todos nuestras frustraciones y sentimientos de impotencia por la situación de nuestro país (sobre todo la económica). Es por eso que cuando se escucha que el Papa viene a México y que habrá un gasto fuerte, todo México se hace de palabras en contra de esto, por la idea de que pagar con impuestos mexicanos la visita de un líder religioso.

Sin embargo, no olvidemos que también es representante de un estado, el Vaticano y que en anteriores ocasiones, cuando líderes políticos vienen a México, también han sido solventados los gastos por nada mas y nada menos que el mismo pueblo mexicano; Obama, Bush, Sarkozy, el mismo Fidel Castro... Y sin embargo ahí no se escuchan protestas, cuando estas visitas han costado no en precio similar a la de Benedicto XVI pero si alrededor de 30,000,000 por visita. Lo que me lleva al siguiente punto:

La visita del Papa a Guanajuato tuvo un costo aproximado de 126mdp que es donde todos los protestantes brincan de sus sillas para alzar la voz. Sin embargo, no ven que el derrame económico provocado por los 3.4mdturistas alcanzo la cantidad de 524mdp, lo que cualquier persona con un poco de conocimiento básico de aritmetica reconoce como una clara situación de retorno de inversión y utilidad para el país.

Sin embargo, no se detienen las cosas ahí, el incesante tema de Marcial Maciel, es algo que es tomado y abordado sin conocimiento alguno por las personas de las leyes internas de la Iglesia.

La Iglesia como tal, posee un sistema de relgas internas llamado, Derecho Canónico, sistema separado por completo del sistema judicial del Estado (cosa con lo que en lo personal difiero enérgicamente y creo que debería aplicar igual). Sin embargo, se comenta mucho, que el Papa Juan Pablo II albergó y "encubrió" a Maciel, cuando lo que se aplicó en realidad fué una de las penas máximas del Derecho Canónico sobre Maciel; la reclusión, aislamiento y la revocación del sacerdocio. ¿Pero porque nadie se enteró? El encubrimiento como palabra significa ocultar algo cuando se es preguntado, sin embargo, no había nada que indicara al Papa a vociferar al mundo sobre los crimenes de Maciel. La ley de la Iglesia se aplicó y Maciel recibió el castigo. Pero nunca se encubrió. ¿Debería haber sido juzgado bajo la ley del estado? Probablemente. ¿El derecho canónico debería reformar estas áreas? Por supuesto! Pero en ningún momento se le pasaron por alto sus acciones.

Son estos algunos datos y mas, bajo los que la Iglesia como institución se ha visto sometida a sobrellevar. Sin embargo, es importante que antes de abordar el barco de críticas e ira hacia la Iglesia o cualquier cosa, institución, candidato o empresa, se conozcan y se investiguen un poco mas que lo que postean en Facebook y en redes sociales. Recuerden que las noticias, son 100% manipulables y pueden o pueden no ser verdad en casos como estos.

Como ciudadano les invito a que se informen antes de cualquier otra cosa y que separen los escándalos mediáticos de los verdaderos contenidos y temas, en este caso, el mensaje de Paz que tenía el Papa como misión en México.

Por: Miguel Guadarrama

Debuguear php con emacs, xdebug y geben

Tags: 

Una de las cosas más útiles que puedes aprender para debuguear un programa en PHP es a usar xdebug. Y la verdad no es nada complicado.

Paso 1. Instalar xdebug. Eso lo puedes hacer con un simple sudo apt-get install php5-xdebug. Lo malo es que en ubuntu 10.04 (nuestros servers de prueba) se instala una versión viejita. Se necesita la versión 2.1 para que funcionen cosas padres como inspeccionar variables. Instalarlo en ubuntu tampoco es difícil.

cd ~
sudo apt-get install php5-dev
wget http://www.xdebug.org/files/xdebug-2.1.3.tgz
tar -xzf xdebug-2.1.3.tgz
cd xdebug-2.1.3
phpize
./configure --enable-xdebug
make
sudo make install

Paso 2. Configurar xdebug en tu php.ini. En ubuntu para el cli y apache esto es en una carpeta como /etc/php5/cli/php.ini:

xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_port=9001 # el puerto default es 9001, pero como uso fpm ese puerto ya está ocupado

Paso 3. Instalar un cliente para xdebug como geben para emacs (lo puedo usar en mi servidor directamente). Estoy suponiendo que ya tienes emacs instalado:

wget http://geben-on-emacs.googlecode.com/files/geben-0.26.tar.gz
tar xzf geben-0.26.tar.gz
cd geben-0.26
make
sudo make install

Y agregar estas líneas a tu .emacs:

(add-to-list 'load-path "/usr/share/emacs/23.1/site-lisp/geben") ; Geben directory
(require 'geben)

Y listo, ahora para debuguear un programa de php de tu cli simplemente:

  1. inicia emacs y luego corre C-u M-x geben. Puerto 9001.
  2. corre un programa de php en otra consola
  3. utiliza geben en todo su esplendor. Para ver qué shortucts tiene geben simplemente presiona '?'

Cuidado!!! No lo uses en tu servidor de producción, porque el desempeño baja considerablemente.

Referencias:

Image: 

Pages

Subscribe to La gaceta de la cabeza RSS
Drupal theme by Kiwi Themes.