Como crear un servidor casero en 10 minutos con Raspberry Pi

Crea un servidor web con Raspberry Pi casero en 10 minutos

Como el título indica, vamos a gastar 10 minutos de nuestro tiempo en montar nuestra propio servidor casero. El ordenador perfecto para hacer de servidor local en casa es un ordenador pequeño de consumo reducido. ¿Y cual es el ordenador más pequeño y que menos consume? Exacto: la Raspberry pi. Para ello solo vamos a necesitar una y un poco de paciencia. Al finalizar el tutorial tendrás tu propio servidor web, que te servirá por ejemplo para hacer pruebas. Incluso, este servidor local, te servirá para preparar tus propios sitios en wordpress en local antes de subirlos a producción. Y ya si quieres rizar el rizo, redirigiendo el puerto 80 de tu router hacía la ip de la raspberry podrás lograr que tu servidor casero esté disponible para todo el mundo.

Aviso: tienes la solución más optimizada para tu servidor web local a fecha Enero de 2019 al final de la entrada. Puedes llegar antes pulsando aquí

🙂Razones para montar un servidor web casero con tu Raspberry

Seguro que estarás cansado de buscar y probar opciones de web hosting gratis. Créeme, no hay una que te dé todo lo que necesitas para montar tu sitio web. Lo mejor es crear tu propio servidor web en casa. Todas las opciones de alojamiento web gratis tienen alguna tara. ¿Sabes por qué? porque gratis y regalado hace tiempo que murieron.

Así que desconfía si alguien te ofrece hosting gratis. Ese alojamiento web gratuito o te inserta publicidad, o es más lento que el caballo del malo. Es posible que tu servidor lo compartas con cientos o miles de webs que se dedican a extraños procesos que consumen los recursos del ordenador en el que se aloja tu web. Así que cuando consigas conectar parecerá que has vuelto a los tiempos del módem de 56K.

Aprende como crear un servidor web en casa

Huye de servidores web gratuitos

Por todo lo anterior la consigna es clara: huye de servidores web gratuitos. Todos prometen el cielo y realmente te dan un billete derecho al infierno. Ya te lo he dicho, regalado se murió. El 99,99% de los alojamientos web gratuitos son lentos, incluyen publicidad y pasan mas tiempo caídos que online.

Por no hablar de nuevo que vas a compartir servidor web con la creme de la creme del spam. Esa es la principal funcionalidad de los servidores web gratis: alojar toneladas de spam.

Crea tu propio servidor para huir del spam

Ventajas de usar una Raspberry como servidor casero

¿Porqué hemos elegido la Raspberry Pi como base para armar nuestro servidor casero? Son muchos los motivos para utilizar una Raspberry como servidor casero Pues vamos a enumerar las ventajas

Vamos a lograr un servidor casero barato

Ahora seguro que estás pensando que crear un servidor web es muy complicado y costoso. Pues no. Costoso ni de coña. La opción más asequible y decente sería contratar un vps. El mejor en relación calidad / precio para mí es el básico de ovh. Esto vienen a ser unos 60 € al año. La Raspberry Pi está en 35 €. Así que en 6 meses has amortizado la inversión. ¿Complicado montar un servidor web en casa? Pues tampoco. Con poco más de 4 comandos lo tendrás listo y funcionando y, aprenderás un montón.

La versatilidad de la Raspberry Pi como servidor casero

Y además de convertirla en servidor casero local, puedes usar la Raspberry para un montón de cosas mas: montar tu propio NAS, hacer tu propia VPN para acceder a tu red desde cualquier lugar del mundo. Puedes convertirla en un centro multimedia que reproduce vídeo en 1080 sin problema. Incluso la puedes usar como sistema de videovigilancia casero o como contador de personas.

Servidor casero de bajo consumo y silencioso

Otra ventaja es que tendrás un servidor casero de bajo consumo eléctrico. La Raspberry Pi gasta tanta electricidad como la carga de un móvil. Por un lado vamos a ahorrar al no tener que contratar un hosting y, por otro, apenas nos va a afectar en la factura de la luz.

Y, además, al carecer de partes móviles, no escucharás ningún ruido molesto y reinará el silencio en la habitación en la que hayas instalado tu servidor casero.

Así que si no tienes intención de montar tu propio Amazon o una alternativa a Facebook, sino que tan solo quieres una simple página web en wordpress, tu mejor opción es seguir leyendo el tutorial. Si tienes cualquier duda intentaré resolverla en los comentarios. Vamos con nuestro alojamiento gratis a lo Juan Palomo. Vamos a crear un servidor web casero paso a paso

1️⃣Preparando todo para el servidor casero web en la Raspberry Pi

Pues empecemos yendo directos al grano. Al final del tutorial deberíamos ser capaces de montar un servidor web casero. Vamos a ser nuestros propios proveedores de hosting gratuito. De esta manera ahorramos un poco de dinero, aprovechando nuestra flamante fibra óptica y, a pesar de nuestra ip dinámica.. Así que como dijo mi amigo Jack, vamos por partes.

  1. Necesitas una Raspberry Pi 3, un mini-ordenador equipado con un 1gb de RAM,un flamante QUAD-CORE y una GPU capaz de reproducir video a 1080p por HDMI sin despeinarse. Una tarjeta Micro-sd de clase 10, un cargador de móvil microusb (recomendable al menos 2 Amperios), un cable hdmi (seguro que tienes uno en casa que te va a hacer de donante temporal para el primer arranque) y mucha paciencia. También puedes aprovechar para montar tu servidor web algún equipo que tengas sin uso en casa. Pero seguro que hace más ruido, ocupa mas sitio y consume mas que la Raspberry[amazon_link asins=’B01CD5VC92,B01CI58722,B01566WOAG,B06XW91D41,B06XW97Z9M,B06XFHQGB9,B01N10KEPP’ template=’ProductGrid’ store=’ppmv-21′ marketplace=’ES’ link_id=’bfccd22b-8807-11e8-a1ac-77e94c02a7c3′]
  2. Descárgate una imagen actualizada de Raspbian, te recomiendo la LITE, sin entorno gráfico ni escritorio, es ideal para montar un servidor casero local en la Raspberry. Raspbian es un derivado de Debian, una distribución de Linux optimizada para sacar todo el jugo a esta placa todo en uno. Llegados a este punto, no te asustes. Vas a tener que usar la consola de Linux. Al principio puede parece complicado, pero lo coges rápido e incluso, la echarás de menos en Windows.
  3. Una vez descargada, la descomprimes. Te instalas el Win32DiskImager. Esta es una herramienta que se encarga de grabar la imagen de Raspbian en la Tarjeta Micro-SD de la Raspberry. Eso sí, borrando todos los datos que puedas tener en ella. Es muy sencilla de utilizar, seleccionas la unidad que se corresponde con tu tarjeta micro-sd y la imagen que previamente has descargado y descomprimido de Raspbian y le das al botón Write.
    [amazon_link asins=’B073JWXGNT,B079HBRTZW,B00519BEQO,B073K14CVB,B073JYVKNX,B073JYC4XM’ template=’ProductGrid’ store=’ppmv-21′ marketplace=’ES’ link_id=’0f495458-b676-11e8-882e-b5f8edd3a140′]
  4. Cuando finalice la escritura de la imagen en la microsd, la expulsas del pc , la colocas en la ranura de la Raspberry Pi 3 y prendes la placa (fuego no, al menos todavía) conectando el cable HDMI , un teclado usb y el microusb. Si todo ha salido bien, una pila de letras blancas y verdes aparecerán sobre el fondo negro de la pantalla a la que hayas conectado la placa. No es el fin del mundo, es tu pequeño servidor casero arrancando. Cuando finalice el arranque verás el cursor parpadeando y pidiéndote tu login…
  5. Que no cunda el pánico. En Debian, para manipular nuestro servidor casero necesitamos un usuario. Eso es lo que te está preguntando ahora la Raspberry Pi ¿Quién eres?, así que como somos muy educados le contestamos: “pi” (sin las comillas) y pulsamos enter. Ahora nuestra pequeña placa, que no es tonta, quiere asegurarse de que realmente somos pi y no po, asi que nos pide nuestra password, que en este caso es “raspberry”, sin las comillas también, claro está. Pulsa enter y ya estarás logueado y dispuesto a empezar a funcionar.
    sudo raspi-config
  6. Si no has hecho alguna incursión en Linux te aclaro que “sudo” no tiene nada que ver con la transpiración humana, sino que sirve para ejecutar los comandos con privilegios de administrador del sistema. Con este comando accederemos a la utilidad de configuración de la Raspberry Pi. Después, navegaremos por las opciones, comenzando por “Expand Filesystem”. De esta manera le indicamos a la Raspberry Pi que debe usar todo el espacio disponible en la tarjeta microsd. Debian se expandirá para crear un servidor web casero.
    crear servidor web casreo | configurar raspberry piPosteriormente, selecciona Internationalisation Options, para poner en cristiano la Raspberry. Así podrás usar el teclado en español. Por último “Advanced Options” para activar la opción SSH y la opción “Overscan” por si en tu monitor aparecen unas bandas negras que hacen mas pequeña la superficie de la pantalla. Tras todo ello sal de la utilidad de configuración y reinicia tu servidor web casero con el siguiente comando:

    sudo reboot

     

  7. Para terminar de crear un servidor web casero vamos a asegurarnos de que tenemos todo actualizado. Para ello teclearemos un par de comandos mas:
    sudo apt-get update
    sudo apt-get upgrade

    apt-get es el gestor de paquetes de Debian, que es la distribución linux “padre” de Raspbian. Este gestor de paquetes se encarga de instalar todo aquello que te puede hacer falta en tu servidor web casero. En este caso lo primero que le estamos pidiendo es que actualice sus listas de paquetes con las últimas versiones disponibles en los repositorios de Raspbian. Con el segundo comando le pedimos que actualice todos los paquetes que tenemos instalados a las últimas versiones estables disponible. Familiarizate con su uso y acostumbra a ejecutar este par de comandos con frecuencia. De esa manera mantendrás actualizado tu pequeño servidor web casero.

Servidor web raspberry Pi casero con Apache, PHP 5 y Mysql

Instalar PHP 5 y Apache

Vamos a instalar los paquetes necesarios para seguir con la tarea de crear un servidor web en casa. En la primera parte instalamos el sistema operativo raspbian y lo actualizamos.

Así que continuamos con el lío. Primeramente vamos a instalar son los paquetes necesarios para tener Apache en nuestro servidor web casero. Después PHP para que nuestro hosting gratuito  pueda servir páginas dinámicas.
Comenzamos por actualizar las cabeceras con el comando que aprendimos en la primera parte del tutorial sudo apt-get update.

Una vez actualizadas las cabeceras instalamos los paquetes con el comando

sudo apt-get install apache2 libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc

Nos lo tomamos con calma mientras se instalan los paquetes necesarios.

Una vez finalizada la instalación ya deberíamos tener instalada en nuestro servidor casero apache2 y el intérprete de PHP. Para comprobar que todo funciona correctamente vamos a crear nuestro primer fichero en PHP.
Para ello en la terminal de la Raspberry Pi tecleamos lo siguiente:

