Cómo se ha hecho esta web

How to

 
I want this document serve to show how easy it is to apply the DIY concept or as we would say for these lands do it yourself.

To say that without the commitment and help of my father this would not have been possible and I would have missed the interesting assembly of this website than my modest opinion and to be the first time has been ironed.

What do we need?

Not by obvious we are going to ignore it.

Internet access.

Since everything will work in my house, if I do not have internet, we will not be able to do it as I will try to explain below.

Access to our router to be able to map the IP ports that will make this development public.

Hardware

Raspberry PI logo

In our case we had a Raspberry Pi 2 that we did not use for anything since my father bought it to make a Smart TV, and when switching from internet provider is no longer useful, no longer manufactured, so you will have I go to the Raspberry PI 3 right now between about 34 or 38 euros.

Of course a 16GB SD memory card, which we also had and a 2A mobile power supply. In the case of the SD, I advise one of quality since it will be the hard disk of our raspberry and we will not joke with the importance that this component has in our project.

All this if you do not have it, you can get it in many places depending on the hurry you have entered, in Amazon we will arrive very soon and in other places will be slightly cheaper but cost more time to receive it, my father buys his things At BangGood.

For the initial moment we also need a keyboard and a USB mouse, which could be worth anyone we have at home.

If you do not have them then you will also have to buy them.

And the most important thing to start a TV with HDMI input and a cable to connect.

What else?

An internet domain for our business to be accessible from the same.

In this case my father, who is also a collector of domains, for this project already had casaempuja.com.

For those who do not have the information I leave for you to buy, do not know anyone that this management does for free.

Well if any, use noip.

You can go to Nerion Networks, some guys who are in Zuera and who are engaged in this business, you sign up and buy it.

Once purchased will have to configure the DNS or domain servers, this service also give them but charging.

At the same time we will go to a free domain server and also provide mechanisms to synchronize our internet router (IP) address with our domain name, usually www.

For this my father uses and advises freeDNS the same as in the case of the domain, we register and we obtain a free account.

When the time comes, we’ll see what we can do to set up information on both sites for the miracle to take place.

A bit of everything.

I hope that if you continue reading this post, it is that the worm has been awakened.

Raspberry Pi is a small-plaque computer, single-plate computer or low-cost simple board computer (SBC) developed in the United Kingdom by the Raspberry Pi Foundation, with the aim of stimulating the teaching of computer science in schools.

If you want to know more about this as the other things that I will put, then googlear.

It can be installed several operating systems or utilities at a time depending on the SD card we have simply the space that each of them uses and has a boot loader that will allow us to choose which one we run.

For our case we use any of the raspbian that come in the current distribution.

It is a port of the debian operating system that according to them is the most universal and runs perfectly on the raspberry.

Once we have the raspberry running, for our web we will need a web server, in this case (Apache 2) A CGI (PHP7)

A database server (MariaDB)

And a content manager (WordPress)

All of them running on our magnificent computer.

Let’s do it.

Well, if we already have all the material, let’s start.

There will be some step that will make you long, it does not matter, surely you have something to do in the meantime.

We will go to the raspberry download area:

We will download NOBS, since this one comes with all the options and if someday you want to experiment, then that already you have it.

I leave some link to youtube videos very instructive about it

Video 1 It does it from mac, but it is easy to see with other systems like window.

Video 2 This is similar but with windows.

A usefull link To the SD foundation that has programs to format SD.

 

We have already downloaded, decompressed and put in the SD.

We put it in the raspberry and if you have everything connected, plug the raspberry and wait for what goes on the screen, you will usually have something like this:

You leave the language like this and like operating system the raspbian with PIXEL.

You give him to install and to wait for.

After a while, you will ask us to restart, then you give and wait until a screen like this:

You already have the raspberry running, now we are going to start configuring it so that we can remove the graphic part, keyboard and others, so that the steps that we can do now can be done from another computer via ssh or PuTTY.

Let’s go

The first set the IP address, this will be important throughout the installation and configuration process, see link nor I would explain it better.

Whenever we use the nano editor do not forget to save the edit before you exit ctrl-o saves and ctrl-x exits.

The case is that the /etc/network/interfaces file needs to look like this:

Once with the fixed IP address, and after restart:

We pick on the raspberry and we get this:

Where Raspberry Pi Configuration comes, click:

In the part of System, we leave it as it is in the photo, you see that I rename it as miweb, you can do what you want, the rest, just like this.

Very important, change the password first (Change Password), write it down, because we will be asked many times throughout the installation and configuration.

We go to the interfaces tab:

 

As you can see, we enable SSH.

 

 

 

 

 

 

 

We give the yes and wait.

 

 

 

 

 

Tachan!!!

Once the raspberry has been started again, from here we can use the screen, mouse and keyboard or remove all this and from any computer connected to the network, use PuTTY or ssh to connect to it.

We prefer ssh.

We connect:

The first time, we will have a key exchange dialog to secure the connection to what we will answer affirmatively, then enter the password and voila:

 

The first thing will be to leave our raspberry to the last one, this is a series of commands to which when it asks us to accept always we will answer affirmatively. Some take some time until they are completed so my recommendation is to have patience.

If he tells us they are already installed, then that.

Here we will do a reboot, so that everything is OK from the beginning.

In the boot process we will have disconnected, so we connect again.

Let’s leave the list of repositories from where to install more software, well configured.

For now we will leave it like this:

Update the list of packages.

In parts, Jack the Ripper said.

Install MariaDb link To someone who explains it better.

During the installation of the database will ask us to put password to the super user of the  database, root, we will give one and of course we will remember. Whenever we have to do something with the database will ask us.

And the confirmation:

When the process is finished, we will have the database 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: