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 2 - Servidor Web de Linux
- MySQL 5 / PostgreSQL - Servidor de base de datos
- PHP5 - Lenguaje interpretado PHP
- phpMyAdmin / phpPgAdmin - Software de administración de base de datos (MySQL y PostgreSQL respectivamente) via web
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.
- Lo primero que debes hacer es crearte una cuenta aca.
- Una vez lo hayas hecho, haz login
- En la parte que dice Hosts/Redirect haz click en Add
- Escribe el hostname de tu preferencia
- Click en Create Host.
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
Haz click en Editar > Preferencias
- Haz click en la pestaña Compartición
- Selecciona el checkbox que dice "Compartir mi música"
- Escribe el nombre con el que se verá tu PC en las otras computadoras.
- Click en Cerrar
Ya podrás escuchar tu música en cualquier otra PC de tu casa usando Rhythmbox o iTunes.
