Cómo se ha hecho esta web

Guia burros

Quiero que este documento sirva para mostrar lo fácil que es aplicar el concepto DIY o como diríamos por estas tierras háztelo tu mismo.

Decir que sin el empeño y ayuda de mi padre esto no hubiera sido posible y me hubiera perdido el montaje tan interesante de esta web que en mi modesta opinión y para ser la primera vez ha quedado planchada.

¿Qué necesitamos?

No por obvio lo vamos a pasar por alto.

Acceso a internet.

Ya que todo va a funcionar en mi casa, si no tengo internet, no vamos a poder hacerlo tal cual intentaré explicar a continuación.

Poder acceder a nuestro router para poder “mapear” los puertos que harán público este desarrollo.

Hardware

Logo de Raspberry

En nuestro caso disponíamos de una Raspberry Pi 2 que no utilizábamos para nada ya que mi padre se la compro para hacer una Smart TV, y al cambiar de proveedor de internet ha dejado de ser útil, ya no la fabrican, con lo que os tendréis que ir a la 3 en estos momentos entre unos 34 o 38 y pico euros..

Por supuesto una tarjeta de memoria SD de 16 GB, que tambien teníamos y un alimentador de los de móvil de 2A. En el caso de la SD os aconsejo una de calidad ya que va a ser el disco duro de nuestra raspberry y no vamos a bromear con la importancia que tiene este componente en nuestro proyecto.

Todo esto si no lo tenéis, lo podéis conseguir en muchos sitios dependiendo de la prisa que os haya entrado, en Amazon  nos va ha llegar muy pronto y en otros sitios será ligeramente mas barato pero costara más tiempo en recibirlo, mi padre compra sus cosas en BangGood.

Para el momento inicial tambien necesitaremos un teclado y un ratón USB, que pude valer cualquiera que tengamos por casa.

Si no disponéis de ellos pues tambien habrá que comprarlos.

Y lo mas importante para el arranque una tele con entrada HDMI y un cable para conectar.

¿Qué más?

Un dominio de internet para que nuestro negocio sea accesible desde el mismo.

En este caso mi padre, que tambien es coleccionista de dominios, para este proyecto ya disponía de casaempuja.com.

Para los que no dispongáis de el os dejo información para que lo compreis, no sabe de nadie que esta gestión la haga gratis.

Vais a Nerion Networks, unos chicos que están en Zuera y que se dedican a este negocio, os dais de alta y lo compráis.

Una vez comprado habrá que configurar los DNS o servidores de dominio, este servicio tambien lo dan ellos pero cobrando.

Paralelamente iremos a un servidor de dominio gratuito y que además provee mecanismos para tener sincronizada nuestra dirección de internet del router (IP) con nuestro nombre de dominio, habitualmente www.

Para esto mi padre utiliza y aconseja freeDNS lo mismo que en el caso del dominio, nos registramos y obtenemos una cuenta free.

Cuando llegue el momento ya veremos que haremos para configurar en ambos sitios la información para que se produzca el milagro.

Un poco de todo.

Espero que si seguís leyendo este post, es que se os ha despertado el gusanillo.

Raspberry pi es un ordenador de placa reducida, computador de placa única o computador de placa simple (SBC) de bajo coste desarrollado en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas.

Si queréis saber más de esto como de las demás cosas que voy a poner, pues a googlear.

Se le pueden instalar varios sistemas operativos u utilidades a la vez dependiendo de la tarjeta SD que tengamos simplemente por el espacio que utiliza cada uno de ellos y tiene un botador que nos permitirá elegir cual corremos.

Para nuestro caso utilizaremos cualquiera de los raspbian que vienen en la distribución actual.

Es un “port” del sistema operativo debian que según ellos es el más universal y que corre perfectamente en la raspberry.

Una vez tengamos corriendo la raspberry, para nuestra web necesitaremos un servidor web (Apache 2) un CGI (PHP7)

una base de datos (MariaDB)

y un gestor de contenidos (WordPress) 

todos ellos corriendo en nuestra magnifica computadora.

Manos a la obra.

Bueno, si ya tenemos todo el material, vamos a empezar.

Habrá algún paso que se os va a hacer largo, no importa, seguro que tenéis algo que haver mientras tanta.

