Enter The Matrix With Debian


Enter The Matrix With Debian es un que HowTo tiene como fin mostrar la configuración básica de las herramientas que se requieren para hacer de tu Debian un servidor web, y aprovechar las características de tu PC, tu Debian y tu Internet al máximo. Para que tengas tu Debian bien configurado y sin problemas, te recomiendo que antes de seguir este tutoria visites PimpMyDebian

SSH

SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo el ordenador mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado. Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.

Con SSH puedes trabajar en tu PC desde donde sea. Para instalarlo solo tienes que escribir en consola el siguiente comando:

$ sudo apt-get install ssh

Para usarlo solo tienes que escribir lo siguiente.

$ ssh usuario_del_computador_remoto@ip_del_computador_remoto

Por Ejemplo:

$ ssh usuario@192.168.2.44
$ ssh usuario@mipc.no-ip.org

SCP

Secure Copy o SCP es un medio de transferencia segura de archivos informáticos entre un host local y otro remoto o entre dos hosts remotos, usando el protocolo Secure Shell (SSH). Con SCP puedes olvidarte de los PenDrives para llevarte la info de un lugar a otro, ya que puedes transferir cualquier archivo. Para usarlo debes tener instalado ssh y escribir en consola lo siguiente:

$ scp archivo.txt usario_del_computador_remoto@ip_del_computador_remoto:/ruta_donde_vas_a_copiar_el_archivo

Por Ejemplo:

$ scp archivo.txt usuario@192.168.1.32:/home/usuario 

LAMP

Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP, en este caso les voy a mostrar como configurar un servidor con los siguientes componentes:

Apache

Apache es un software (libre) servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado"). Apache es el servidor web más utilizado en el mundo. Es open source, estable, modular y muy configurable. Lo primero que debemos hacer es actualizar los paquetes necesarios en Debian con el siguiente comando:

$ sudo apt-get update

Ahora procederemos a instalar los paquetes necesarios:

$ sudo apt-get install apache2 apache2-mpm-worker apache2-utils apache2.2-common

Una vez instalados los paquetes, abre tu explorador favorito (por ejemplo, Iceweasel) y colaca la dirección http://localhost y te deberá aparecer un mensaje en letras grandes que dice: "It works!" o una pagína de bienvenida de Apache (dependiendo de la versión), lo que quiere decir obviamente que si funciona.

Los archivos de configuración de apache están ubicados en: /etc/apache2/apache2.conf y la carpeta web por defecto esta en /var/www

Apache tiene un módulo bastante útil que permite a cada usuario de Debian colocar archivos en una carpeta dentro de su home y publicar estos archivos con Apache. El módulo se llama mod_userdir y para usarlo debes primero crear una carpeta en tu home que se llame public_html:

$ mkdir ~/public_html

Dale permisos a todos los usarios permisos de lectura:

$ chmod 755 ~/public_html/

Coloca el módulo mod_userdir en la carpeta de módulos que se deben activar

$ sudo cp /etc/apache2/mods-available/userdir.* /etc/apache2/mods-enabled/

Reinicia el Apache

$ sudo /etc/init.d/apache2 restart

Abre tu navegador favorito y coloca la ruta http://localhost/~tu_usuario y debe ya aparecerte una página con todos los documentos que tienes dentro de la carpeta /home/tu_usuario/public_html

PHP 5

PHP es un lenguaje de programación usado frecuentemente para la creación de contenido para sitios web con los cuales se puede programar las paginas html y los codigos de fuente. PHP es un acrónimo recursivo que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. Para instalarlo debemos instalar los siguientes paquetes:

$ sudo apt-get install php5 libapache2-mod-php5 php5-common

Para comprobar que todo quedó bien instalado, crea un documento en /var/www que se llame pueba.php

$ sudo gedit /var/www/prueba.php

Copia dentro del documento las siguientes líneas:

# prueba.php
<?php phpinfo(); ?>

Abre el navegador de tu preferencia y coloca la ruta: http://localhost/prueba.php y deberá aparecerte una página con toda la información de PHP.

PostgreSQL y MySQL

PostgreSQL es un motor de base de datos, es servidor de base de datos relacional libre, liberado bajo la licencia BSD. Actualmente se consudera como un competidor directo de Oracle y es mucho más robusto que MySQL. Para instalarlo, debes escribir el siguiente comando en consola:

$ sudo apt-get install postgresql-8.1

Una vez se haya instalado, logueate como el usuario postgres. Para hacer esto, debes loguearte primero como root:

$ su
Password:               <-- Ingresa la contraseña
# su postgres
$                       <-- Ya estas logueado como usuario postgres

Ingresa a la base de datos principal de postgres:

$ psql

Agrega tu usuario de Debian a la base de datos con la siguiente sentencia SQL:

postgres=# CREATE USER tu_usuario WITH PASSWORD 'tu_password';

Cierra la consola y abre otra consola donde instalaremos el siguiente paquete

$ sudo apt-get install php5-pgsql phppgadmin

Ahora creamos un link simbólico desde la carpeta /var/www a la carpeta donde se encuentra phppgadmin para poderla acceder:

$ sudo ln -s /usr/share/phppgadmin/ /var/www/phppgadmin

Reinicia el Apache

$ sudo /etc/init.d/apache2 restart

Abre tu navegador favorito y coloca la ruta http://localhost/phppgadmin y ya tienes una interfaz web para crear, modificar y eliminar tu bases de datos. Para mayor información acerca de la configuración extra de phppgadmin, visita esta página

MySQL es un sistema de gestión de base de datos, multihilo y multiusuario con más de seis millones de instalaciones.[http://es.wikipedia.org/wiki/Mysql#_note-0 ] MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso.

Está desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como el Apache, donde el software es desarrollado por una comunidad pública, y el copyright del código está en poder del autor individual, MySQL está poseído y patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. Para instalarlo debes hacerlo con el siguiente comando:

$ sudo apt-get install mysql-server mysql-client php5-mysql

El archivo de configuración de mysql se encuentra en : /etc/mysql/my.cnf . Por defecto mysql crea un usuario como root sin ningún password, por lo que es bueno crear un password para este usuario. Para hacer esto coloca los siguientes comandos:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD(’nuevo-password’) WHERE user=’root’;
mysql> FLUSH PRIVILEGES;

Nunca se debe usar el usuario de root para accesar a la base de datos ya que tiene todos los privilegios sobre todas las bases de datos y por lo tanto es muy inseguro. Por esto es aconsejable crear un usuario para cada base de datos que crees, es un poco dificil crear usuarios desde la consola por lo que es más rapido y más intuitivo crealo desde un panel de control como phpMyAdmin, que es un software de administración basado en web que es fácil de configurar y además gratis. Es muy facil de utilizar y además permite realizar casi todas las tareas necesarias sobre las bases de datos de mysql.

Para instalarlo, escribe en la consola:

$ sudo apt-get install phpmyadmin

Justo antes de terminar la instalación aparecerá un wizzard que mostrará te preguntará con que servidor web deseas configurarlo automaticamente: selecciona Apache2. El archivo de configuración de phpmyadmin se encuentra en la carpeta: /etc/phpmyadmin. Para probar que todo funcione bien, abre un navegador y coloca la ruta http://localhost/phpmyadmin donde debe aparecerte la interfaz web para manejar mysql.

Eclipse - PDT Project

El proyecto PDT tiene como meta proveer una herramienta de desarrollo de PHP para la plataforma de Eclipse. Puedes descargarla de su página principal. Si aún no tienes Eclipse en tu PC, puedes descargar el archivo PDT - All In One, el cual viene ya con el Eclipse. Ese es el que instalaremos a continuacion. Primero descarga el archivo, luego abre una consola y dirigete a donde se descargo el archivo para que lo copies a la carpeta /opt:

$ sudo cp pdt-all-in-one-*.tar.gz /opt/

Ahora descomprime el archivo con el siguiente comando:

$ cd /opt
$ sudo tar -zxvf pdt-all-in-one-*.tar.gz

Dale permisos a todos para que puedan leer y escribir en esa carpeta:

$ sudo chmod -R 755 eclipse/

Ejecuta el Eclipse:

$ cd eclipse
$ ./eclipse

Listo, ya tienes tu IDE para desarrollar en PHP y aprovechar tu LAMP

<!> NOTA: Se han reportado varios problemas si usas gcj en vez del Java de Sun. La solución es muy sencilla: Abre el Synaptic, instala el paquete sun-java6-jdk y desinstala el paquete gcj.

NO-IP

Hasta ahora, hemos trabajado con la dirección localhost (que es igual al ip 127.0.0.1), sin embargo, lo que nos interesa es que cualquier persona desde cualquier lado del mundo pueda visitar nuestras páginas. Lo primero que pensariamos sería entonces darle el IP que nos da nuestro IPS, sin embargo, esta IP no es fija, por lo que no nos serviría. La opción es utilizar DNS, un Domain Name System (DNS) es una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar distintos tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio. La asignación de nombres a direcciones IP es ciertamente la función más conocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio FTP de prox.ve es 200.64.128.4, la mayoría de la gente llega a este equipo especificando ftp.prox.ve y no la dirección IP. Además de ser más fácil de recordar, el nombre es más fiable. La dirección numérica podría cambiar por muchas razones, sin que tenga que cambiar el nombre. Un DNS normalmente tiene un precio, sin embargo, hay varias páginas que te dan el servicio de DNS gratuitamente bajo ciertas restricciones, tal es el caso de NO-IP.

Ahora instalaremos el demonio para que cuando cambie nuestro IP, se actualice el enlace al DNS. Eso lo haremos instalando el siguiente paquete:

$ sudo aptitude install no-ip

Configuramos el demonio, escribiendo la siguiente linea en consola y siguiendo las instrucciones:

$ sudo no-ip -C

Por ultimo prendemos el demonio:

$ sudo /etc/init.d/no-ip start

Ya puedes probar escribiedo en tu navegador favorito, el DNS que elegiste y podrás acceder a los mismas páginas que cuando colocabas localhost. <!> NOTA:Recuerda que si estás detrás de un router, debes abrir y direcicionar los puertos que estes usando para que la gente te puedo ver.

SVN

Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre bajo una licencia de tipo Apache/BSD y se lo conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo. Es una inteligente manera para que varias personas trabajen sobre un mismo código en distintos lugares. Para usarlo debemos instalar los siguientes paquetes:

$ sudo apt-get install subversion subversion-tools

Creamo la carpeta donde se alojaran los repositorios, por ejemplo: /var/svn

$ sudo mkdir /var/svn

Creamos un grupo al que llamaremos subversion, agregamos los usuarios que manejarán el svn a este nuevo grupo y luego decimos que esa carpeta pertenece a este grupo y le damos los respectivos permisos:

$ sudo groupadd subversion
$ sudo addgroup tu_usuario subversion
$ sudo chown -R  :subversion /var/svn/
$ sudo chmod -R g+ws /var/svn/

Le decimos a subversion donde se encontrarán los repositorios del proyecto:

$ svnadmin create /var/svn/nombre_del_proyecto

Entramos en la carpeta que tiene el código fuente de nuestro proyecto y lo importamos al svn:

$ cd ruta_a_nuestro_proyecto
$ svn import file:///var/svn/nombre_del_proyecto -m "una_descripcion_de_la_accón_EJ:_initial_import"

Si estás trabajando en un IDE como Eclipse, Netbeans, etc. ya puedes hacer el checkout a través de ese programa. Sino, entonces sigue los siguientes pasos para trabajar por consola. Ahora debemos crear y entrar a la carpeta del computador donde se programará y crear el lugar de trabajo.

$ mkdir nombre_del_proyecto && cd nombre_del_proyecto

Hacemos checkout del proyecto en la nueva carpeta. Si estamos en la misma computadora que tiene el proyecto lo podemos hacer de la siguiente manera:

$ svn co file:///var/svn/miproyecto miproyecto

Si estás en otra computadora, entonces debes trabajar con el protocolo svn+ssh y debes hacer lo siguiente:

$ svn co svn+ssh://ip_del_servidor/var/svn/miproyecto miproyecto

Para hacer commit de los cambios solo tienes que escribir en consola:

$ svn commit -m "descripcion_de_los_cambios"

SVN en Eclipse:

Eclipse posee dos plugins para trabajar fácilmente con SVN, ambos son muy similares aunque con pequeñas diferencias. Estos plugins son los siguientes:

WebSVN

Con WebSVN puedes visualizar todos los cambios en una página web. Para instalarlo solo debes escribir el siguiente comando en la consola:

$ sudo aptitude install websvn enscript

Aparecerá un asistente de configuración el cual preguntará lo siguiente

Do you want to configure WebSVN now?
-> <Sí>
WebSVN supports any web server that php4 does, but this automatic
configuration process only supports Apache
-> <Aceptar>
svn parent repositories:
-> /var/svn
svn repositories:
-> /var/svn
Note on permissions...
-> <Aceptar>

El archivo de configuración de WebSVN lo puedes editar escribiendo en la consola:

$ sudo gedit /etc/websvn/config.inc

Allí puedes cambiar el tema descomentando (quitando los "//") el tema que te gusta y comentando el que ya no usarás. También puedes activar el coloreado del código, eso lo haces en los siguientes lugares:

...
// --- LOOK AND FEEL ---
//
// Uncomment ONLY the display file that you want.
//$config->setTemplatePath("$locwebsvnreal/templates/Standard/");               <---COMENTAR
$config->setTemplatePath("$locwebsvnreal/templates/BlueGrey/");                 <---DESCOMENTAR
// $config->setTemplatePath("$locwebsvnreal/templates/Zinn/");
...
...
// --- COLOURISATION ---
// Uncomment this line if you want to use Enscript to colourise your file listi$//
// You'll need Enscript version 1.6 or higher AND Sed installed to use this fea$// Set the path above.
//
$config->useEnscript();                                                         <---DESCOMENTAR
...
...

Compartir música en una LAN (Avahi)

Para poder compartir nuestra música con todas las PC's de nuestra LAN (compatible con Rhythmbox en Debian y iTunes en Windows), solo debemos instalar el siguiente paquete:

$ sudo aptitude install avahi-daemon

Reinicia el demonio:

$ sudo /etc/init.d/avahi-daemon restart

Abre el Rhythmbox

Ya podrás escuchar tu música en cualquier otra PC de tu casa usando Rhythmbox o iTunes.

VelugMaracaibo Wiki: EnterTheMatrixWithDebian (last edited 2008-10-14 03:49:31 by Armando''''''Segnini)