Configurar un entorno de desarrollo en php con gnu linux + cherokee + php + mysql + eclipse

Las herramientas que necesitamos para desarrollar en php son: Un servidor web que soporte php, un servidor de base de datos y un editor de texto/ide. Os voy a explicar como configurar todo este mejunje para tener un entorno funcional de desarrollo con el que sacar la máxima productividad.

Lo primero es instalar todas estas aplicaciones, como las que nosotros hemos elegido son cherokee php5 mysql5 y eclipse en debian las instalamos así:

apt-get install cherokee php5 php5-mysql php5-cgi php5-common mysql-server-5.0 mysql-client-5.0 eclipse

Luego hay que echar a andar el servidor web cherokee junto con php5, en cherokee php funciona como un cgi así que editamos el /etc/cherokee/sites-enabled/default y dejamos el apartado correspondiente a php que se encuentra al final del archivo tal que así:

Extension php, php3, php4, php5 {
Handler phpcgi
}
Ahora tenemos que comprobar que el ejecutable php-cgi hace referencia a la versión 5 de php y no a una anterior:

cheli@casa1:~$ which php-cgi
/usr/bin/php-cgi

cheli@casa1:~$ ls -l /usr/bin/php-cgi
lrwxrwxrwx 1 root root 25 2006-11-19 17:09 /usr/bin/php-cgi -> /etc/alternatives/php-cgi

cheli@casa1:~$ ls -l /etc/alternatives/php-cgi
lrwxrwxrwx 1 root root 17 2006-12-20 16:08 /etc/alternatives/php-cgi -> /usr/bin/php5-cgi

Si no es así tenemos dos posibles soluciones, modificarlo mediante la orden «update-alternatives» o indicar directamente en el archivo de configuración que el ejecutable es php5-cgi y no php-cgi que en verdad es un enlace simbolico al que tenemos por defecto.

Ahora comprobamos que funciona creando la típica página de prueba en el directorio por defecto del servidor, /var/www y la llamamos por ejemplo prueba.php con el siguiente contenido:

<?php phpinfo() ?>

Reiniciamos el servidor web para actualizar los cambios con:

/etc/init.d/cherokee restart

Ya podemos cargar en el navegador la siguietne url «http://localhost» con la cual debe salirnos el mensaje de bienvenida de cherokee, si todo ha ido bien y cargamos «http://localhost/prueba.php» entonces debe salirnos el resultado de ejecutar la función phpinfo en el servidor.

De mysql no voy a hablar, ya tocaré el tema si me lo pedis en otro artículo y diré como configurar mysql y administrarlo desde su cliente en modo texto o más fácilmente desde phpmyadmin. Sólo comentar que si teneis configurada una base de datos ahora ya la podreis manipular desde php.

Cuando arrancamos eclipse por primera vez por defecto genera el directorio workspaces dentro del directorio de trabajo($HOME) de nuestro usuario. Al crear los archivos de nuestros proyectos php aquí no vamos a poder configurar nuestro servidor cherokee con un DocumentRoot que acceda a ellos ya que el servidor cherokee se ejecuta con un usuario y grupo que no tiene permiso para acceder al espacio de trabajo de nuestro usuario. Podriamos dar permiso a ese directorio para que si tuviera acceso pero guarrear el directorio de trabajo de mi usuario a mi personalmente no me guta. Lo que vamos a hacer es ejecutar el servidor cherokee con usuario=grupo=nuestro_usuario. Esto nos genera un problema de seguridad bastante importante ya que tener un servicio corriendo con un usuario que tenga acceso a nuestros datos no es que mole mucho, por tanto vamos a tener que protegernos. Una manera sería meter una regla al cortafuegos mediante iptables para que el servidor no sea accesible desde fuera y otra sería configurar cherokee mediante «acls/directiva Listen» para que solo escuche por el localhost, aunque esto no nos va a evitar que si el servidor tiene un problema de seguridad nos puedan hacer ataques en local.

Volvemos a editar el /etc/cherokee/sites-enabled/default y ponemos el DocumentRoot así:

DocumentRoot /home/nuestro_usuario/workspace/

Y en el /etc/cherokee/cherokee.conf cambiamos estas directivas así:

Listen 127.0.0.1

User nuestro_usuario
Group nuestro_usuario

Volvemos a reiniciar el servidor web para actualizar los cambios y listo.
Por último solo nos queda configurar un par de añadidos de eclipse para que nos soporte php y alguna cosita más:

Eclipse ya trae soporte para el sistema de control de versiones cvs, si utilizamos subversion también tendremos que bajarnos un añadido.

Básicamente todos los añadiso se instalan igual, hay que ir al directorio de instalación de eclipse /usr/lib/eclipse/ y descomprimir el archivo de forma que se desplieguen todos los archivos por los directorios (plugins y demás) necesarios. El resultado final es este:

phpeclipse

Y eso es todo, espero que os sea útil.

Cheli

¿Fresqui caido?

Hace un rato he intentado entrar a fresqui como cada día y me encuentro con este mensaje de drupal:

Fresqui caido

Lo he vuelto a intentar al minuto y ya ha funcionado, pero no deja de ser curioso que tengan problemas con el servidor de bases de datos.

Cheli

Propuesta de logo

Mi amigo Pablo siempre me está diciendo que me va a hacer un logo nuevo, el otro día el muy cabroncete me dice -Toma una sorpresa, ya tengo el logo- y me mandó esto:

Cheli Software Libre

Este se piensa que tengo una página de contactos, que graciosín.

Cheli

Religión y software … no libre

¡¡Y luego que digan que el software libre es una religion!!, el privativo si lo es y sinó ojo a estos enlaces:

El santo rosario

Virtual rosary

Me ha entrado la risa tonta al leer a un tipo en un foro que se quejaba porque no podía abandonar windows ya que estos dos programas y otro para escuchar música y ver imágenes de la naturaleza no le funcionaban en wine.

Pues eso chicos, que si alguien los hace andar en wine que avise que ya que nos llaman evangelizadores (del software libre), que se note jajajajajaja.

Cheli

Edonkey vs bittorrent

Desde hace un par de días utilizo más bittorrent que edonkey y me pregunto porqué la gente sigue utilizando más edonkey si bittorrent es mucho más eficiente.

Las ventajas y desventajas de cada uno todos las conocemos pero las resumiré rápidamente.

El funcionamiento de edonkey consiste en que tu te conectas a un servidor, empiezas a descargar y cuanto más das, más puntos tienes para que te den a ti. Dependes mucho de este factor y en consecuencia no empiezan las descargas hasta pasado un cierto tiempo en el que has ido dando, gracias a esto cada vez se optimizan más las descarga al entrar antes en cola de tus servidores (tus pares).

Bittorrent no funciona así, en bittorrent existe un tracker que es el que va a gestionar la compartición del archivo entre los distintos «clientes». Te descargas un archivo .torrent que tiene toda la información necesaria para conectarse al tracker que a su vez nos pondrá en contacto con los demás «clientes». He entrecomillado clientes porque existen de distintos tipos, principalmente dos que son las semillas y los clientes, los primeros tiene una copia completa del archivo y los segundos no. Luego están las sanguijuelas que son clientes que chupan más de lo que dan, por culpa de estos los trackers se convierten en una cagada ya que no hay nadie que comparta.
Las ventajas de bittorrent es que si enganchas un buen tracker empiezas a descargar de inmediato y obtienes tasas de transferencia altísimas desde un principio, como si se tratara de un ftp.

He probado muchos clientes de bittorrent libres, ahora estaba probando ktorrent pero creo que voy a volver a azureus, lo malo de azureus es que está hecho en java y chupa bastantes recursos, sobretodo memoria pero me parece mucho más completo y obtengo mejores resultados.

Todas las páginas que he encontrado para descargar torrents no me han gustado, están llenas de publicidad y no encuentras buenos trackers, aún así me quedo con todocvcd porque hay muchísimos torrents y los trackers son bastante decentes.

Os animo a todos los que todavía no utiliceis bittorrent como vuestro protocolo p2p favorito a que le echeis un vistazo, no os arrepentireis.

Cheli

Es noticia que seamos noticia

Leo en barrapunto que ha salido en Slashdot una noticia sobre la migración a software libre en la administración de extremadura y el paso a OpenDocument como estandar de documento. No es la primera vez que este tipo de noticias se dan en los noticieros geeks españoles, la noticia es que seamos noticia en otros sitios del mundo.

Ya pasó algo parecido cuando salió el cambio tecnológico que estaba dando Extremaduroa migrando al software libre en el New York Times si no recuerdo mal. Quien no ha leido cosas en bitácoras como «me han barrapunteado»

Me ha rayado el hecho que hagamos noticia el ser noticia, menudo algoritmo recursivo. Que poco imaginativos somos que no somos capaces de generar noticias nuevas, esto es muy típico en las bitácoras donde hay gente que solo se dedica a reeditar noticias de otros sitios.

Cheli

Hasta al coche fantástico se le pican los bajos

Dicen los de comunicando que tengais cuidado con vuestros gadgets este verano que el agua y la arena es mu mala para los cacharros, ni el coche fantástico se salvaba. Joder, pero la electrónica de los barcos aguanta de maravilla el agua saladita del mar, ¿por qué no hacen todos los chismes igual que estos para que no tengamos problemas al ir a la playa?. Cuestión de costes, seguro.

Cheli