sudo nano /var/www/html/miprimerphp.php

Y dentro de este archivo escribiremos el siguiente contenido:

<?php
echo "Hola Mundo";
?>

Después pulsamos las teclas Control + X para cerrar el archivo y guardarlo. El último paso para poder comprobar que nuestro primer programa en PHP se ejecuta correctamente en nuestro servidor web casero es averiguar la dirección IP de nuestra Raspberry Pi. La forma más sencilla de averiguar dicha IP es tecleando en la consola el siguiente comando:

sudo ifconfig

La salida de este comando nos informará, entre otras cosas, de cuál es la dirección IP actual de nuestra Raspberry Pi. Ahora desde otro ordenador abrimos un navegador de Internet cualquiera y en la barra de direcciones introducimos la dirección que hemos obtenido de nuestro servidor casero con el comando ifconfig + la ruta de acceso al archivo.

http://192.168.X.X/miprimerphp.php

Sí todo ha salido como esperábamos en el navegador de nuestro ordenador podremos ver la frase “Hola Mundo”. Ya casi tenemos montado nuestro servidor web en casa.

Instalar Mysql y phpmyadmin en nuestro servidor casero

Ahora para aprovechar toda la potencia que nos ofrece PHP es necesario instalar un motor de bases de datos. Aunque existen numerosas alternativas en cuanto a base de datos se refiere, la que mejor se lleva con PHP es MySQL. Otro día hablaremos de otros motores de bases de datos como el de Microsoft SQL Server o como el sqlite.

Así que vamos manos a la obra y seguimos con el cometido de crear un servidor casero propio. Os aconsejo tener la memoria preparada o disponer cerca de un bolígrafo y un papel, ya que durante la instalación de MySQL se os pedirá introducir una contraseña para el usuario root de MySQL.
Tecleamos el siguiente comando en la consola:

sudo apt-get install mysql-server mysql-client

Y esperamos a que se ejecute y se instalen los paquetes. Como ya os he dicho, durante la instalación os pedirá la contraseña del usuario root. Con esto queda instalado MySQL en nuestro servidor web y podemos empezar a crear bases de datos desde la línea de comandos. Ahora bien, para facilitarnos la gestión de nuestras bases de datos y poder manejarlas fácilmente vamos a instalar phpmyadmin. Para ello usaremos el siguiente comando:

sudo apt-get install libapache2-mod-auth-mysql phpmyadmin

Durante la instalación nos preguntará el tipo de servidor que tenemos instalado, tan solo tenemos que indicarle que nuestro servidor es Apache. Cuando nos pregunte si queremos configurar una base de datos le responderemos que sí. En ese momento nos solicitará la contraseña que utilizamos para instalar MySQL. A continuación nos pedirá una nueva para el propio phpmyadmin.
Sí todo es correcto bastará con teclear en el navegador de Internet la dirección IP de nuestra Raspberry Pi seguido de phpmyadmin:

http://192.168.X.X/phpmyadmin

Y accederemos a la gestión de nuestras bases de datos MySQL. Y hasta aquí la segunda parte del tutorial de cómo montar un servidor web casero en una Raspberry Pi.

Hasta el momento hemos instalado apache2, PHP, MySQL y phpmyadmin. Con todos estos componentes ya podemos empezar a hacer nuestros pinitos en la programación web.

Acceso remoto por SSH y FTP al servidor web casero

Vamos a entrar en materia para continuar nuestro servidor web casero en la Raspberry Pi. Ya tenemos todo lo necesario instalado en nuestra Raspberry Pi. Vamos a aprovecharnos de que en los primeros pasos del tutorial indicamos que queríamos habilitar el acceso por SSH a nuestra Raspberry para seguir implementando nuestro servidor web casero. Para ello necesitamos instalar, ya en nuestro PC, un par de herramientas:

  • La primera de ellas para acceder por consola a nuestra Raspberry es Putty. Conociendo la IP de nuestra Raspberry nos permite controlarla de manera remota. La descargamos en un lugar fácil de recordar de nuestro pc y la ejecutamos. Nos pedirá una dirección IP a la que conectarnos, la de nuestra Raspberry Pi, la introducimos y pulsamos Open. Se nos abrirá una ventana similar a la del MS-DOS de toda la vida en el que nuestra Raspberry nos pedirá login (pi/raspberry) si nos han cambiado las que vienen por defecto. En este punto os aconsejaría que, dado que la Raspberry va a estar conectada a Internet, cambiarais el password por defecto. Para cambiar el password lo podéis hacer desde la herramienta de configuración raspi-config o tecleando un simple comando “passwd”.
    crear servidor web en casa | accediendo por putty

 

  • La siguiente herramienta a instalar en nuestro pc es un cliente FTP. Podéis elegir el que queráis, pero yo os recomiendo FileZilla por su sencillez de uso. Una vez descargado e instalado lo ejecutamos. Podemos crear una nueva conexión, accediendo desde el menú Archivo al Gestor de Sitios o bien desde la barra de conexión rápida. Os preguntareis como vamos a acceder por ftp si no hemos instalado un servidor FTP en nuestra Raspberry. Vamos a aprovechar que activamos el acceso SSH en la Raspberry para hacer uso del protocolo SSH FTP (SFTP). Para ello en el Filezilla introducimos los siguientes datos: la ip de nuestra Raspberry, el usuario (pi) el password y el puerto 22. Si todo va bien conectaremos a nuestra Raspberry y podremos navegar por su sistema de archivos.
    crear servidor web casa | acceso sftp

Navegad hasta el directorio /var/www/html y tratad de subir algún fichero. Probablemente os encontréis con un error de operación no permitida. No perdáis la calma. Recordad que habéis accedido a la Raspberry Pi con el usuario pi, así que vuestras acciones sobre directorios están limitadas a vuestro usuario y a los permisos de escritura de los directorios. Volvemos al Putty para comprobar algunas cosillas antes de continuar.

Corrigiendo propietarios y permisos del servidor web Raspberry casero

Para empezar vamos a ver quien es el propietario de ese directorio, para ello tecleamos el siguiente comando:

ls -l /var/www

Esto nos dirá los permisos de escritura del directorio, el propietario y el grupo al que pertenece el archivo. Si todo fuera correcto la salida debería ser la siguiente:

drwxrwx— 2 www-data www-data ….

Probablemente, donde aparece www-data os ponga root. En ese caso vamos a cambiarlo para que se vaya pareciendo a lo anterior. Para ello ejecutamos el siguiente comando:

chown -R www-data:www-data /var/www/html

Con esto el directorio ya pertenece a www-data y al grupo de usuarios www-data. Este es el usuario que ejecuta Apache. Ya solo nos queda añadir nuestro usuario pi al grupo de usuarios www-data. Después ajustaremos los permisos del directorio, lo que logramos con los siguientes comandos:

usermod -g www-data pi
chmod -R 770 /var/www

El primer comando añade al usuario pi al grupo www-data, propietario de la carpeta. El segundo comando proporciona permisos de ejecución(1), escritura(2) y lectura(4), que si los sumamos dan 7 al propietario (primer dígito: 7)  y a los integrantes del grupo (segundo dígito: 7). Al resto de usuarios no les otorga ningún permiso (tercer dígito:0)

Si quieres tener el control total de tu servidor web instalado en la raspberry, te animo a que instales webmin.

Y hasta aquí, de momento, el tutorial para crear un servidor web casero en la Raspberry Pi. Nos queda trastear un poco con los VirtualHosts de Apache. Estos nos permiten tener varias webs distintas en el mismo servidor web. También tenemos pendiente descubrir como acceder desde el exterior a nuestro servidor web. Espero que haya sido de vuestro interés este tema y que si tenéis alguna duda me la hagáis llegar a través de los comentarios.

 

Servidor web Raspberry Pi casero con nginx, php 7 y Maria DB

Por fin llegó el momento de mostraros como montar un servidor en la Raspberry haciendo uso de recursos más actualizados y eficientes. Todo esto que vamos a ver no es exclusivo de la raspberry. Es de aplicación para cualquier distribución basada en Debian

¿Qué vamos a instalar y porque?

Seguro que sabes que en esto de los servidores web para hacer pruebas en casa hay múltiples combinaciones de entornos:

  • LAMP: Linux, Apache, Mysql y Php. Es lo que hemos instalado en la primera parte del tutorial
  • WAMP: Windows, Apache, Mysql y PHP. Similar al anterior pero corriendo en máquinas Windows
  • XAMPP: Windows, Apache, Mysql, PHP y Perl
  • MAMP: El mismo entorno que los anteriores pero para máquinas Apple

Todos tienen en común que se apoyan en el mismo servidor web: Apache. Yo, en mis inicios, siempre usaba soluciones basadas en Apache y Mysql. Pero cuando avanzas un poco y montas tu propio VPS, te das cuenta de que esta combinación come muchos recursos del servidor web. Apache y Mysql son voraces devoradores de memoria RAM. Cuando no hay límite de recursos, pues están muy bien. Pero cuando pretendes usar una Raspberry como entorno de desarrollo de sitios webs pues ya no funcionan tan bien. Y cuando tienes que tomar la decisión de contratar un VPS, en el que sus características son las que fijan el precio, tampoco.

Así que, de momento, me decanto por usar una solución LEMP:

  1. Linux. En mi caso Debian siempre, por su gran comunidad, su robustez y su eficacia.
  2. (Engine-X) NGINX: Ese gran desconocido. Su consumo de RAM es muy inferior a Apache. Es capaz de gestionar más páginas por segundo que Apache y su tiempo de respuesta es siempre menor.
    comparativa apache nginx páginas por segundo
  3. MariaDB: como fork open source de Mysql. Similar en cuanto a rendimiento, pero software libre mantenido por la comunidad
  4. PHP: como lenguaje de scripting. Vamos a tratar de que nuestra raspberry se trague la versión 7.2, no disponible en los repositorios oficiales. Nada de PHP 5.6, en términos de rendimiento, siempre la última versión estable de PHP por favor.

Instalando paquetes

Pues como siempre comenzamos actualizando la distribución:

sudo apt-get update
sudo apt-get upgrade

Nginx

Comenzamos la instalación del servidor web Nginx

sudo apt-get install nginx

Verás que se instalan un montón de dependencias. Tranquilo en menos de un minuto estará listo.

Instalando nginx

Puedes comprobar que Nginx está levantado y funcionando si accedes desde un navegador web a la ip de tu Raspberry:

pagina de inicio nginx servidor casero

PHP 7.0

Como os decía vamos a tratar de instalar la última versión disponible de PHP. Debian, por su política de actualizaciones y su filosofía de robustez de sus distribuciones, no siempre tienen las últimas versiones en sus repositorios. Es lo que ocurre en este caso, el PHP por defecto es la versión 7.0. Que conste que he intentado instalar PHP 7.2 pero la distribución se rompe, así que, de momento, nos conformamos con PHP 7.0

sudo apt-get update
sudo apt install php7.0-fpm php7.0-common php7.0-mbstring php7.0-xmlrpc php7.0-soap php7.0-gd php7.0-xml php7.0-intl php7.0-mysql php7.0-cli php7.0-mcrypt php7.0-zip php7.0-curl

Una vez instalado todo el repertorio, vamos a editar la configuración de php para optimizarlo y de nginx para decirle que se encargue también de servir archivos php. Para optimizar php editamos el archivo php.ini

sudo nano /etc/php/7.0/fpm/php.ini

y nos aseguramos que estos valores sean correctos. Pulsando CTRL+W buscamos dentro del editor nano

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
cgi.fix_pathinfo=0
max_execution_time = 360

Ahora editamos la configuración de nginx para decirle que se encargue de procesar archivos php:

sudo nano /etc/nginx/sites-available/default

Y descomentamos lo necesario para que nginx se encargue de servir archivos php (lo marcado en negrita)

# pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
               fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

Reiniciamos php y nginx

sudo service php7.0-fpm restart


sudo service nginx restart

¿Habrá funcionado? Vamos a comprobarlo. Creamos un archivo php con el siguiente comando

sudo nano /var/www/html/pruebaphp.php

Y le añadimos el siguiente contenido:

<?php

phpinfo();

?>

Si todo ha ido bien, este debería ser el resultado:

php7 en raspberry servidor casero

Vamos bien, así que seguimos con el tutorial.

MariaDB

Es el turno de instalar un motor de bases de datos en nuestro servidor casero. Por eficiencia y, sobre todo, por ser software libre, mi opción es MariaDB

Así que vamos a ver como instalar y configurar en nuestro Raspbian:

sudo apt-get update

sudo apt-get install mariadb-server mariadb-client

Después de que se complete la instalación, procedemos a hacerla un poco mas segura:

sudo mysql_secure_installation

Es bueno dejar las opciones por defecto. yo normalmente, en entornos de pruebas y en local no le pongo contraseña al usuario root. Pero ne producción aseguraros de que le ponéis contraseña y deshabilitais el login remoto del usuario root.

Ahora podríamos instalar phpmyadmin, pero si no váis a darle mas uso que la creación de bases de datos, lo podéis hacer desde la propia línea de comandos. La otra alternativa, muy recomendable, es instalar webmin, que entre sus muchas funcionalidades tiene la de crear bases de datos desde su interfaz web. Eso sí, cada vez que creeis una base de datos, acordaros de cambiar los privilegios para vuestro usuario root, ya sea a través de webmin o de la línea de comandos.:

grant all privileges on wpbasico.* to root@localhost identified by 'tupassword';

Y eso es todo. ¿alguna duda? Házmela llegar a través de los comentarios.

[amazon_link asins=’B01CD5VC92,B01GII0ZMA,B01GII11DM’ template=’ProductGrid’ store=’ppmv-21′ marketplace=’ES’ link_id=’0f495458-b676-11e8-882e-b5f8edd3a140′]

 

 

Esta entrada tiene 73 comentarios

  1. Iván

    Hola! buen tutorial, pero esto no está acabado no??

    1. Programadorcillo

      Mucgas gracias y efectivamente Iván, No estaba terminado. Ya he terminado esta parte del tutorial. Espero que te haya resultado útil.

      1. Iván

        Pues esta muy bien explicado si tengo cualquier duda te pregunto!

  2. Sergio

    Sencillo y para toda la familia

    1. pedropablomoral

      Muchas gracias Sergio por tu comentario. me alegro que te haya sido útil este post sobre como crear un servidor con la pequeña Raspberry.

  3. Santiago

    Hola,

    quiero montar una Raspberry para montar un servidor en producción de una web que no estimo que tenga muchas visitas pero, ¿cuántas visitas simultaneas puede soportar con este tutorial?

    Gracias

    1. pedropablomoral

      Hola Santiago, gracias por tu comentario. Una Raspberry Pi 3 como servidor web con nginx y php 7 debería soportar entre 30 y 50 usuarios concurrentes sin problema

      1. Raymundo

        Disculpa, tengo un problema no puedo instalar php7.0 me marca que no lo encuentra

        1. pedropablomoral

          Hola Raymundo, ¿con qué versión de Raspbian estás trabajando?

          1. Raimon

            Hola, estoy probando de montar el servidor y no puedo instalar php7.0, estoy trabajando con la versión de raspbian 4.19.97-v7+.

            Me dice que no encuentra ningún paquete.

            Gracias.

  4. Santy

    Hola,

    ¿que carga de usuarios simultáneos tendría la Raspberry tal cuál está montada?
    Estoy pensando ne montarla, si me mantuviera 20 usuarios simultáneos me valdría.

    Gracias

    1. pedropablomoral

      Hola Santy, no deberías tener problema con 20 usuarios a la vez y esta configuración en una raspberry pi 3

  5. Brancin Beltran

    Hola . he logrado levantar un servidor web en mi raspberry, pero lo que no e logrado es lograr que pueda ser vista la pagina que e creado en internet. Solo en forma local. Que pasos y consideraciones debo realizar. tengo un dominio propio http://www.seguridadparaelhogar.cl y uso cdmon para dirigirlos a mi dominio , como me puede ayudar .

    1. pedropablomoral

      Hola Brancin, gracias por comentar. Desde el panel de control de cdmon deberías apuntar el registro A de tu dominio hacia la ip pública del router o modem al que esté conectada la Raspberry. Desconozco si tienes ip fija o dinámica. algunos paneles de control de dominio tienen una opción para ips dinámicas. Lo siguiente sería redirigir el puerto 80 en tu router hacia la raspberry.

    2. Rut

      Hola Brancin. He visto que tu web esta disponible en internet. ¿Por favor podrias explicarme como lo has hecho? Es la primera vez que voy a publicar una web, aun ni siquiera tengo dominio comprado y estoy un poco perdida
      Muchas gracias de antemano

  6. Alex

    Hola!
    Me gustaría saber cuantos usuarios simultaneos podría soportar una Raspberry Pi Zero W con esta configuración (2019)

    Saludos!

    1. Alex

      Por favor, ten encuenta el uso de Wi-Fi en vez de Ethernet

      Saludos!

      1. pedropablomoral

        hola Alex, gracias por tus comentarios. Tomo nota de añadir la configuración por WIFI del servidor, en un principio no la hice por tema de rendimiento. Si tu idea es usar un pi ZERO para convertirla en servidor web casero, yo te lo desaconsejo por dos motivos: el uso del wifi y el hecho de que tenga la mitad de memoria que una Raspberry Pi normal.

        1. Alex

          Gracias por responder!

          Y en el caso de comprarle un modulo Ethernet USB?
          Que te parece?

          Saludos!

          1. pedropablomoral

            Hola Alex, siempre puedes probar. Ahí solo tendrías el límite de la menor cantidad de RAM de la Raspberry Pi Zero. Puedes probar a comprar el módulo y a programar un reinicio de la PI cada 24 horas para que la base de datos no vaya comiéndose la memoría.

  7. Lucas Loughry

    Hola, increible! funcionando!!
    Te hago unas consultas, como puedo hacer para hostear mas de una página?

    1. pedropablomoral

      Hola Lucas, gracias por tu comentario. Para hostear más de una página hay que echar mano de los virtualhosts. En unos días amplío el post con un ejemplo.

  8. Fernando

    Hola PedroPabloMoral

    Gracias por el tutorial, buen trabajo!

    Me gustaría montar este mismo tutorial en Docker. Te lo progongo como siguiente tutorial. 😉

    Un saludo y gracias por compartir.

    1. pedropablomoral

      Gracias Fernando por comentar. Siempre me ha intrigado lo de Docker, así que me has dado una idea

  9. InKiLiNo

    Hola crack, buenísimo tutorial !!!!

    Si te montas un servidor casero como el tuyo y vas ganando visitas se puedes ampliar fácilmente con más raspberrys ya que son económicas y crear un cluster bastante guapo, luego usas otra para hacer el balanceo de carga listo y podrás recibir muchas más visitas. También se puede montar otras RPi para las BBDD y otra como CDN, las posibilidades son infinitas con la raspberry 😊

    Y para trastearlas y hacer pruebas de servidores en casa van de maravilla.

    1. pedropablomoral

      Gracias Inkilino por comentar. La verdad es que las Raspberrys son una pasada para los que nos gusta cacharrear. y además por su precio son ideales para que el tenga miedo de romper el ordenador de diario.

  10. Fran

    Muchas por el tutorial. Quisiera probar Django, para no más de 5 o 6 máximo usuarios simultáneos. Sería factible con la raspberry?
    Gracias

    1. pedropablomoral

      Hola Fran, gracias por comentar. No conozco mucho acerca de como Django maneja las peticiones, pero, en principio no debería darte problemas

  11. Carlos novatillo

    Hola, buenas noches. Muy bueno él tutoríal, concreto y directo, como debe ser. Pero a mi me queda una duda. He montado un servidor web con un par de raspis y un par de arduinos para servicios auxiliares de Domotica y una alarma.
    Pero no sé cómo hacer para poder dirigirle varios dominios y que con cada uno resuelva diferentes páginas.
    Me sabrías decir, por favor donde me puedo documentar?
    Gracias de antemano por tu tiempo y ÁNIMO, que lo haces muy bien.

    1. pedropablomoral

      Gracias a tí Carlos por comentar. Eso hay que hacerlo con los sites de Nginx o los virtual hosts de Apache. A ver is saco un rato y amplio el tutorial

    2. Diego

      Con apache yo lo hago con apache virtual hosts. pero no se como sera con nginx, supongo que sera similar. Yo lo he hecho en mi caso en una vps, varios dominios apuntando al mismo servidor, pero dependiendo del nombre es la pagina que se muestra.

  12. carlos

    Hola, para qué necesitamos la base de datos ?

    1. pedropablomoral

      Hola Carlos, gracias por tu comentario. Si no vas a usar un CMS tipo wordpress o no necesitas el apoyo de una base de datos porque todo va a ser html, no es requisito imprescindible que la instales.

  13. Jose

    Hola: estoy tratando de instalarlo pero no lo consigo. Me da un error de dependencias, pero parece que es entre las propias de nginx
    Esto es lo que me dice:
    dpkg: error al procesar el paquete nginx-full (–configure):
    el subproceso instalado el script post-installation devolvió el código de salida de error 1
    dpkg: problemas de dependencias impiden la configuración de nginx:
    nginx depende de nginx-full (<< 1.10.3-1+deb9u2.1~) | nginx-light (<< 1.10.3-1+deb9u2.1~) | nginx-extras (<= 1.10.3-1+deb9u2) | nginx-light (>= 1.10.3-1+deb9u2) | nginx-extras (>= 1.10.3-1+deb9u2); sin embargo:
    El paquete `nginx-full’ no está configurado todavía.
    El paquete `nginx-light’ no está instalado.
    El paquete `nginx-extras’ no está instalado.

    dpkg: error al procesar el paquete nginx (–configure):
    problemas de dependencias – se deja sin configurar

    El problema es que si trato de instalarlos a mano nginx-full nginx-light y nginx-extras se van eliminando entre sí

  14. Douglas Chacón

    Gracias muy buena información. En mi caso me retraso un poco un corchete que no habia descomentado en la configuración de nginx, de resto todo bien

    1. pedropablomoral

      Gracias a ti por comentar. La verdad es que es un poco puñetero nginx, pero para mi gusto va mucho mejor que apache

  15. Luis

    he instalado nginx, php y mariadb, pero ¿En que directorio debo poner mis archivos html o php?

    1. pedropablomoral

      Hola Luis, gracias por comentar. Generalemnte el directorio del servidor se encuentra en la ruta /var/www/html/ . Allí debes poner tus archivos

  16. Ivan

    Hola buenas, dices que con la raspberry pi3 b+ soportaria entre 30 – 50 visitas a la vez
    Mi pregunta es cuanto puede soportar la raspberry pi 4 b? ya que viene con un incremento de la velocidad de reloj
    Gracias de antemano

    1. pedropablomoral

      Hola David, gracias por comentar. En cuanto a tu pregunta sobre utilizar una raspberry 4 como servidor web, te diría que esperaras aún un poco. La placa en si está un poco verde y han reportado problemas de estabilidad y calentamiento

  17. Ivan

    Cuantas webs/dominios se podria alojar es la raspberry pi 4?
    Y cuantos usuarios activos a la vez soportaria la raspberry pi 4?
    Gracias de antemano

  18. Eduardo

    Hola te felicito por el trabajo y quiero preguntarte que opinas acerca de incorporar un Vesta panel para configurar todos los servicios por medio del navegador web. No se si se puede correr en una Raspberry pi

    1. pedropablomoral

      Hola Eduardo, gracias por el comentario y la felicitación. Hace un tiempo intenté correr el vesta en la Raspberry pero no tuve éxito. Por eso aun sigo con webmin:
      Webmin
      Pero no descarto hacer un nuevo intento con el vesta panel y si lo logro pondré el tutorial

  19. Mikel

    Hola, es posible conectarme mediante un servidor hecho con raspberry remotamente a un plc en otro lugar?

    Saludos,

  20. Alfonso

    Uso la Raspberry para ver videos y películas, con Kodi. Si la convierto en nube utilizando la microsd, ¿supone inutilizar la Raspberry para aquella finalidad?
    Perdón, soy una analfabeta en informática.Muchas gracias.

    1. pedropablomoral

      Hola Alfonso, gracias por comentar. Podrías intentar que funcionaran ambas cosas, pero las distribuciones de Kodi para Raspberry suelen ser bastante cerradas y no tienen todos los repositorios disponibles. Yo lo tengo todo separado.

  21. Isbel

    Hola, con LAMP instalado en las RASPBERRY PI puedo acceder desde otros dispositivos?

    1. pedropablomoral

      Hola Isbel, sin ningún problema. Para ello solo debes conocer la ip de tu raspberry. De esa manera puedes acceder desde cualquier equipo conectado a la misma red.
      Si lo que buscas es acceder desde fuera de tu red, debes hacer una redirección en el router que apunte a la ip local de tu raspberry. De esta manera todas las peticiones que se hagan al puerto que elijas de tu ip publica, irán al puerto 80 de tu raspberry. Luego puedes completar esto con un servicio como duckdns que te permita acceder cuando cambie tu ip pública.

  22. Naig

    al intentar esta linea me sale este mensaje
    sudo apt-get install apache2 libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc

    linea a
    E: Unable to locate package ……
    asi con todos los que deberia de instalar

    1. pedropablomoral

      Hola Naig, gracias por comentar. Prueba la instalación con nginx, los paquetes de php5 seguramente ya no estén disponibles. A ver si actualizo el post

  23. jorge

    cuantos usuarios a la vez soportaria una raspberry pi 4 2GB ram ?

  24. Rubi

    Buenas, tengo Raspberry Pi 4, con 4gb, tarjeta 32gb sandisk streme, tengo Vodafone con fibra 600 mb. He seguido este tutorial al dedillo con LAMP, Mariadb y php7.3, ha salido todo perfecto, pero en local me carga perfectamente wordpress pero remotamente tarda mucho en abrir wordpress y cuando abre es como si estuviéramos en las primeras paginas webs de primero de los años 2000, sin imagenes y modo texto casi. Creo que hago algo mal, a alguien le ha pasado esto?

    Mi alojamiento donde tengo el problema: http://rubichef.ddns.net/wordpress

    1. pedropablomoral

      Hola Rubi, gracias por comentar. Creo que es algo relacionado con la configuración del wordpress. Por lo que he visto, las hojas de estilos y demás recursos se los está pidiendo a la ip local de tu raspberry (10.*.*.39). Por eso en local te funciona y cuando lo pides a través de ddns no te va.

  25. Rubi

    Muchas gracias Pedro, una duda igual tonta, edito el archivo wp-config.php y cambio la ip interna por en no-ip?

  26. Muy buenas! Lo primero de todo, agradecerte el post ya que me ha sido de gran utilidad.

    Tengo el servidor ya montado, con nginx+php7.3+MariaDb. He empleado una plantilla gratuita la cual he ido modificando hasta llegar al punto de que ya puedo acceder a la página web desde cualquier navegador tecleando “http://ejemplodelnombre.syt…”.

    Para añadir “www” al dominio que ya tengo es necesario crear el mismo domino anteponiendo “www”?

    He estado toqueteando intentando crear nuevos hosts en noip con las opciones de redireccionar web, ipv4, ipv6 pero no me aclaro mucho si te soy sincero.

    Por otra parte, asignarle en el router la dirección IP de la Raspberry al puerto 80, que es la misma que para el 22, es correcto? (Ya que es como lo he configurado y funciona, además de añadir “ejemplodelnombre.syte.net” a la configuración de noip2 en linux )

    Para finalizar, que archivos debería modficar dentnro de nginx para añadir el certificado hhtps a mi dominio? He descargado los certificados pero no consigo configurar nginx de la manera adecuada, ya que siguiendo diversos tutoriales cuando añado las lineas que me indican dentro de /etc/nginx/sites-available/default luego no me deja reinciar nginx y me salta error.

    Un saludo y gracias de antemano.

    1. pedropablomoral

      El tema de los certificados hay muchos tutoriales para instalar y automatizar con letsencrypt, echa un ojo antes de tocar de manera manual

  27. Joseph

    Como hacerlo visible a toda la web?

    1. pedropablomoral

      Hola Joseph, puedes hacerlo mediante un servicio como no-ip o duckdns

  28. Rubi

    Hola señores de nuevo, me estoy volviendo loco, sigo sin poder acceder bien a mi sitio desde el exterior. Accede pero sin contenidos, solo modo texto y no carga bien… Creo que el problema es acceso pero WordPress busca las plantillas, logos gif… En dirección IP local. Al instalar wordpress u
    Puse la dirección (localhost) puede ser por eso? Pongo al instalar wordpress la dirección de no-ip? Estoy desesperado ya, lo he reinstalado seis veces sin éxito. En local perfecto, pero fuera nada, solo carga a medias.

    1. pedropablomoral

      Hola Rubi, pon la dirección de no-ip, de esa manera no tendrás errores de carga de css y javascript que hacen que se te vea solo el texto

  29. Omega

    Hola Programadorcillo,
    muy buen articulo entretenido y entendible.
    Tengo un problema al instalar el php5 en:
    “sudo apt-get install apache2 libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc”
    la raspberry me dice que php5 no esta disponible pero que esta referenciado a otro paquete.
    He buscado un poco y parece que debian ya no soporta php5 que se han pasado a php7. He provado modificando las referencias a php7 pero nada.
    Que me recomendarias hacer para seguir con tu tutorial.
    Un saludo

    1. pedropablomoral

      Hola Omega, gracias por tu comentario. En breve actualizo el artículo, pero imagino que sea porque la versión 5 de php ya no tiene soporte. Prueba con:
      sudo apt install php7.3-fpm php7.3-common php7.3-mysql php7.3-xml php7.3-xmlrpc php7.3-curl php7.3-gd php7.3-imagick php7.3-cli php7.3-dev php7.3-imap php7.3-mbstring php7.3-opcache php7.3-soap php7.3-zip unzip -y

  30. Juan Fcran

    Gracias tenia el mismo problema 🙂

  31. Oscar

    Hola Pedro. Muy bien explicado pero no consigo hacer funcionar el localhost desde mi explorador ERR_CONNECTION_REFUSED. ¿Tienes idea a que puede deberse? Vi tu tutorial y me compré la raspbery pi 4. Ahora me he quedado atascado. Gracias por el aporte. Saludos

    1. pedropablomoral

      Hola Óscar ¿El acceso a localhost lo haces desde la propia Raspberry? Si lo haces desde otro equipo no puedes acceder usando localhost, debes poner la IP de la Raspberry en la barra de direcciones del navegador del equipo y que ambos estén en la misma red local

  32. Oscar

    Muchas gracias…. todo correcto y muy bien explicado. ¿Tienes pensado hacer un tutorial para cargar una web y hacerla pública para poder acceder a ella desde cualquier lugar? He estado mirando y hay muchas opciones que utilizan No-Ip pero me gustaría conocer tu opinión. Muchas gracias por todo.

    1. pedropablomoral

      Gracias a ti Oscar. No-IP es una opción, lo malo es que en la versión gratuita cada 30 días tienes que renovar el dominio. Para estas cosas prefiero duckdns.org

  33. Jefferson

    Hola buenas, tengo un Raspberrypi 3 que me dio un amigo pero el me lo configuro con un DNS para bloquear publicidad,
    hay forma de hostear un web y sin tener que quitar el DNS?

    1. pedropablomoral

      Hola, gracias por comentar. Imagino que lo haga con PiHole. Poderse se puede, debes configurar nginx para que sea el que sirve PiHole y que no lo haga lighttpd para que no estén escuchando los dos en el puerto 80

  34. JerryUriarte

    Hola, Gracias por tan buen post.
    Ya tengo el servidor funcionando, pero tengo una par de cosillas que no van del todo bien y no se a que es debido.
    La primera, con no-ip la ip se ve con el dominio que puse, pero en cuanto navego por la web, sale la ip del router y ya no va, si le pongo manualmente el domino entonces ya se ve… Que puede ser?
    Y otra, parece que los recursos del css estan bloqueados o algo, pq desde local se ve bien la web, pero desde fuera no, se ve, sin css, Que puedes ser?
    Muchas gracias por el aporte!!!! y enseñarnos tanto.

    1. pedropablomoral

      Gracias a ti por comentar. Creo que eso se debe a que en los ajustes generales de wordpress tienes que poner la dirección del dominio de no-ip, no la ip de tu raspberry en local. En cuanto lo hagas, cualquier enlace dejará de resolver hacia la ip local y lo hará hacía el dominio de no-ip. Casi seguro que por ese mismo motivo no re resuelve los estáticos, porque los busca en la ip local que no es accesible desde el dominio de no-ip

  35. JerryUriarte

    Bua!!!!!!!
    Es verdad!!!!! Ni acordarme de los ajustes generales de wordpress!!!! Dios parezco nuevo, a veces las cosas mas sencillas se pasan por alto.
    MUCHAS GRACIAS POR HACERME RECORDAR!!!!!!!!!!!!!!

    1. pedropablomoral

      Gracias a ti Jerry, no creas que eres el único….

Deja una respuesta