Cómo montar un servidor con Linux en tu propia casa (IV)

10 - noviembre - 2006 en 2:29 am | Publicado en Proyectos | 16 comentarios

Ya estamos de vuelta con nuestro server. El martes nos quedamos con que nuestro servidor funcionaba gracias a DynDNS y a Apache, que se encargaba de alojar los hacheteemeeles, imágenes, documentos o lo que nos diera la gana, pero siempre material estático. Hoy vamos a ‘aumentar’ esa capacidad a bases de datos MySQL y páginas PHP. Así visto, para los recién llagados, no os dirá mucho, pero tenéis que saber que ambas tecnologías son la base de los CMS o gestores de contenidos, como WordPress (bitácoras), Joomla, Mambo y muchos otros.

Manos a la obra. Os recomiendo tener cerca papel y lápiz.
Lo primero, confirmar que tenemos lo que hay que tener (informáticamente hablando, claro). Para ‘decir’ a Apache que debe usar PHP, deberemos disponer en el equipo de dos archivos: php5.load y php5.conf. Ambos deben estar en /etc/apache2/mods-available. De todas formas, vamos a comprobarlo vía consola. Abre una Terminal (Aplicaciones / Accesorios / Terminal) y escribe:

ls /etc/apache2/mods-available | grep php

A renglón seguido, os aparecerán ambos listados. Ahora, vamos a decirle a Apache que tiene que cargar ese módulo:

cd /etc/apache2/mods-enabled

y una vez en este directorio, linkamos los de PHP para que los cargue:

sudo ln -sf ../mods-available/php* ./

Todo esto vendría a tener la siguiente apariencia:

server4_terminal1.jpg

Hasta ahora todo sencillo, ¿verdad? Pues vamos con más batalla, caballeros.

Debemos ‘matar’ Apache. Se puede lograr así:

sudo invoke-rc.d apache2 restart

Ya tendríamos un Apache con PHP activado. Ahora, vamos a dar candela a MySQL, que como recordaréis ya instalamos en el primer post de esta serie sobre cómo montar un server en vuestra casa con Linux.

Lo primero, vamos a poner una contraseña de root a mysql-server. ¡Coño, es que si no podría acceder cualquiera!. Manos a la Terminal (Aplicaciones / Accesorios / Terminal) y escribimos:

sudo mysql

Como veis, algo ha cambiado. Ahora, al comienzo de la orden tenemos algo tal que así: mysql>. Recordad o aprended que toda orden en MySQL finaliza con punto y coma (;). Todo lo que escribamos de aquí en adelante es lo que sigue al mysql>.

Vamos a entrar en la base de datos propia de MySQL con:

use mysql;

Ahora vamos a meter la nueva contraseña para el usuario root. Evidentemente, tú sólo tendrás que poner la que quieras donde pone nuevo_password. Copia/pega esto y hazle este cambio:

update user set Password=PASSWORD(‘nuevo_password’) where user=’root’;

Ahora, actualizamos la tabla de privilegios:

flush privileges;

y salimos

quit (este no necesita ; al final)

Todo esto tendrá una pinta como esto:

server4_terminal2.jpg

Ahora, entraremos en MySQL como root, escribiendo:

mysql -u root -p

Con este comando, entraremos a MySQL como root. Sólo hay que meter el password que líneas arriba asignamos. Ahora, vamos a crear un usuario. Y es que no es muy correcto trabajar con bases de datos con tantos privilegios. ¡Hay tantas formas de meter la pata…! Escribe esto:

create database nombrequequierasparalabasededatos;

Evidentemente, lo último tienes que cambiarlo por el nombre que quieras. Por ejemplo, wordpress. Y ahora, le damos privilegios sobre esa base de datos a tu usuario siempre que vayas a manejar en local la database (recomendable):

grant all on basededatos.* to tuusuario@localhost identified by ‘tucontraseñadeusuario’;

donde claramente tienes que poner el nombre de la base de datos, tu nombre de usuario (no el root, otro, el que quieras) antes de la arroba y la contraseña para ese usuario.

Ya tenemos casi todo el camino recorrido, amigos. Lo que es tema de consola ya está casi, así que lo peor ya ha pasado (vale, ahora me llegarán cienes y cienes de mensajes quejándose de que una de las ventajas de Linux es la consola…). Ahora ya sólo nos queda hacernos con el código fuente de, por ejemplo, WordPress. Vamos a ello, que pinta interesante. Clica aquí y te descargarás la última versión de este software libre. Una vez en tu escritorio, descomprímelo: doble click, selecciona la carpeta wordpress, presiona Extraer y seleccionas como destino el escritorio.

La intención es dejar esta carpeta en /var/www/. Si lo haces así, tal cual, el sistema te advertirá de que no tienes privilegios. Mejor: en el escritorio presiona Alt + F2 y escribe sudo nautilus con la casilla Ejecutar en una terminal activada. Mete la clave root y verás cómo ahora sí te deja almacenar la carpeta wordpress en /var/www/.

Ahora, daremos permisos a la carpeta con la Terminal:

sudo chmod 777 /var/www/wordpress

Pues ahora ya está casi todo el trabajo sucio hecho. Abre el navegador y escribe:

http://localhost/wordpress/wp-admin/setup-config.php

y comenzaremos a configurar WordPress. Tras presionar en Let’s Go, llega la hora de la verdad: insertar los datos utilizados durante toda la instalación, de ahí que os recomendara papel y lápiz al principio. Sólo nos hará falta cambiar tres datos de la tabla: nuestro nombre de usuario (no el root), la clave de acceso y el nombre de la base de datos, que si habéis cogido mi ejemplo no hace falta ni alterarlo.

server4_wordpress1.jpg

Después, presionamos Installing Now y, en First Step, escribimos el título del blog y un email de contacto, como yo hice:

server4_wordpress2.jpg

La última ventana es, si acaso, la más importante. En ella se nos da el nombre de usuario final, el password y la URL a la que debemos acudir para identificarnos:

server4_wordpress3.jpg

Apuntamos todo bien en un papelillo (de los de apuntar de toda la vida, claro) y pinchamos en la URL. Nos identifcamos, dejamos que Firefox y Opera lo memorice y… ¡Ya tenemos blog ubicado en nuestro servidor de casa!

Podéis visitar el mío si os apetece en:

tontoelquelolea.homelinux.com/wordpress/

PD: Para dudas, comentarios, ruegos e insultos, podéis dejar vuestro sentir en las líneas de más abajo…

PD2: Como bien indico en el blog alojado, puede que haya cosas que no veáis bien o links que no funcionen, pero es que, ya se sabe que al que mete mano no todo le tiene que salir bien. Esto me pasa por toquetear el PHP…

Anuncios

Cómo montar un servidor con Linux en tu propia casa (III)

8 - noviembre - 2006 en 1:16 am | Publicado en Proyectos | 14 comentarios

Serie completa: Cómo montar un servidor Linux en tu propia casa (I, II y III)

Hoy no va a haber posteo; estoy reventado. Mucha movida laboral y bloguera para la espalda, que me avisa de que algo gordo puede acercarse (una lumbalgia; lo de adivinar si va a llover o no por el reúma está por venir). Os vendrá bien a los que ayer no probásteis cómo montar un servidor en casa…

Me apetece acercaros un pedeefe que me remitió el lunes mi amigo Mrithail. El documento en cuestión es un trabajo de 15 hojas que Carlos Hernández, el susodicho Mrithail, elaboró para una de sus asignaturas en abril de este año sobre servidores. Echadle un vistazo a ver si os sirve, pues ofrece una visión general del asunto. Algo seguro que aprenderemos.

Por supuesto, el documento lo he alojado en mi máquina, que desde ayer funciona como servidor. ¿Seguro que el super ordenador Mare Nostrum está en Barcelona y no en mi casa? Je, je. ¡Si es que un día de estos no voy a entrar por la puerta de lo orgulloso que estoy de mi Pentium III…!

Cómo montar un servidor con Linux en tu propia casa (II)

7 - noviembre - 2006 en 11:17 am | Publicado en Proyectos | 22 comentarios

Serie completa: Cómo montar un servidor Linux en tu propia casa (I, II y III)

servidor2_intalacion_07112006.jpg

Bueno, ayer nos quedamos instalando casi todos los paquetes necesarios para nuestro flamante servidor, como veis en la imagen (arriba). Lo conseguimos con:

sudo su [meter clave root]
apt-get install php5 php5-mysql mysql-server mysql-client mysql-common

Ya tenemos todo excepto lo más importante: Apache. Vamos a conseguirlo, esta vez, por otros medios: el fabuloso Synaptic. Para ello, acudimos a tal gestor de paquetes (Sistema / Administración / Gestor de paquetes Synaptic) y en buscar, escribimos apache. De los resultados, nos quedamos con el llamado apache2. El resto, por ahora, no nos hace falta. Aplicamos y esperamos unos segundos a que se instale. No tarda mucho.

Pues bien, ya tenemos todo: Apache, que lo acabamos de conseguir, y PHP y MySQL, que lo logramos antes vía Terminal. Manos a la obra. Una cosa antes que nada: en toda la explicación utilizaré Ubuntu 6.10 Edgy Eft, por lo que entre versiones y distribuciones puede que haya pequeños cambios.

Ahora sí, comenzamos a trabajar.

Lo primero, identifiquemos dónde vamos a alojar todo nuestro ‘material’. Nuestras páginas web deberemos ubicarlas, dentro del sistema de archivos, en var/www/. A ese directorio accederá alguien automáticamente que escriba nuestra URL. Coged cualquier hacheteemele que tengáis por ahí y colocadlo en esta carpeta llamándolo index.html para que se comporte de página de inicio. En mi caso, he editado con Nvu una página sin diseño pero con un mensaje dedicado a todos vosotros. Si ya lo habéis intentado, habréis comprobado que el sistema no os deja copiar nada en esta carpeta. Probad esto: id al escritorio, teclead Alt + F2 y escribid sudo nautilus con la casilla Ejecutar en una Terminal activada. Meted vuestra clave y ahora sí, acudid hasta la carpeta var/www y echad ahí vuestro HTML.

Ahora nos encontramos con un pequeño problema: nuestra IP. La IP es una numeración que nos identifica, en este caso, en Internet. Esta IP puede ser de dos tipos: estática o dinámica. Cada una tiene sus pros y sus contras, como Gnome y KDE, pero la verdad es que los ISP actuales (Wanadoo, Euskaltel, etc.) tienden a dar a sus clientes IPs dinámicas, como en mi caso. El problema es que las IPs dinámicas cambian cada vez que nos conectamos a la red, nuestro número identificativo se altera y hay que conseguir que el dominio que marcamos recoja ese cambio para que xxxxx.com nos lleve a nuestro server. Tener una IP estática sería, como veréis en este turorial, todo beneficios. Problema: pedir a un ISP una IP fija suele salir caro, dependiendo del proveedor.

Ahora vamos a conseguir un dominio medianamente bueno. Acudimos a dyndns.com. Allí vamos a poder ‘alquilar’ gratis un dominio ‘decente’. Lo primero, nos crearemos una cuenta. Lo habitual: nos mandan un email con la clave, la metemos y listo. Una vez logeados, vamos a Services / Dynamic DNS / Add Dynamic DNS. Como veis, sólo hay que elegir un nombre que os guste dentro de los dominios existentes. Yo he registrado tontoelquelolea.homelinux.com. ¡El primero que se me ha ocurrido, leñe! Debajo, aparece nuestra IP actual, que es la que memoriza para ese dominio.

Eso no es todo, aunque ya queda poco. Como tenemos IP Dinámica, en nuestro PC necesitaremos una aplicación como ddclient, que en cada sesión va a comprobar si nuestra IP ha cambiado (que lo hará) y, en tal caso, va a comunicarse con el dominio para decirle que nuestra IP ha cambiado.

Todo es tan sencillo como abrir una Terminal (Aplicaciones / Accesorios / Terminal) y escribir:

sudo su [mete clave de root]
apt-get install ddclient

Y te saldrá algo como esto:

servidores2_ddclient_07112006.jpg

Pues bien, sólo tendremos que elegir DynDNS. En la segunda, el dominio que hayamos elegido (en mi caso, tontoelquelolea.homelinux.com). En la siguiente pantalla, tu nombre de usuario de la cuenta. Y, en la siguiente, la clave. En la interface usada, yo he escrito DHCP. En vuestro caso, puede ser ra0 o lo que os indique el gestor de red (Sistema / Administración / Red). A partir de aquí, aceptad las propuestas que os ofrece el programa. Al finalizar, deberíais ver algo en la Terminal que os dijera que ddclient está corriendo seguido de un [ok], como el de la imagen:

servidor2_ddclientcorriendo_07112006.jpg

Para muchos de vosotros, probablemente los que tengáis módem, aquí podría terminar el tutorial. Si podéis, decidle aun amigo que visite vuestra URL reservada en DynDNS a ver si funciona. En caso negativo, seguro que la solución en esta.

Aún puede que os quede un sencillo paso más, dependiendo de vuestra conexión. En los módem creo que no sucede, pero en los router el puerto 80, que es el que gestiona este tipo de conexiones, suele estar cerrado. Lo último que nos queda por hacer es decirle al router que haga una excepción para las peticiones que lleguen por el 80 a esa IP. Y, una vez más, volveréis a ver porqué una IP Dinámica es algo negativo en estos casos.

Por si acaso, recordamos cómo editar la configuración: conectado nuestro PC al router, tecleamos en el navegador la dirección http://192.168.2.1 y accederemos a la interface web del usuario. Tras meter la clave, tradicionalmente admin si no la cambiásteis, tendremos algo como esto:

servidores2_router1_07112006.jpg

Para abrir el puerto 80 y que acepte las peticiones de servidor, en mi caso (US Robotics) tuve que acudir a la pestaña NAT y elegir Virtual Server. Será algo como esto:

servidores2_router2_07112006.jpg

En Private IP deberemos indicar la IP justa que en el momento de configurarlo tengamos (las últimas cifras). En Service Port, evidentemente, escribimos 80. En Type, nos da a elegir TCP y UDP: nosotros cogeremos los dos (en caso de que en una línea no nos lo permita, tendremos que utilizar 2 cambiando sólo este dato). Por último, marca la casilla Enabled. Aplícalo y listo.

¿Pero cómo saber la IP de nuestro router? Muy sencillo. Entra en una Terminal (Aplicaciones / Accesorios / Terminal) y teclea:

ifconfig

Nos enseñará algo como esto:

servidores2_ifconfig_07112006.jpg

Donde podemos ver de qué tipo es nuetra conexión (eth0, ra0,etc). Después, teclea en la misma Terminal:

ifconfig eth0 (si es que ésta es la vuestra)

Se verá algo como esto:

servidores2_ifconfig2_07112006.jpg

Si os fijáis, en esta pantalla debe aparecer una numeración del tipo 192.168.2.xxxxx tras un ined addr. Esa es vuestra IP. En mi caso, finaliza en 129, de modo que esa es la IP que debo añadir al router y permitir las peticiones a esa diección por el puerto 80.

Si habéis seguido estas instrucciones, sólo tendréis que acudir a vuestra URL. La mía es, como os dije, tontoelquelolea.homelinux.com. Recordad que esta página la tengo alojada en mi super Pentium III. ¡Todo glamour!

Cómo montar un servidor con Linux en tu propia casa (I)

6 - noviembre - 2006 en 10:06 am | Publicado en Proyectos | 54 comentarios

Serie completa: Cómo montar un servidor Linux en tu propia casa (I, II y III)

servidor061120062.jpg

Esta semana la dedicaremos a montar un servidor Linux en nuestra casa. Apartad cazuelas, librerías y al abuelo y dejad hueco a ese pecé que tenéis guardado en el fondo del armario cogiendo polvo. Recuperadlo. Yo me traje uno de la empresa (PIII, 1 Gh.) y quité las patéticas ‘pegatas’ que avisaban de que era un producto “designed for Windows 2000“. O usad el mismo PC desde el que leéis esto. ¿Y si siguiendo este sencillo ‘tuto’ llevas a cabo ese proyecto que te rondaba por la cabeza y en un año estás nadando en dólares? Seguro que no.

Comenzamos.

No quiero dar nada por entendido. Unos sabéis mucho y otros básicamente nada, así que este primer posteo lo dedicaremos a sentar las bases y a explicar qué es un servidor, para qué nos puede servir y qué herramientas vamos a utilizar para lograr nuestro objetivo.

Vayamos por partes. ¿Qué es un servidor? Primero, advertir de que la palabra antes designaba al software que gestionaba estos ordenadores, pero con el tiempo ésta ha pasado a llamar a la máquina. En la práctica, un servidor es un ordenador que resuelve las peticiones de otras máquinas, que en este caso son los clientes. El ordenador servidor ofrece archivos solicitados por los clientes (ésta es la tarea más habitual), pero también permite compartir impresoras, gestionar correo electrónico, etc.

Por suerte, sobre todo para los que ‘semos probes’, para disponer de un servidor no hace falta un Pentium nosécuántos. O un Dual Core. Sencillamente, un Pentium II nos valdrá, sobre todo para el fin de este tutorial. Pero si no posees uno, tranquilo, yo te lo vendo (je, je, es broma). En serio, aunque no sea recomendable, el único PC de tu casa o trabajo te valdrá, el mismo que utilizas en este preciso momento.

¿Qué vamos a lograr con este tutorial? Pues bien, nos ponemos una meta no muy complicada que seguro os anima a llegar a más con vuestro server. La idea es alojar páginas en nuestro PC mediante Apache, y hacer que quien teclee una URL determinada acuda a ellas automáticamente. Pero, además, lograremos que esos hacheteemeeles no sean algo estático. Al contrario, les añadiremos el dinamismo de PHP y las bases de datos de MySQL para que podamos, por ejemplo, utilizar un CMS, un gestor de contenidos del tipo WordPress, Mambo, Joomla o Drupal. Dicho de otra manera: albergaremos una página web dinámica en nuestro propio PC y permitiremos que la gente lo vea. Y todo ello, con una distribución ordinaria como Ubuntu 6.10 Edgy Eft y en un lenguaje de humanos.

Para ir abriendo boca, vayamos instalando unas cosillas. Abre una Terminal (Aplicaciones / Accesorios / Terminal) y teclea (copiapega) lo siguiente:

sudo su [mete tu clave root]
apt-get install php5 php5-mysql mysql-server mysql-client mysql-common

Deja que se descarguen e instalen solos esos 90 Mb. Y si te apetece saber más, aguarda hasta mañana. Aquí, a la misma hora.

Aquí está mi proyecto (y II)

30 - octubre - 2006 en 9:18 am | Publicado en Proyectos | 7 comentarios

servidor30102006.jpgAyyyy, hijo, si le pusieras las mismas ganas a los libros que al ordenador…“. Esto lo decía mi madre hace muuuuuuchos años. Yo jugaba al FIFA, con un pseudo Raúl González que comenzaba a meter goles con el Real Madrid, y ella no entendía por qué esos muñecacos de mentira me entretenían más que el muñecaco que me enseñaba en un aula. Ella también tiene su muñecaco, un tal Jefe, al que suele hacer mención en casa con frases irreproducibles en este nuestro lugar…

La verdad es que si las aulas fueran como un blog, el absentismo escolar sería cosa del pasado. Ayer vuestros comentarios me encantaron y engancharon. Es más, los he impreso para seguir vuestras recomendaciones y para informarme de qué pasos podría seguir para llevar a buen puerto el / mi / vuestro / terrícola proyecto.

Hay mucho por avanzar y poco tiempo para dedicarle al asunto. Es necesario priorizar. La idea inicial es que haya unos contenidos libres y accesibles al mayor número de usuarios posibles. Creo, pues, que esa primera opción sería ofrecer esas imágenes vía navegador y luego, si hace falta, ya iríamos definiendo más las cosas, como ver si se hace una aplicación de escritorio, automatizar en lo posible la subida de archivos, etc.

De momento, ya voy dando mis primeros pasos en el tema de los servidores. Me he dejado de tonterías. Después de leer cosas del tipo “Como Debian, ninguna…“, “Probad Mandriva en un server, no os decepcionará“, y demás, me he decantado por la última de Ubuntu por dos motivos: uno, porque conozco esta distribución, y segundo, porque al final, se le pueden añadir los paquetes necesarios (Apache, MySQL y PHP) desde apt o Synptic. Pasaba de entornos sólo texto; me recuerdan al pasado más rancio.

Cambiamos de tema. Adelanto algunos asuntos que trataremos a partir de mañana. Por un lado, explicaré cómo tener un Linux de cumlaude nada más acabar la instalación. Por supuesto, hablaré de cómo es la instalación de Ubuntu Edgy Eft, de cuya versión beta (calcada a la final) elaboré un manual. Y también, de la mayor alegría que me ha dado Ubuntu en los últimos días: por fin he podido sincronizar mi puñetero iPod Shuffle en Linux. Todo esto y más, desde mañana.

