martes, 8 de noviembre de 2011

Ubuntu: Servidor LAMP, Netbeans y XDebug

La fuente original de esta información es la siguiente:
http://www.techytalk.info/ubuntu-netbeans-lamp-with-xdebug-nonroot/

Yo solo me encargué de traducirla. Bueno imaginemos esta situación: Estamos programando un proyecto en php, para ello escogemos Ubuntu (o cualquier otra distribución linux basada en Debian) y como IDE escogemos a Netbeans. Pues bueno la cuestión es que como principiantes en php muchas veces cometemos inocentes errores, y nos hacemos añicos buscándolos y buscándolos, (:O) a tal punto de querer destrozar nuestra pobre computadora. Y nos preguntamos, ¿Habrá alguna manera más fácil de corregir nuestro código? ¿Podemos ir ejecutando línea por línea, como lo hacíamos en Visual Studio? Pues la respuesta es XDebug, un depurador para php. En este Tutorial, vamos a aprender a configurar un ambiente de desarrollo en php, utilizando como Sistema Operativo a Ubuntu, un servidor LAMP (Linux Apache MySQL PHP), Netbeans y Xdebug para depurar nuestros códigos.


La primer cosa que necesitamos hacer es instalar el servidor LAMP. En las distribuciones basadas en Debian esto se hace fácilmente, usando tasksel para seleccionar todos los paquetes necesarios para un servidor LAMP típico. Así lo primero que haremos será instalar tasksel. Digitamos en una terminal:

sudo apt-get install tasksel

Lo siguiente es usar tasksel para instalar el LAMP server. Lo hacemos de esta manera:

sudo tasksel install lamp-server

En la mitad de la instalación, tasksel te va preguntar tu contraseña de root de MySQL. Es importante que anotes la contraseña que escribiste, porque esta contraseña va servir para accesar a la base de datos MySQL. Después que la instalación termine, vamos a instalar Xdebug y uno de los módulos de manipulación de imágenes PHP que todo desarrollador web va necesitar en su trabajo, llamado GD library. Este también es un buen momento para instalar Netbeans ya sea desde los repositorios de Ubuntu o descargar el ejecutable del sitio oficial. Para instalar Xdebug y el otro chunche, escribimos en una terminal lo siguiente:

sudo apt-get install php5-xdebug php5-gd

Yo (el autor del Post original no yo XD) usualmente uso un directorio "public_html" dentro de mi carpeta personal, para almacenar todos los códigos de mis sitios web. Tu puedes usar cualquier directorio dentro de tu carpeta personal que quieras.

Una cosa importante que hay que mencionar es que el servidor Web de Ubuntu lo inicia un usuario llamado "www-data" y el directorio donde vamos a guardar nuestras paginas web debe tener permisos de lectura y escritura para este usuario (no voy a entrar en detalles sobre este aspecto pero si te has sentido un tanto confundido por esto sería bueno que te leyeras algo sobre los procesos y usuarios en los sistemas linux). Entonces lo que vamos hacer es, poner como propietario de la carpeta "public_html" al usuario "www-data". También nos interesa a nosotros como usuarios, tener los mismos permisos del dicho usuario sobre dicha carpeta. Esto se logra añadiendo nuestro usuario al grupo "www-data" (nuevamente te recomiendo leer sobre los usuarios y grupos en linux). Bueno todo este lío al final se hace con estas simples líneas de código:

mkdir /home/$USER/public_html
sudo chown -R www-data:www-data /home/$USER/public_html
sudo chmod -R 775 /home/$USER/public_html
sudo adduser $USER www-data
 
Ahora que ya tenemos nuestra carpeta "public_html" en su lugar, debemos indicarle a Apache que use esa carpeta como documento raíz del servidor web (o sea que ahí se van a guardar las paginas web que hagamos). De manera que cuando vayamos a "localhost" o a "127.0.0.1" nos lleve a las paginas que están almacenados en nuestra carpeta "public_html". Primeramente, hacemos una copia de la plantilla de sitio web por defecto y la modificamos:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/public_html
 
Ahora debemos editar nuestra plantilla para que apunte a la carpeta "home/$USER/public_html" en vez de la carpeta por defecto "/var/www/". Lo que sigue es abrir nuestra nueva plantilla para editarla:

gksudo gedit /etc/apache2/sites-available/public_html

Necesitamos modificar dos líneas: la primera es "DocumentRoot", cambiamos "/var/www" por "/home/tuusuario/public_html", luego la segunda sección "Directory", cambiamos "/var/www/" por "/home/tuusuario/public_html/". Hago especial énfasis que para el caso de la segunda línea que se modifica, hay que asegurarse de poner la "/" al final.

Este es un ejemplo de mi propio archivo de configuración:

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 
 DocumentRoot /home/danielito/public_html
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /home/danielito/public_html/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>
 
 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>
 
 ErrorLog ${APACHE_LOG_DIR}/error.log
 
 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn
 
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
</VirtualHost>

Ahora podemos deshabilitar el sitio por defecto de Ubuntu y habilitar nuestro sitio "public_html".

sudo a2dissite default
sudo a2ensite public_html

Lo que falta es configurar Xdebug para que permita depurar. Para ello editamos el archivo de configuración de Xdebug:

gksudo gedit /etc/php5/conf.d/xdebug.ini 

Añadimos lo siguiente al final del archivo:

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

Nada más resta reiniciar el servidor Apache:

sudo service apache2 restart

Y ¡FELICIDADES! ya tienes instalado un poderoso servidor LAMP con capacidad de depuración de php, para que ya no te matés buscando errores, que si que no te guarda, que no entra al if, que no se qué... jejeje. Para aprovechar esta característica te recomiendo usar un IDE como netbeans o eclipse (lo siento Dreamweaver ¬¬)

Share This!


No hay comentarios:

Publicar un comentario

Powered By Blogger · Designed By Seo Blogger Templates