Iremos al area de descargas de raspberry:

Descargaremos NOBS, ya que este viene con todas las opciones y si algún día queréis experimentar, pues eso ya lo tenéis.

Os dejo algún enlace a videos de youtube muy instructivos al respecto

Video 1 lo hace desde mac, pero es facil de ver con otros sistemas como window.

Video 2 este es parecido con windows.

Un enlance a la fundación SD que tiene programas para formatear la SD.

 

Ya tenemos descargado, descompactado y puesto en la SD.

La introducimos en la raspberry y si tenéis todo conectado, enchufar la raspberry y a esperar lo qué sale por pantalla, normalmente tendréis algo parecido a esto:

En lenguaje seleccionáis el es y como sistema operativo el raspbian con PIXEL.

Le dais a instalar y a esperar.

Al cabo de un rato, os pedirá que reiniciéis, pues le dais y a esperar hasta que salga una pantalla como esta:

Ya tenéis la raspberry funcionando, ahora vamos a empezar a configurarla para que ya le podamos quitar la pantalla teclado y demás para que los pasos que a continuación haremos ya se puedan hacer desde otro ordenador via ssh o PuTTY.

Al grano:

Lo primero fijar la dirección IP, esto sera importante en todo el proceso de instalación y configuración ver enlace ni yo mismo lo explicaría mejor.

Siempre que utilizemos el editor nano no os olvideis de salvar la edición antes de salir ctrl-o salva y ctrl-x sale.

El caso es que el fichero /etc/network/interfaces os tiene que quedar así:

Una vez con la IP fija, y después de reiniciar: 

 picamos en la frambuesa y obtendremos esto:

 pues donde viene Raspberry Pi Configuration, clicamos:

 en la parte de System, lo dejamos como esta en la foto, ya veis que yo al sistema lo renombre como miweb, vosotros podéis hacer lo que queráis, lo demás, tal y como esta.

Muy importante, cambiar el password lo primero (Change Password), apuntarosla, porque se nos pedirá muchas veces a ño largo de la instalación y configuración.

Pasamos a la pestaña de interfaces:

 como se ve, habilitamos SSH.

Pasamos de Performance, y vamos a la pestaña Localisation.

 

 

 

dejamos Locale para España tal y como se ve en la foto.

 

 

 

 El Timezone como se ve.

 

 

 

 

 

lo mismo para el teclado,

 

 

y por ultimo el wificountry:

 

 

 

 

 

cuando le demos al OK final saldrá algo como esto:

 le damos al yes y a esperar.

 

 

 

 

 

Tachan!!!

Ya se a vuelto a arrancar la raspberry, a partir de aquí podemos utilizar la pantalla, ratón y teclado o quiterle todo esto y desde cualquier ordenador conectado a la red utilizar PuTTY o ssh para conectarnos a ella.

Nosotros preferimos ssh.

Nos conectamos:

La primera vez, tendremos un dialogo de intercambio de claves para securizar la conexión a lo que contestaremos afirmativamente, para a continuación introducir la contraseña y voila:

 

Lo primero sera dejar nuestra raspberry a la ultima, esto es una serie de comandos a los que cuando nos pida aceptar siempre contestaremos afirmativamente. Algunos tardan algo de tiempo hasta que se completan por lo que mi recomendación es la de tener paciencia.

Si nos dice que ya están instalados, pues eso.

Aquí haremos un reboot para que este todo OK desde el principio.

Durante el proceso de rearranque nos habrá desconectado, por eso nos conectamos de nuevo.

Vamos a tocar la lista de repositorios para poder instalar más software.

Quedará algo como esto:

Actualizamos la lista de paquetes.

Vallamos por partes, dijo Jack el destripador.

Instalar MariaDb link a alguien que lo explica mejor.

Durante la instalación de la base de datos nos irá pidiendo datos para la contreseña del super usuario de la base de datos, root, le daremos una que nos apuntaremos, no podemos olvidarla. Será algo parecido a:

Y la confirmación:

Cuando el proceso acabe tendremos la base de datos OK.

Perfecto, a continuación vamos a securizarla como nos recomiendan aquí, aunque solo le hacemos caso en lo de seguridad y crear entorno de base de datos para wordpress

Algo así:

Ya que estamos con la base de datos aprovecharemos para crear la base de datos y el usuario para WordPress