Aquí está mi proyecto (I)

28 - octubre - 2006 en 8:33 am | Publicado en Proyectos | 16 comentarios

proyecto1_28102006.jpgDentro de poco, elecciones sindicales en el trabajo. Y hablando de estos temas con los representantes laborales, resulta que ayer me enteré de que un delegado sindical puede pedir, por ley, las cuentas de la empresa. Sí, sí, esos datos que todo jefe guarda con llave porque si llegaran a manos ‘ajenas’ sería un desastre. Quizá con razón.

Yo no oculto nada. Ni soy empresa ni pienso vivir de ello (ni nadie que lo copie), así que hoy os hablaré de mi proyecto, con el que os vengo dando la lata toda la semana. Quizá os decepcione, quizá os parezca tonto, quizá me merezca 20.000 comentarios llamándome de todo, pero es un proyecto, un esbozo, algo cambiable con vuestras ideas, más que de software libre, de contenido libre. Y, por lo que he podido constatar, bastante necesario.

Os pongo en antecedentes a los nuevos: mi jefa actualizó esta semana unos PCs y me traje a casa un PIII 1 Gh (que no 700 Mh, como pensaba). Esa máquina pensante, que seguro rinde como algunos Core Duo de Mediamarkt, es la base del proyecto.

Allá va: la idea es crear una biblioteca fotográfica libre. Ya lo he soltado. Para que os hagáis una idea, sería una mezcla de Flirk, Google Images y base docuental, pero con otras características que creo esenciales a día de hoy para tener algo de eco:

1º) Serían fotos libres, con su autor, de modo que cualquiera podría usarlas adjuntando el nombre del mismo, excepto en casos comerciales (es decir, venderlas directamente). En dicho momento, se debería contactar con el propio autor (beneficio económico para éste).

2º) Serían imágenes de calidad (aprox., 500 Kb cada una). Es una manera de casi saber que quien las envía es dueño de esas tomas y las ha hecho con su cámara. Si buscáis por Google Imágenes, Flirk y demás, veréis que casi ninguna tiene ese tamaño. Las hay, pero de este modo seguro que el envío es más sincero que si se admiten imágenes de cualquier peso.

3º) Todo el material residirá en la misma máquina. Que sea más o menos potente no influye sustancialmente a la hora de servir en Internet. Casi todo depende de ese gran lastre de la navegación por Internet en España llamado velocidad de subida.

4º) A día de hoy, pruebo diversas ‘distros’ que me instalen LAMP (Linux + Apache + MySQL + Php), aunque me gustaría algo gráfico. He utilizado la nueva Ubuntu 6.10 Server y no lo es. Quizá me decante por una Debian. Veremos, pues debo cambiar la unidad de CD al PC, pues da más botes que yo la próxima Navidad cuando me toque la lotería. Por cierto, se aceptan ideas, tutoriales y demás recomendaciones, como siempre se ha hecho.

proyecto2_28102006.jpgComo os decía antes, he podido constatar que sería una herramienta útil. Imaginaos: gente que tiene blogs, publicaciones electrónicas, periódicos, gente que disfruta viendo fotos, etc. Hay muchísimos interesados potencialmente. Fijaos: hace 3 meses necesité una fotografía (para una portada del tamaño de un folio) de la entrada a un aeropuerto (cualquiera, me daba igual cuál). Un fotógrafo tomó la imagen y me cobró 60.000 pesetas (360 euracos de nada). Todo, por un click. Anda que si llega a tener que revelar… ¿Y si hubiera tenido yo a mano una herramienta como la que proyecto?

Daos cuenta también de cuánta gente fotógrafa amateur hay… ¡A patadas! Y con la tecnología digital, más. Gente a la que le gusta disparar y que no espera nada por ello. Simplemente, que salga su nombre junto a la imagen. Y si por lo que sea obtiene un reconocimiento ($), pues mucho mejor.

Y así marchan las cosas, amigos. Mañana, más y mejor. Por cierto, ya tengo un nombre elegido para el proyecto. Pero eso es harina de otro costal…

Crea un blog o un sitio web gratuitos con WordPress.com.
Entries y comentarios feeds.