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 ¬¬)
No hay comentarios:
Publicar un comentario