Dentro de la consola de la base de datos le pediremos que ejecute lo siguiente:

No os olvideis del punto y coma (;) al terminar las ordenes.

Pues ya tenemos la base de datos esperando para la instalación de WordPress.

Servidor Web Apache 2 y su CGI PHP 7 

Hemos seguido lo que en este enlace se aconseja:

Lo primero el repositorio desde donde lo vamos a bajar.

Añadiremos al final las siguientes lineas:

Para dejarlo así:

Esto puede tardar un ratito.

Ya queda menos.

Veamos que hemos tenido éxito.

Una cosilla más:

Ahora ya podemos ver que Apache y PHP funcionan, abriremos un navegador y pediremos http://192.168.1.22/  y…..

y si pedimos http://192.168.1.22/phpinfo.php

!Exito total¡

Es el momento de tomarse un cervecita….

Securizar las conexiones del Apache

Es muy importante que cuando accedamos a nuestra página desde el mundo mundial, las comunicaciones sean seguras, tened en cuenta que vamos a exponer nuestro usuario y contraseña al mundo mundial.

Esto se soluciona haciendolo via https en vez de http , para esto necesitamos un certificado que vale una pasta, y que lo podemos solucionar haciendonoslo nosotros aunque el navegador de alertas de seguridad. Nosotros sabemos que la comunicacion es segura y saltaremos las advertencias. Hay infinidad de sitios que dicen como, este es un ejemplo.

Manos a la obra

Vaya, ya estaba instalado, no importa, sigamos…

Creamos una llave privada:

Crear un CSR que será la base para el ssl de nuestro servidor:

Generar certificado SSL

Los copiamos a la carpeta de los certificados.

Editamos 000-default.conf

y le añadimos al final esto:

Una cosa más, le vamos a añadir una directiva para que en el caso de que queramos administrar nuestra web desde el mundo mundial, automaticamente nos securice la sesión.

Y dentro de la configuración para el puerto 80 le añadimos la siguiente directiva Redirect permanent /wp-admin https://www.casaempuja.com/wp-admin de tal manera que quedara así:

Recargamos apache sudo service apache2 reload y ya tenemos el SSL activado. Prueba con https://192.168.1.22/ y veras el resultado.

Infraestructura DNS.

Ya solo queda instalar WordPress, pero antes vamos a volver al dominio que compramos, a nuestro servidor DNS y a configurar los puertos de nuestro router de acceso a internet.

Iremos a: https://ssl.nerion.es/gestion/ nos identificaremos con la cuenta con la que nos registramos para comprar el dominio, una vez dentro iremos a DOMINIOS Y PLANES seleccionaremos nuestro dominio y a continuación en Modificar servidores DNS de tal manera que nuestros dns quedaran así:

*

*

*

*

Bien, ahora iremos a la pagina de nuestro servidor de DNS http://freedns.afraid.org/ nos identificaremos con nuestra cuenta, selecionaremos el dominio que previamente hemos registrado y si no lo registrsmos ahora.

Le daremos a manage y añadiremos un registro de tipo A como en la instantanea:

Y por último vamos en el menú principal a Dynamic DNS

Tiene que salir algo así:

Si la url de nuestra web no sale, la añadiremos para a continución picar en quick cron example, nos saldrá algo como esto:

 

Como veis en la imagen, seleccionamos la ultima linea y le damos a copiar, nos vamos a nuestra raspberry.

Como cada vez que se arranca el router o aleatoriamente se cambia la IP pública solo nos queda añadir una linea al cron de nuestra raspberry para que se encargue de mantener sincronizado nuestro dominio con la IP pública, ejecutamos:

Vamos al final del fichero que aparece y le damos a pegar lo que acabamos de seleccionar en la web, quedará algo así:

Como siempre ctrl-o ctrl-y y ya esta listo para cuando se cambie la ip de nuestro router se sincronice automáticamente.

Ya solo nos queda mapear nuestro router, que dependiendo del modelo será de una forma u otra, de cualquier manera de lo que se trata es de que el puerto 80 tcp y el 443 tcp apunten a la dirección interna de nuestra raspberry que como veis en este caso es la 192.168.1.22.

Es aconsejable, que si queremos utilizar el ssh desde el mundo mundial, mapeamos tambien por ejemplo el 22468 tcp y udp de nuestra IP publica al 22 de nuestra raspberry.

El fichero hosts.

En todos los sistemas operativos hay previsto para la resolución de nombres un fichero que se consulta antes que ir al DNS, y si encuentra ahí el nombre, directamente saca de ahí la dirección IP del host que estamos buscando.

Pues bien, si estamos en la misma red que nuestra raspberry y en el mecanismo de resolución nos manda a la IP externa de nuestro router, pues eso que se va a liar. Veamos como solucionarlo.

Lo que tenemos que hacer es añadir a ese fichero una linea que haga que al resolver la dirección de nuestra web el navegador encuentre la IP interna que nuestra raspberry.

Dependiendo de que sistema operativo estemos empleando este fichero se encuentra en una ubicación determinada, pues a googlear y a editar ese fichero en nuestro caso lo dejariamos así:

 Así cuando pongamos en el navegador http://www.casaempuja.com el ira al servidor apache que tenemos en la raspberry.

Y por fin WordPress.

Si recordais, más arriba cuando hemos ido a la pagina inicial de apache, en la leyenda que nos saca, dice que esta sirviendo desde el directorio /var/www/html pues bien nos iremos a ese directorio

Vamos a borrar todo lo que hay ahí ya que vamos a poner nuestro WordPress

Con nuestro navegador navegador nos vamos al area de descargas de WordPres en castellano y con el boton secundario del raton le damos a copiar la dirección del enlace del fichero tar.gz.

En nuestro caso y a la fecha de hoy seleccionamos la de la rama 4.8. A la raspberry

sudo wget y la dirección que hemos copiado de la página de WordPress

!Qué nervios¡

ya acabamos 

Qué hemos hecho?

Nos hemos bajado el paquete de wordpress, lo hemos desempaquetado, lo hemos copiado a la posicion en que estamos, hemos borrado el paqute bajado y le hemos cambiado a todos los archivos y carpetas al ususario www-data que es el ususrio de apache 2. De tal forma que si ahora hacemos

Obtenemos esto:

Ya casi esta.

Ahora si ya tenemos nuestro fichero hosts en condiciones, vamos al navegador y ponemos http://www.casaempuja.com obtendremos esto:

¡ Vamos a ello !

¿Os acordais de cuando creamos la base de datos de wordpress el usuario y la contraseña? pues eso lo hemos puesto en esta pantalla.

Enviar…

Pues a Ejecutar la instalación

Unos datos más, el usuario y la contraseña de wordpress y poco más.

Instalar WordPress

¡ Qué grandes somos ! lo hemos logrado. Acceder.

Nos pide usuario y contraseña, que son los que acabamos de poner y….

Ahora si que si…..

Ya tenemos el escritorio de nuestra web.

Pues vamos a visitar nuestro sitio…..

Y…..

A qué es majo

Final..

Ahora comienza lo difícil, nos pondremos a googlear para poder utilizar WordPress esto no tiene limite.

Os dejo un enlace a youtube de un cursillo que tiene Jesús Conde, que a mi me ha servido, no es con la última version de WordPress, pero si que sirve para haceros una idea..

Lista de reproducción de Tu primera web con WordPress

Bonus pack

Evitar que WordPress nos pida que las instalaciones se hagan por FTP.

Si ya habeis manipulado la web, habreis observado que os pide cosas relaccionadas con un servido FTP que tendriamos que haber instalado y/o configurado.

Pues bien, esto se puede evitar haciendo lo siguiente:

Y añadir la directiva define(‘FS_METHOD’,’direct’); para que quede mas o menos así:

Pues ya esta, como siempre:

Evitar que SSH nos pida la contraseña del usuario PI cada vez que nos conectamos

Ya sé que esto es molesto, pues eso vamos a ver como evitarlo y de paso darle al usuario pi una contraseña “indescifrable” para tratar de evitar ataques descontrolados.

Vamos a crear un cerificado en la maquina cliente y cruzaremos esta información con nuestro servidor raspberry.

En la máquina cliente:

Ya está, si ponemos ahora ssh pi@192.168.1.22 ya no nos pedirá la contraseña, vamos a ello…

Y ahora, si quereis le cambiamos la contraseña: