domingo, 3 de abril de 2011

[GNU/Linux] Completo entorno de Desarrollo Web

ACTUALIZACIÓN:
Aunque el Post se basa en Fedora, siguiendo la buena sugerencia que me hacen en el primer comentario de éste artículo, he cambiado el título. Es cierto, la guía que puede ser usada por un usuario de cualquier distro, con ciertas variaciones, como el Gestor de Paquetes y algunas rutas de directorios. 
Gracias por la sugerencia :).

Para los Desarrolladores Web, Fedora resulta ser una de esas distros perfectas, por múltiples razones, entre ellas su enfoque y seguridad. Aunque puedes usar cualquier distro para programar, sin duda Fedora tiene puntos a favor.


Esta es una Guía para configurar un completo Entorno de Desarrollo Web en Fedora 14, aunque no creo que difiera mucho entre versiones.
Antes que nada, deberás ingresar como root:

su --login

No nos queda de más actualizar el Sistema:

yum update


LAMP (Linux, Apache, MySql, Php... y PhpMyAdmin):

Primero instalaremos lo más importante.

Instalación de las aplicaciones:

yum install httpd php mysql-server php-mysql phpMyAdmin

Si te fijas, en el comando además de instalar Php, Mysql y Apache, también instalo la librería GD de Php para el tratamiento de imágenes, el conector Php-Mysql para las interacciones entre éste motor de bases de datos y PHP, además instalamos PhpMyAdmin.
Si lo deseas, puedes añadir además, la extensión PDO de Php para una interacción más cómoda y objetual con la base datos; necesaria si usas Zend Framework para trabajar.

yum install php-pdo


Ensayar Apache:
Para probar que apache se haya instalado correctamente, deberás primero arrancar el servicio:

service httpd start

Luego te diriges a http://localhost

Y si todo ha ido bien, te mostrará la página "Fedora Test Page".

Ensayar PHP:
Para probar PHP, crearemos un Script que nos muestre el típico phpinfo().
Primero, algo que debes saber es que la carpeta de publicación de Apache bajo Fedora es /var/www/html, en ese sitio crearemos nuestro script de ejemplo, asi que primero nos movemos al directorio:

cd /var/www/html

Ahora crearemos el Script de prueba:

vi test.php

Nótese que uso el editor vi, si no estás familiarizado con él, puedes usar nano (Más fácil de usar) o el que te parezca.

Una vez hayas creado el archivo, escribirás en él un llamado a la función phpinfo:

<?php
phpinfo();

Luego guardarás cambios y te dirigirás a http://localhost/test.php.
Si todo ha ido bien, el servidor te deberá mostrar el sitio de información de PHP.

Configurar Mysql:
Para configurar Mysql, primero deberás arrancar el servicio:

service mysqld start

Luego, lo primero que deberás hacer es agregar una contraseña al usuario root, ya que por defecto no la trae.
Ingresamos:

mysql -u root

Y luego establecemos la contraseña

set password = password("MIPASSWORD");

Sobra decirte que la palabra MIPASSWORD debe ser reemplazada por la tuya :-).
Luego de esto, puede darle exit para salir del motor y tratar de ingresar con el password que acabaste de establecer:

mysql -u root -p

Te pedirá la contraseña, ahí la digitarás y si ha ido todo bien, deberá darte acceso.

Probando Mysql-Php:
Dentro del directorio de publicación de Apache, crearemos un Script llamado connectionTest.php para verificar que el conector Php-Mysql se ha instalado correctamente:

vi connectionTest.php

Igual que en el ejemplo test.php, puedes usar el editor que mejor te parezca.
Dentro de este Script, vas a digitar un ejemplo de conexión a Mysql mediante PHP.

<?php
mysql_connect("localhost", "root", "MYPASSWORD") or die("Error en la conexión: ".mysql_error());

Luego te dirigirás a http://localhost/connectionTest.php y si todo a ido bien, deberá mostrarte la pantalla en blanco, en caso contrario, verás el mensaje de error y la especificación del problema.

Configurar y ensayar PhpMyAdmin:
Para configurar PhpMyAdmin deberemos dirigirnos a /etc/phpMyAdmin:

cd /etc/phpMyAdmin

 Y editaremos el archivo config.inc.php:

vi config.inc.php


Dentro de este ficheros buscaremos y editaremos las siguientes líneas:


$cfg['Servers'][$i]['user']= ‘root’;
$cfg['Servers'][$i]['password']= ‘MIPASSWORD’



Por si no lo sabes, éstos datos sirven para indicarle a PhpMyAdmin cuales son los parámetros de conexión al cliente de la Base de Datos.
Luego de eso, reinicamos Apache:


service httpd restart


Ahora te nos dirigimos a http://localhost/phpmyadmin. Te pedirá los datos de acceso, en estos ingresarás los parámetros antes indicados y si has hecho todo correctamente, la aplicación deberá inicar sin problemas.


Permisos al directorio de publicación:
Para poder realizar escritura dentro de la carpeta /var/www/html deberás darle permisos:


chmod 775 /var/www/html


Ahora, por comodidad, es sano tener los archivos de tus proyectos tu carpeta Home y acceder desde el servidor con un enlace, esto de muy sencillo.
Primero, deberás crear una carpeta donde estarán tus archivos dentro tu directorio Home, en mi caso es /home/Yefb y el directorio que crearé será WebDevelopment


mkdir /home/Yefb/WebDevelopment


Ahora, supongamos que crearemos un proyecto que tendrá por nombre SocialNetwork.
Dentro del directorio WebDevelopment, crearemos el directorio para este proyecto:


mkdir /home/Yefb/WebDevelopment/SocialNetwork


Luego en el servidor añadiremos un enlace simbólico a este:


ln -s /var/www/html/SocialNetwork /home/Yefb/WebDevelopment/SocialNetwork


OJO, esto debe ir en una sola línea, es que Blogger me la separa en dos :).
Y por último, hay que establecer tu usuario como el propietario de ese enlace:


chown Yefb /var/www/html/WebDevelopment


Ahora cuando accedas a http://localhost/SocialNetwork, el directorio que te mostrará el servidor será el que tienes en tu Home.


Arrancar los servicios al inicio del sistema:
Por comodidad, es bueno que Apache y Mysql se inicien cuando enciendes el equipo.
Para esto, deberás ejecutar como root:

chkconfig --add mysqld && chkconfig --add httpd


Software Adicional:
También es necesario para nuestro trabajo tener alguna cantidad de programas adicionales, te listo unos cuantos:


Mysql WorkBench:
Es el GUI para crear Diagramas Entidad-Relación en Mysql, crear tus consultas, administrar el servidor... muy útil.


yum install mysql-workbench


IDEs:
Dependiendo de tus gustos, puedes instalar el IDE que te parezca adecuado.
  • Eclipse:

    yum install eclipse eclipse-phpeclipse
  • Netbeans:Para instalar Netbeans-Php en Fedora deberás bajarte el binario deste ésta url.Luego te diriges al directorio en el cual está descargado y como usuario normal (salir de root) ejecutas (Suponiendo que el binario que te descargaste se llama netbeans.sh):

    chmod +x netbeans.sh

    Luego ejecutas:

    ./netbeans.sh

    Sigues las indicaciones de instalación y listo.
  • Geany: No es un IDE como tal, pero para trabajar es muy cómodo, no te gasta tanta memoria como los anteriores.

    yum install geany
  • GVim: Para los amantes del poderoso editor VIM, siempre está la posibilidad de instalar un GUI que nos permite trabajar mas cómodo.

    yum install vim-X11


UML Tools:
Hay muchas herramientas para el trabajo con UML en Fedora, cada una tiene ventajas que otra no, listaré solo dos:

  • Eclipse UML Tools: Para lo que trabajan con Eclipse es muy cómodo tener todo en uno.

    yum install eclipse-mdt-uml2
  • BoUml: De las mejores herramientas para trabajar con UML (En mi opinión), desafortunadamente ya no se encuentra en desarrollo.

    yum install bouml


Final

Ya se me iba haciendo larga la guía :). 
Ahora, espero que te sirva mucho para configurar tu entorno de desarrollo bajo Fedora o cualquier distro y si tienes alguna duda o sugerencia sobre algo que debería agregar, no dudes en hacérmela llegar. 
Igualmente, si ves algo que se pueda mejorar con gusto lo haré, entre todos haremos de ésta guía algo muy útil para cualquier Desarrollador Web que use GNU/Linux :).
Saludos!
Publicar un comentario en la entrada