Memorias de un desarrollador

Instalando un entorno de desarrollo PHP en Ubuntu 10.10

A continuación vamos a ver como instalar un entorno de desarrollo para PHP en Ubuntu 10.10. El objetivo es obtener un equipo de trabajo, lo más cómodo posible y que permita separar los entornos de un proyecto a otro. Además añadiremos algunos paquetes extra que no están directamente relacionados con el desarrollo, pero si con la utilización del equipo. Para la realización de este tutorial, suponemos que se trata de una instalación limpia de ubuntu10.10 en inglés. (nota: intenté probar con una 11.04 pero exploto, creo que aún es pronto ... ). Lo primero, actualizar:

sudo apt-get update
sudo apt-get upgrade

Paquetes y programas de ámbito general

Vamos a empezar instalando algunos paquetes que considero imprescindibles, quizá no están directamente relacionadas con el desarrollo en PHP, pero lo mejor es crear un espacio de trabajo amigable que favorezca la productividad.

Pongamonos manos a la obra, necesitas añadir algunos repositorios extra:

sudo add-apt-repository ppa:shutter/ppa
sudo add-apt-repository ppa:jd-team/jdownloader
sudo add-apt-repository ppa:bisigi/dev
sudo echo "deb http://ppa.launchpad.net/nautilus-dropbox/ppa/ubuntu jaunty main" >> /etc/apt/sources.list
sudo echo "deb-src http://ppa.launchpad.net/nautilus-dropbox/ppa/ubuntu jaunty main" >> /etc/apt/sources.list
sudo apt-get update

Ahora instalamos los paquetes:

sudo apt-get install -y manpages-es-extra ubuntu-restricted-extras rar unzip sun-java6-jre sun-java6-plugin virtualbox-ose gnome-do jdownloader shutter bisigi-themes nautilus-dropbox skype

Configuramos la máquina virtual por defecto:

sudo update-alternatives --config java

Y elegimos la opción de la máquina virtual propietaria. (/usr/lib/jvm/java-6-sun/jre/bin/java) Una sugerencia es añadir guake (lo instalaremos despues), empathy y quizá rhythmbox a las aplicaciones que se lanzan al inicio, System->Preferences->Startup Aplications ¿No me digas que no las usas siempre? Lo mejor es añadir al inicio las aplicaciones que usas el 90% de las veces que entras en el sistema, ojo no te pases, estás recargando el inicio de sesión.

Navegadores

En ocasiones he instalado multitud de navegadores extra para probar las aplicaciones en diferentes navegadores y versiones. A la hora de la verdad, no los uso, por lo que instalo uno más y listo.

sudo apt-get install -y chromium-browser

Firefox es mi navegador por defecto, pero es el que es por sus plugins, yo recomiendo usar los siguientes:

He añadido los enlaces a la página de cada uno, para que puedas instalarlos fácilmente, también puedes añadirlos desde Firefox->add-ons->get-add-ons.

Editores de texto y herramientas de desarrollo

¿Que es un entorno de desarrollo sin IDEs ni editores de texto?

Con estos y gedit, trabajo perfectamente, no necesito nada más, vamos a instalarlos:

sudo apt-get install -y guake vim subversion

El resto puedes descargarlos desde los enlaces que facilito. Para poner vim como editor de texto por defecto.

sudo update-alternatives --config editor

nota: Me comentan que phpmyadmin se encuentra disponible en los repositorios, es cierto, pero suelen tener una versión bastante desactualizada. Personalmente me gusta bajarme la última versión y tener opción mas tarde para ajustar la configuración por ejemplo para atacar diferentes bases de datos remotas. En cualquier caso muchos usuarios utilizan el paquete phpmyadmin, ya que tiene como dependencias el resto de paquetes necesarios para un entorno LAMP.

Servidores

sudo apt-get install -y mysql-server mysql-client apache2 php5 php5-curl php5-gd php5-cli php5-mcrypt php5-mysql php5-xcache php5-xdebug php-doc

Activamos un par de módulos de apache.

sudo a2enmod vhost_alias
sudo a2enmod rewrite

Configuración del entorno

NetBeans permite crear "grupos" de aplicaciones. Lo mejor es crear un grupo nuevo para cada proyecto, esto me permite tener los conceptos separados. Si dos proyectos son parecidos, o están muy relacionados entre si, mantenlos en el mismo grupo, para poder pasar fácilmente de uno a otro. Para cada proyecto, creo un host, por ejemplo:

sudo echo "miproyecto.local 127.0.0.1" >> /etc/hosts

Reinicia los navegadores para aplicar la nueva configuración. Ahora para cada proyecto necesitas crear un virtual host. Crea un fichero miproyecto.local en /etc/apache2/sites-available con el siguiente contenido.

      ServerName miproyecto.local
      DocumentRoot "/home/ale/NetBeansProjects/miproyecto/trunk"
      DirectoryIndex index.php

        AllowOverride All
        Allow from All

    CustomLog     /var/log/apache2/access.miproyecto.log combined
    ErrorLog      /var/log/apache2/error.miproyecto.log

Y para activarlo:

sudo a2ensite miproyecto.local

Utilizar virtual host para cada entorno de desarrollo te permite tener entornos de desarrollo aislados, y con la misma configuración que tus entornos de producción. Además añado los ficheros de configuración al subversión, por ejemplo en /config/sites/ facilitando la tarea de despliegue.