Feb 10 2017

Colores personalizados en LibreOffice

Nota rápida para no olvidar cómo lo hice. ¿El qué? Conseguir cambiar los colores que propone LibreOffice para, por ejemplo, rellenar el fondo de tablas y celdas.

Estaba copiando un cartel que he visto en Twitter (licencia CC, por supuesto) y no era capaz de poner un color mostaza como fondo de una celda en una tabla. Pues la cosa es que hay que insertar cualquier objeto (elipse, flecha, rectángulo…) desde la barra de dibujo. Se selecciona y vamos al menú Formato > Cuadro de texto y forma > Relleno y podemos cambiar la paleta por, por ejemplo, “html”, que tiene colores más variados. Incluso se pueden definir colores personalizados.

Algo que tendrán que simplificar, sin duda.

Ene 24 2017

Días desencantadores [actualizado]

  1. Estar en el instituto, ir al baño de profesores, ver a un compañero miccionando en el váter sin tirar de la cadena ni limpiar las tres gotitas.
  2. Estar en el departameno de Lengua y oír a alguien quejarse de que sus alumnos no saben nada de Lengua.

Sinceramente, hay días que me vengo un poco abajo. Si somos nosotros quienes tenemos que educar a las nuevas generaciones, vamos jodidos.

  1. Ni reglas básicas de urbanidad. Cuántas veces habremos dicho eso de “¿En tu casa tirarías papeles al suelo?”. Pues no veo a nadie dejando un baño (recién limpiado, por cierto) en su casa como me he encontrado el de profesores hoy.
  2. ¿Qué queremos? ¿Alumnos que ya saben? ¿Para qué servimos entonces? ¿Cuál debería ser nuestro trabajo si solo queremos alumnos que vienen ya enseñados?

En fin. Seguiremos. Qué remedio.

Actualizado 10/2/17: Hoy, en otro baño de profesores de otro edificio del instituto, me he encontrado un cartel revelador: UTILIZAR LA ESCOBILLA. GRACIAS. Intentaré tomármelo como que hay gente que sigue luchando contra cómo son las cosas.

Dic 24 2016

Nextcloud en la Raspberry Pi (10). Avisos de seguridad de Nextcloud

Cron

Es muy habitual que Nextcloud necesite que ciertas acciones tengan lugar cada cierto tiempo. La forma de asegurarse es el cron, cuya misma forma nos dice que tiene que ver con el tiempo (cronos en griego). Por defecto, el cron de Nextcloud se ejecuta cada vez que se carga una página. Es lo más sencillo pero normalmente no vamos a usar la interfaz web sino los clientes de escritorio y móvil, así que puede pasar demasiado tiempo sin que se ejecute el cron. Por ello, es muy recomendable hacerlo de otra manera. ¿Cómo? Encargándoselo al sistema operativo. Raspbian, como todos los sistemas Linux, tiene una opción para esto.

Para sacar ventaja de esto, debemos definir un cronjob. Es así:
sudo crontab -u www-data -e

Aparece un archivo bastante largo, con un montón de explicaciones (todas las líneas que empiezan por una almohadilla [ #] o un punto y coma [;] son comentarios). La orden significa “editar el crontab (lista de tareas que se ejecutan periódicamente) del usuario www-data (el de Apache)”.

Podemos irnos al final del archivo y copiar la siguiente orden:
*/15 * * * * php -f /var/www/html/nextcloud/cron.php

Que significa que cada 15 minutos se va a ejecutar el cron. Como siempre, debemos cambiar la carpeta si fuera preciso. Guardamos como siempre con CTRL+X, “s” y podemos comprobar que se ha guardado con
sudo crontab -u www-data -l
que nos muestra el contenido del crontab.

Una vez lo hemos comprobado, podemos ir a la configuración de Nextcloud y cambiar este estado, si no se ha cambiado automáticamente:

HSTS

El aviso escrito en texto rojo de la captura anterior nos recuerda que no se ha configurado la cabecera HTTP Strict Transport Security. Esto hace que no se permita ninguna conexión que no sea segura (HTTPS) y hace más difíciles los ataques al sitio. Para configurarlo, podemos editar el archivo de configuración que ha creado Let’s Encrypt:
sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

Vamos al final del archivo y, bajo la línea que empieza ServerName y encima de la línea </VirtualHost> añadimos lo siguiente:

    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
    </IfModule>

Aunque podemos limitarnos a reiniciar el servidor, como siempre, con sudo service apache2 restart, no es mala idea reiniciar la Raspberry con sudo reboot.

Cache

La memoria caché es un sistema que permite al servidor servir ciertos objetos habituales de manera más rápida. Es fácil configurar una caché de última generación con sudo apt-get install php-redis redis-server.

Comprobamos que ha arrancado con ps ax | grep redis y editamos el archivo de configuración para que Nextcloud use esta cache: sudo nano /var/www/html/nube/config/config.php.

Aunque recomiendan otra configuración si el servidor redis está instalado en la misma máquina, a mí no solo no me funciona sino que cuelga Nextcloud. Así que como ofrecen otra posibilidad, añadimos

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),

para configurar la caché local, y

'memcache.locking' => '\OC\Memcache\Redis',

para configurar la caché de bloqueo de archivos.

Permisos de archivos

Para estar seguros de que todos los archivos de Nextcloud están bien configurados en cuanto a sus permisos y propietarios, podemos crear un script que lo comprueba.

Creamos un archivo nuevo con sudo nano permisos.sh y copiamos dentro el siguiente código con MAYS+Ins:

#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/updater

printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
 then
  chmod 0644 ${ocpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
 then
  chmod 0644 ${ocpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

Cambiando en la segunda línea la carpeta donde está instalado Nextcloud. Guardamos con CTRL+X, “s” y ejecutamos el script con sudo sh ./permisos.sh.

Dic 23 2016

Nextcloud en la Raspberry Pi (9). Afinando Nextcloud

Si hemos seguido hasta ahora las instrucciones de este tutorial,ya tenemos una nube privada funcionando. Sin embargo, hay ciertas configuraciones por defecto que podemos retocar para que sea más fácil, más segura, más elegante o más útil. Vamos a ver cómo podemos tunear nuestra instalación de Nextcloud.

Tamaño máximo de archivos

Debido a las configuraciones por defecto de PHP, mediante la interfaz web no se pueden subir archivos de más de 2 Mb, lo cual es muy pero que muy poco. Para subir este límite, debemos editar algunas cosas. El límite máximo que podremos poner son 2 Gb, que está mucho mejor aunque deja fuera ciertos archivos de vídeo, pero este límite ya es cosa de la Raspberry, y su arquitectura, de 32 bits, no de Nextcloud.

Siguiendo las instrucciones del manual de Nextcloud, para aumentar este límite, debemos editar el archivo de configuración de PHP 7.0. Lo hacemos escribiendo en el terminal:

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

Aparece el editor de texto y buscamos (con las teclas CTRL+W) las líneas en que aparecen las expresiones upload_max_filesize y post_max_size. Cambiamos las cifras para que de 2M y 8M pasen a ser 2G. Deben quedar así:

upload_max_filesize = 2G
(...)
post_max_size = 2G

También podemos aprovechar para configurar la carpeta temporal. Si subimos archivos grandes, podemos llenar la tarjeta SD y esto nunca es bueno, así que es mejor usar una carpeta del disco duro externo. Buscamos (CTRL+W otra vez) la línea ;upload_tmp_dir = y hacemos dos cosas: borramos el punto y coma del inicio (si no lo hacemos, los cambios que hagamos en esta línea no tendrán efecto ) y añadimos al final la carpeta que queramos del disco duro. No es recomendable usar una subcarpeta del directorio de la nube, eso sí, porque si se creara un usuario con el mismo nombre que esta carpeta, usaría la carpeta temporal como sus propios archivos.

Guardamos el archivo (CTRL+X, “s” para decir que sí queremos guardar) pero no reiniciamos todavía el servidor web porque tenemos que ocuparnos de la carpeta temporal. La creamos con
sudo mkdir /media/Vir/nubetmp (por ejemplo)

Cambiamos los permisos de la carpeta
sudo chown -R www-data:www-data /media/Vir/nubetmp

Y, ahora sí, reiniciamos el servidor Apache con
sudo service apache2 restart

Podemos comprobar que lo hemos hecho bien en Nextcloud. Pulsamos en nuestro usuario arriba a la derecha para mostrar el menú, seleccionamos Administración y miramos en los apartados “Server info” (información del servidor) y “Configuración adicional”:

El ratón nos muestra que, efectivamente, ya está configurado para aceptar archivos de 2 Gb.

Eliminar “index.php” de las URLs de Nextcloud

Nextcloud, como su predecesor Owncloud, crea unas direcciones (URLs) bastante largas porque incluye por defecto el fragmento “index.php”. Se puede eliminar, para pasar de
https://polkas.ddns.net/nube/index.php/apps/files/ a https://polkas.ddns.net/nube/apps/files/, que queda más claro y sencillo.

Para ello, editamos el archivo config.php:
sudo nano /var/www/html/config/config.php

y añadimos al final la siguiente línea:
'htaccess.RewriteBase' => '/',

No estoy seguro de que el siguiente paso sea necesario, pero no hace daño hacerlo. Tenemos que activar unos cuantos módulos de Apache, concretamente rewrite, headers, env, dir y mime. Esto se hace con las siguientes instrucciones:

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Todos menos headers deberían estar activos, pero no pasa nada por asegurarse. Una vez los hemos activado todos, debemos crear un sitio nuevo en la configuración de Apache:
sudo nano /etc/apache2/sites-available/nextcloud.conf

Aparece el editor nano, que ya seguro conocéis, con un archivo vacío. Tenemos que copiar (con la combinación de teclas MAYS+Ins) el siguiente código (extraído, de nuevo, del manual):

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Y hay que cambiar el directorio todas las veces que aparece.En lugar de /var/www/nextcloud/, debemos poner la carpeta que hayamos usado. Si hemos instalado Nextcloud en la raíz del servidor, debería ser /var/www/html/ y, si lo hemos hecho en una carpeta, deberá ser /var/www/html/nextcloud, dependiendo de lo que hayamos usado en la quinta entrada de la serie. Debemos cambiarlo las 4 veces que aparece.

Por último, creamos un enlace simbólico a la carpeta de sitios activos:
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

El útlimo paso es ejecutar una actualización de mantenimiento con el comando
sudo -u www-data php /var/www/html/occ maintenance:update:htaccess

Reiniciamos el servidor con
sudo service apache2 restart

Y podemos comprobar, encima del cursor, que ha desaparecido el “index.php” de la URL:

Dic 21 2016

Nextcloud en la Raspberry Pi (8). Apps

Ya tenemos configurada nuestra nube en la Raspberry, con una conexión segura pero ahora mismo es menos útil de lo que puede llegar a ser.

Una característica muy interesante de Nextcloud son las apps. Son añadidos que extienden su funcionalidad mucho más. Convierten algo que es básicamente un Dropbox en algo mucho más grande y útil, más parecido a casi todos los servicios de Google.

Se pueden instalar cosas como un calendario, tareas, lista de contactos, notas, favoritos… Incluso hay una opción de añadir una especie de Google Docs, pero eso, por ahora, es demasiado para la pobre Raspberry. Aun así, las posibilidades son muy grandes.

Si entramos en nuestra nube con un usuario administrador como el que creamos al instalarla, veremos arriba a la izquierda un pequeño menú con cuatro elementos:

archivos-nextcloud-mozilla-firefox_067

  • Archivos: lo que estamos viendo, nuestros archivos y carpetas.
  • Actividad: aquí aparecen los registros de archivos creados, editados, eliminados (que se pueden recuperar)…
  • Galería: un visor de las imágenes que tengamos. Al pulsarlo aparece una lista de las carpetas que incluyen fotos y podemos seleccionarlas. Va lentilla, eso sí.
  • +: Si pulsamos en el signo +, iremos a una pantalla en la que veremos las apps que vienen instaladas de inicio, y podemos instalar muchas más.

En la pantalla que aparece, tenemos la lista de apps instalada y podemos ver en las categorías del menú de la izquierda otras opciones. Pero es interesante activar la opción de “Apps experimentales” pulsando en la rueda dentada de abajo a la izquierda y marcando la casilla, pues aparecen unas cuantas más, algunas muy interesantes.

Para instalar una app, solo hay que encontrarla y pulsa el botón “Activar”. Tardará un ratito: nuestra nube tiene que ponerse en contacto con la app store y descargarla.

Después tendremos la posibilidad de desactivar la app. Si más tarde queremos reactivarla, el proceso será más rápido.

La mayoría de las apps de Nextcloud aparecen tras ser activadas en el menú de la izquierda (o arriba, si se instala la app Direct Menu). Otras, en cambio, añaden funcionalidades a otras y no tienen su propia entrada. Es cuestión de probar.


Y tras esta explicación, mis recomendaciones de de apps. Las apps que no deben faltar en una instalación de Nextcloud, en mi humilde opinión: son:

  1. Personalización
    1. Direct Menu. Permite poner el menú en la barra superior, lo que nos evita un clic cada vez que queremos cambiar de app.
  2. Archivos
    1. Nextant. Permite buscar en el contenido de los archivos y no solo en el nombre. Muy interesante, pero algo difícil de configurar.
    2. Reader. Con ella puedes leer directamente en la nube los libros electrónicos que tengas.
  3. Multimedia
    1. Audio Player. Reproductor para tus archivos MP3.
    2. GPXPod.Para los que disfrutamos con mapas, es un visor de archivos gpx, como los que utilizan las apps de GPS.
    3. News. Lector de feeds RSS. Es parecida al desaparecido Google Reader. Incluso hay app para Android.
  4. Oficina & texto
    1. Calendar. ¿Cómo te lo diría? Im-pres-cin-di-ble, en cinco sílabas. Muy interesante para los que desconfían de Google y preferirían no tener que usar Google Calendar para guardar sus eventos. Una vez instalada, se puede acceder a los calendarios desde Mozilla Thunderbird con Lightning, desde Outlook, desde el móvil (instalando DAVdroid para la sincronización).
    2. Contacts. Lo mismo que lo anterior. No hace falta nada más para tener un respaldo de tus contactos del móvil en la red y, a la vez, en casa. Igual que con la anterior, hace falta DAVdroid para sincronizarlo.
    3. Notes. Editor rápido de notas. Hay app Android.
  5. Organización
    1. Bookmarks. App de favoritos, permite guardar enlaces. Es muy rudimentaria todavía, parece ser que en el futuro tienen pensado extenderla y, quizás, convertirla en una forma de sincronizar los favoritos del navegador. Aun sin esta capacidad, sigue siendo muy interesante.
    2. Tasks. Un gestor de tareas. Gracias a la magia de DAVdroid, se puede controlar también desde el móvil, instalando la app OpenTasks (si lo vas a usar, instala OpenTasks antes de instalar DAVdroid).
  6. Herramientas
    1. Keeweb/Passman. Gestores de contraseñas compatibles con Keepass y similares. He empezado usando Keeweb pero Passman parece que tiene más vida y se está actualizando con algo muy útil: integración con el navegador (Chrome y, más o menos, Firefox).
    2. Piwik Tracking. Si usas este sistema de estadísticas similar a Google Analytics, esta app te permite integrarlo en la nube.

 

Otras que pueden ser interesantes, al menos para mí, son:

  1. Autenticación & autorización
    1.  Two Factor TOTP Provider. Permite usar el registro en dos pasos, con apps de seguridad como Google Authenticator o una versión libre, Autenticador.
    2. Registration. Si algún año me decido a usar Nextcloud con mis alumnos, usaré esto para que se registren ellos mismos sin tener que crearles yo la cuenta de usuario.
  2. Personalización
    1. AppOrder. Permite cambiar el orden de las apps en el menú. Es compatible con Direct Menu.
  3. Archivos
    1. Checksum. Permite comprobar que hemos realizado correctamente una descarga calculando el checksum del archivo.
    2. OPDS Catalog. Permite crear una biblioteca online de libros electrónicos a la que se puede acceder con FBReader, por ejemplo, y leer en tu móvil o tableta.
    3. Optical Character Recognition. Permite leer los contenidos escritos en imágenes.
  4. Integración
    1. Collabora Online. Es genial, o lo sería si fuera fácil de configurar. Es una versión en línea de LibreOffice, con la que se pueden editar tus documentos de texto o tus hojas de cálculo. Estoy la caza de enterarme de cómo instalarla en condiciones.
    2. Video Calls. Puede ser útil si tienes varios usuarios en el servidor, no tanto para una instalación privada. Es como Skype, pero sin salir de Nextcloud.
  5. Multimedia
    1. GPX Edit. Permite editar tus pistas GPX. Muy especializada, pero útil sobre todo porque en Linux no es una tarea fácil.
    2. PhoneSync (antes llamada Owncloud SMS). Como se puede deducir por el nombre antiguo, permite hacer una copia de seguridad de los mensajes SMS. Ya casi no se usan, hace unos años habría sido imprescindible.
    3. Preview Generator. Crea vistas previas de los archivos.
    4. Deck. App recién llegada, pero con mucho potencial para organizar equipos.
    5. Mail. Cliente de correo. tiene la ventaja de integrarse con los contactos, por ejemplo.
  6. Organización
    1. Admin notifications. Permite enviar notificaciones a los usarios. Por ejemplo, a mis alumnos.
  7. Social y comunicación
    1. JavaScript XMPP Chat. Un chat privado para los usuarios.
    2. RainLoop. Otro cliente de correo, como Mail.
  8. Herramientas
    1. Ownbackup. Para crear copias de seguridad.
    2. Ownnotes. Un sistema de notas más potente que Notes a secas.
    3. OownnotesAPI. Permite usar un cliente de escritorio para las notas, llamado QOwnNotes, más potente que la app del móvil.

 

Apps antiguas, no compatibles con la última versión

Hay alguna que usaba y no son compatibles todavía con la versión más moderna:

  • Polls. Similar a servicios online como Doodle, permite hacer encuestas y organizar grupos de gente.
  • Weather. Sencilla app con información del tiempo. Una curiosidad que demuestra lo fácil que es extender Nextcloud.
  • Documents. Permite ver algunos documentos. Está superado por LibreOffice Online, pero esta app puede permitirte salir de algún apuro. Es bastante cutre, eso sí, y parece ser que está abandonada así que no se va a actualizar más
  • Shorten. Acortador de URLS. Acorta las direcciones que compartimos para que sean más agradables.
  • Files Share Link Renamer. Aparentemente parecida a Shorten, pero lo que acorta son los enlaces de los archivos que compartamos con otras personas, para que queden más legibles y más recordables.
  • Dashboard. Permite crear un panel de control con widgets que interactúan con otras apps como Contacts o Weather. Está, como indica su nombre, sin mantenimiento, aunque parece que se puede conseguir que funcione en Nextcloud 10, no sé si en el 11.

Dic 09 2016

Nextcloud en la Raspberry Pi (7). Let’s Encrypt

En la entrada anterior veíamos que Nextcloud nos advertía de que no estábamos usando una conexión segura para verlo. Hasta hace bien poco, la única opción que podría haber funcionado era comprar un certificado de servidor, pero si la idea es ahorrar lo más posible, salía más caro el certificado que la propia Raspberry.

Sin embargo, no hace demasiado ha aparecido el proyect Let’s Encrypt, que pretende facilitar y abaratar (¡es gratis!) el acceso a conexiones seguras. Está apoyado por jugadores tan importantes dentro del campo del software libre y de la libertad en internet como la EFF o la Fundación Mozilla. Con Let’s Encrypt (“Vamos a cifrar”) es mucho más fácil crear conexiones seguras. Y esto es importante por detalles como que yo guardo en mi nube el cuaderno de clase con datos personales de mis alumnos, y usar una conexión no fiable es peligroso e, incluso. podría ir en contra de la LOPD. Este, por cierto, es un problema de Dropbox.

Técnicamente estoy convencido de que es muy difícil de entender, pero por suerte no hace falta saber mucho, es muy fácil de llevar a cabo.

Los pasos son estos:

  1. Instalamos desde el repositorio stretch el paquete python-certbot-apache, que instala todo lo necesario:
    sudo apt-get install -t stretch python-certbot-apache
  2. Ejecutamos el archivo:
    sudo certbot --apache
    Aparece un mensaje de aviso y nos pide nuestro dominio. Lo rellenamos. La captura de pantalla siguiente contiene un error, no se debe añadir el http:// al principio sino empezar directamente.
  3. Nos pide nuestro correo:
  4. Empieza a trabajar  y nos solicita que aceptemos los términos de usuario. Podemos aceptar pulsando Enter.
  5. pipolkillas-pi-_064
  6. Respondemos las preguntas que nos hace el instalador:
    Dominio: ponemos el que hayamos escogido en no-ip.com
    Correo: nuestra cuenta
  7. Después nos pregunta si queremos el método fácil o el seguro. A gusto del consumidor pero, evidentemente, es más seguro el Seguro.
    pipolkillas-pi-_065
  8. Comprobamos que está bien hecho pulsando el enlace que nos sugiere al final pulsando a la vez el botón del ratón y la tecla Ctrl (si no pulsamos esta, no se abre.En algún caso, el dominio me ha salido cortado, solo aparecía hasta las letras “dd”, y el servicio web daba un error. En tal caso hay que completarlo a mano y nos da este resultado, que está muy bien.
    ssl-server-test-mozilla-firefox_066

Y ya está. Sencillo, ¿verdad? En próximas entradas veremos cómo mejorar y ajustar nuestra nube, ya con un servidor más seguro.

 

Dic 07 2016

Nextcloud en la Raspberry Pi (6). DDNS

El siguiente paso para tener una verdadera nube a la que podamos acceder desde cualquier parte del mundo con nuestro ordenador o móvil es configurar una dirección única para la Raspberry. La dirección que hemos estado utilizando hasta ahora (192.168.0.26 o similar) no sirve más que en nuestra red local. Pero lo interesante de tener una nube propia está en poder acceder a ella desde cualquier lugar. Hay un problema para ello: la práctica totalidad de las empresas proveedoras de servicios de internet en España funcionan mediante lo que se conoce como IP dinámica: la IP, la dirección en internet, va cambiando de forma que los clientes no podemos controlarlo. De tal manera que si acudimos a servicios como What’s My IP, hoy nos puede dar un resultado y mañana otro que no podemos adivinar. Para ello hace falta algo llamado servidor de nombre de dominio dinámico o DDNS, por sus siglas en inglés. Este tipo de servicios instala un pequeño programa en nuestro servidor que periódicamente comprueba si ha cambiado nuestra dirección y lo actualiza en un “dominio” propio, de tal manera que solo tenemos que usar este “dominio”. Lo escribo entre comillas porque esta explicación no es técnicamente del todo precisa, pero es más que suficiente para nuestras necesidades.

¿Qué necesitamos para tener una dirección propia reconocible? Hay muchos servicios DDNS disponibles. El que yo uso es no-ip.com, que es bastante fácil de utilizar.

En primer lugar tenemos que registrarnos en la web de No IP.

free-dynamic-dns-managed-dns-managed-email-domain-registration-no-ip-mozilla-firefox_055

Como se ve en la imagen, podemos elegir una dirección que sea “lo-que-te-dé-la-gana.una-de-las-cuatro-opciones”. Mi nube en producción usa la dirección http://polkillas.ddns.net, pero puedes escoger la opción que prefieras.

Cuando nos registramos, nos envía un correo de confirmación a nuestra cuenta de correo. Cuando activamos mediante el enlace, podemos entrar en el servicio. El segundo paso consiste en descargarse el programa que se conecta a No IP. Lo llaman DUC y se instala así, siguiendo las instrucciones oficiales:

mkdir /home/pi/noip (creamos un directorio para bajarlo)

cd /home/pi/noip (vamos al directorio)

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz (descargamos el DUC)

tar vzxf noip-duc-linux.tar.gz (lo descomprimimos)

cd noip-2.1.9-1 (entramos en el directorio que se ha creado)

sudo make (preparamos el programa para instalarlo)

sudo make install (lo instalamos)

Este procedimiento se llama compilar el programa. En el último paso, nos pedirá la dirección de correo y la contraseña de nuestra cuenta en no-ip.com.

Luego nos pedirá el intervalo de tiempo en minutos tras el cual se actualizará la dirección, si fuera necesario. El mínimo es 5 y en realidad 30, lo que sale por defecto, suele ser suficiente, pero se puede poner menos. También nos preguntará si queremos ejecutar algo después, pero podemos contestar que no.

pipolkillas-pi-noip-noip-2-1-9-1_058

Ya podemos ejecutarlo con la orden sudo noip2. Y como querremos que se ejecute solo al arrancar la Raspberry, lo hacemos de la siguiente manera. Vamos e editar los programas que se sudo rebootejecutan cada cierto tiempo o en momentos determinados (como el arranque o el apagado) de la Raspberry con la orden

sudo crontab -e

Nos dará a elegir entre diferentes editores de texto. El que hemos usado hasta ahora es nano, así que podemos marcar el 2, aunque valdría cualquiera. En el archivo que aparece, añadimos en la última línea lo siguiente:

@reboot sudo -u root noip2

Cerramos con CTRL + X y le decimos que guarde el archivo.

Si ahora mismo volvemos a ejecutar el DUC, nos dará el siguiente error:

sudo noip2

One noip2 process is already active,
and the multiple instance flag (-M) is not set.

Lo que significa que ya está funcionando. Vamos a comprobar así que lo hemos hecho bien, reiniciando la Raspberry con la orden sudo reboot. Si intentamos ejecutar el DUC, nos dará el mismo mensaje, con lo que es correcto. Así pues, ya podemos ir a nuestro navegador y buscar la dirección que hemos escogido al principio (http://polkillas.ddns.net/nube, en mi caso), y nos debería aparecer lo siguiente:

nextcloud-mozilla-firefox_060

Que significa que nuestra nube ha detectado algo raro: ya no accedemos desde la IP local, sino desde un dominio de internet. Por si acaso, no se fía y nos pregunta. Pulsamos el botón “Añadir … como dominio de confianza” o, en inglés “Add … as trusted domain” y, si estábamos registrados como administradores, directamente nos sale una pantalla en la que nos pregunta si queremos añadir el dominio. Respondemos que sí y nos saldrá la pantalla de administración de Nextcloud. El mensaje rojo no es exactamente un error, sino una advertencia que corregiremos en próximas entradas.

administracion-nextcloud-mozilla-firefox_061

SI no funciona este proceso, hace falta abrir los puertos del router. Es un proceso que depende mucho del modelo de router que tengamos en casa, así que, en este caso, toca recurrir a Google o a DuckDuckGo para buscar información concreta de cómo se hace.

Dic 05 2016

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (5). Instalación de Nextcloud

El siguiente paso es, por fin, instalar Nextcloud en nuestra Raspberry. Es un paso más sencillo que los anteriores, paradójicamente. Pero aun así, vamos con ello. Lo mejor en este paso es entrar a la Raspberry desde otro ordenador con SSH.

En PuTTY o el terminal, entramos en la Raspberry y nos dirigimos a la carpeta raíz del servidor web, que es una carpeta de sistema, está protegida contra escritura  y el usuario ‘pi’ no puede hacer nada en ella, a no ser que tome privilegios de superusuario. Es decir, todo lo que hagamos aquí deberemos hacerlo empezando las órdenes con ‘sudo’. La carpeta es /var/www/html.

cd /var/www/html
ls

La segunda orden lista el contenido de la carpeta. Veremos dos archivos si hemos ido siguiendo las instrucciones de esta serie de entradas: index.html, que es el archivo de inicio de Apache, e info.php, el archivo que creamos en una entrada anterior para comprobar el buen funcionamiento de PHP. En realidad, no es una idea especialmente buena tener estos archivos porque pueden dar información a posibles atacantes, por lo que podemos querer borrarlos.

Ojo con este paso, que la herramienta de borrado es muy potente y si nos equivocamos podemos llegar a borrar todo el disco duro. En la siguiente orden, la parte de ./ indica que solo se tiene en cuenta el directorio en el que estamos:

sudo rm ./index.html

sudo rm ./info.php

Y nos queda un directorio en blanco. Si abrimos ahora la dirección de la Raspberry en un navegador saldrá una página diferente. Bien, pues vamos a llenarla con nuestro Nextcloud.  Para encontrar la última versión  (ahora mismo la 11.0.2), vamos a http://www.nextcloud.com/install, pulsamos el botón azul ‘Download’ y en la siguiente pantalla vamos de nuevo al botón azul pero lo pulsamos con el botón derecho y seleccionamos la opción de copiar el enlace al portapapeles.

La versión ha cambiado, pero el botón es el mismo: ‘Download Nextcloud’

Para descargar Nextcloud, vamos al terminal SSH, e indicamos que vamos a descargar ese archivo. Escribimos la orden wget y pegamos la URL que acabamos de copiar con MAYS + Ins:

sudo wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip

(Hace falta sudo porque la carpeta es del administrador) Tras descargarse, tenemos un archivo comprimido en zip. Para descomprimirlo, debemos hacer lo siguiente:

sudo unzip nextcloud-11.0.2.zip

Cambiando el nombre, claro, dependiendo del archivo que nos hayamos descargado Esto nos creará una carpeta llamada ‘nextcloud’ con los archivos necesarios. Pero hay que tener en cuenta una cosa importante sobre los permisos y las cuentas de usuario en Linux.

En Linux los usuarios tienen una importancia mayor que en Windows, donde normalmente utilizamos un solo usuario para todo. Sin embargo, en Linux se usan mucho más. En concreto, el servidor web Apache utiliza un usuario diferente para sus tareas, que se llama, en Raspbian, ‘www-data’. Como hemos usado privilegios de superusuario para descargar y descomprimir Nextcloud, el propietario de los archivos no es www-data sino el superusuario, ‘root’. Debemos cambiar esto para no tener problemas.

Para cambiar los permisos de archivo, usamos la siguiente orden:

sudo chown -R www-data:www-data nextcloud

Es decir, con permisos de superusuario, cambiamos la propiedad [change ownership] de todos los contenidos [-R] al usuario ‘www-data’ que pertenece al grupo ‘www-data’ para la carpeta ‘nube’.

Una vez hecho esto, se me ocurren tres opciones:

  1. SI no vamos a instalar más cosas y servidores, lo mejor es mover los contenidos de ‘nextcloud’ a ‘/var/www/html’, para que al escribir la dirección 192.168.XX.XX salga directamente la nube.
  2. Si queremos instalar más cosas, lo podemos dejar tal cual.
  3. Si queremos instalar más cosas, también tenemos la opción de cambiar el nombre de la carpeta para que sea más fácil de escribir. Como se podrá ver en mis capturas, es la opción que he llevado a cabo yo, cambiando ‘nextcloud’ por ‘nube’.

Para llevar a cabo estas opciones, estos son los comandos necesarios:

  1. sudo mv nextcloud/*.* ../*.* (mover todos los archivos dentro de ‘nextcloud’ al directorio superior)
  2. No hay que hacer nada, evidentemente.
  3. sudo mv nextcloud nube (mover la carpeta nextcloud’ a la carpeta ‘nube’)

Ahora ya podemos borrar el archivo .zip. Si no lo hacemos, Nextcloud nos dará un mensaje de advertencia que puede ser molesto. Lo hacemos con el comando
sudo rm./nextcloud-11.0.2.zip.

A partir de este paso, ya podemos trabajar en el navegador, entrando en la dirección adecuada. Según la opción que hayamos escogido de las tres, será:

  1. http://192.168.XX.XX
  2. http://192.168.XX.XX/nextcloud
  3. http://192.168.XX.XX/nube

Como mi opción es la 3, he ido a esa dirección y veo esto:nextcloud-mozilla-firefox_051

Este es el momento en que podemos escoger nuestro nombre de usuario y la contraseña que nos dé la gana. Luego podremos crear más cuentas de usuario si queremos. Pero más importante que el usuario y contraseña es la información siguiente.

El segundo recuadro blanco nos pregunta dónde queremos guardar los archivos que subamos a nuestra nube. Es importante cambiar el directorio que aparece por defecto, porque está en la tarjeta SD y, aparte de que lo llenaríamos en seguida, si la tarjeta se estropea perderíamos la información. Para evitar este problema era la cuarta entrada de la serie. Como se puede ver, he señalado la carpeta /media/Vir/nube. Si el disco duro no lo vamos a usar para nada más, no haría falta el último directorio pero al crear esta subcarpeta la raíz del disco duro queda  más ordenada. (por cierto que, si quieres hacer algo así, deberás crear la carpeta con sudo mkdir /media/Vir/nube y darle los permisos al usuario del servidor con sudo chown -R www-data:www-data /media/Vir/nube).

La advertencia que hay en el centro de la página es sobre los tipos de bases de datos. Nos avisa de que solo puede utilizarse una base de datos MySQL o MariaDB. Como esta última es la que hemos instalado y creado, no hay problema, así que en el último recuadro blanco podemos añadir el nombre de la base de datos y del usuario (será el mismo si hemos seguido el tutorial) y la contraseña que creamos en su momento. La última casilla podemos dejarla con ‘localhost’.

Si hemos introducido bien todos los datos, tardará un ratito (está creando los archivos y carpetas necesarios para el nuevo usuario) y nos saldrá una pantalla de bienvenida:

seleccion_054

No la cierres directamente. Tienes ahí enlaces para descargar los clientes de escritorio (el primer botón negro, para Ubuntu el proceso es algo complicado pero para Windows es muy fácil) y móviles (los otros dos botones, dependiendo de si usas Android o iPhone). Yo el cliente de Android lo he descargado de F-Droid, que es una appstore alternativa que solo ofrece software libre.

Como seguramente Nextcloud te aparezca en inglés, es probable que quieras ponerlo en español. Para ello, pulsamos en nuestro nombre de usuario que aparece arriba a la derecha y seleccionamos ‘Administración’. En la pantalla que aparece, podemos cambiar el idioma como se ve en la siguiente imagen.

También hay enlaces sobre cómo usar nuestra flamante nube para, además de los archivos y documentos que queramos, almacenar nuestro calendario, nuestras tareas, nuestros contactos… Cuando la cerramos, veremos que tenemos algunas carpetas y documentos de ejemplo.

archivos-nextcloud-chromium_053

Y ya podemos decir que tenemos nuestra propia nube. Pero ¿cómo acceder a ella desde fuera de casa? Si lo intentáramos, veríamos que la dirección 192.168… no funciona. Ese será el contenido de la siguiente entrada.

Dic 02 2016

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (4). Preparando un disco duro externo

Después de las entradas anteriores, ya podríamos instalar Nextcloud en la Raspberry, pero tendríamos un problema. SI un problema tiene la Raspberry es que no tiene disco duro y las tarjetas SD tienen una capacidad bastante limitada, si lo que pretendemos es usar este pequeño ordenador como nube. La solución está en conectar un disco duro y configurarlo para que nos haga el servicio que queremos.

En este caso vamos a seguir las instrucciones de manuti, creador del blog en español de referencia sobre las Raspberry, Raspberry para torpes.

Si todavía  no hemos conectado ningún disco duro a la Rasberry, es el momento de hacerlo, a ser posible con un concentrador que evite problemas de alimentación.

Un posible problema que podemos tener es que desconectemos el disco duro y, al volverlo a conectar, no se reconozca de la misma manera. Si estuviéramos en Windows, cuando insertamos un pincho USB se le da una letra (G;, H; etc.) y si lo sacamos y volvemos a meter cabe la posibilidad de que la letra cambie, y eso puede ser un problema para nuestra nube. Para ello, vamos a asegurarnos de que esto no pasa.

Cuando hemos conectado el disco duro a la Rasbperry, podemos comprobar si se ha reconocido bien, escribiendo ls -laF /dev/disk/by-uuid/

fotos-onedrive7

Reconozco que no sé a qué se refieren exactamente las dos primeras líneas pero, afortunadamente, no hace falta saberlo. Las importantes son el resto. Las que tienen al final la expresión ../../mmcblkXX se refieren a la tarjeta SD, mientras que la otra es la que nos interesa realmente.

En Ubuntu Linux, los discos duros no reciben una letra como en WIndows, sino una expresión que tiene tres letras y puede tener un número. En mi caso, el disco duro es sda1. La “s” significa disco duro moderno, los antiguos llevarían una “h”; la “d” es de disco, la letra es algo parecida a la de Windows, pero siempre en minúscula (podría haber sda, sdb, sdc, etc.); y el número se referirá a las particiones que pueda tener el disco duro.

Manuti recomienda formatear el disco duro en formato ext4. Tiene la ventaja de trabajar mejor y más rápido, y el inconveniente de que, si lo hacemos, Windows no reconocerá el disco duro. Puesto que el principal problema de la Raspberry Pi 2 es la velocidad de transferencia de archivos por la red, problema creado porque el diseño que tiene (todas las versiones, de la 1 a la 3 y también la Zero) presenta un cuello de botella, me parece que no es muy necesario hacerlo, sobre todo si no manejamos normalmente Linux. Si estás interesado en hacerlo, puedes seguir las (muy claras) instrucciones de manuti.

También podemos comprobar la presencia del disco duro con la orden sudo blkid, que nos dará un resultado diferente pero con la información que necesitamos.

pipolkillas-pi-_029

Vemos que el UUID del disco duro es el mismo en los dos casos. Bien, pues vamos a crear una carpeta donde “se monte” el disco duro siempre. O sea, vamos a decirle a la Raspberry que siempre le dé el mismo nombre, como si en Windows le diéramos la misma letra siempre. Para ello creamos un directorio. Puede ser el que queramos, pero es recomendable usar /media/lo-que-sea. Además, para evitarnos problemas de permisos y que siempre podamos abrir cualquier archivo del disco duro, lo dejamos libre, sin protección

Por ejemplo, puesto que uso un disco duro prestado de mi novia que está etiquetado como “Vir”, hago lo siguiente:

sudo mkdir /media/Vir
sudo chmod 777 /media/Vir

Ahora, el siguiente paso es delicado. Alguna vez me he cargado la Raspberry, dejándola sin posibilidad de arrancar bien. Afortunadamente, manuti no solo nos recomienda hacer una copia de seguridad sino que nos explica cómo hacerla. Hacemos una copia de seguridad del archivo que guarda la configuración de los discos:, que se llama /etc/fstab:

ls /etc (comprobamos que el archivo existe)
sudo cp /etc/fstab /etc/fstab.old (lo copiamos con otro nombre en el mismo sitio)
ls /etc (comprobamos que lo hemos hecho bien)
sudo apt-get install ntfs-3g (instalamos el driver para ntfs)

 

pipolkillas-pi030 pipolkillas-p031

Ahora vamos a editar el archivo “fstab” con un programa llamado “nano”: sudo nano /etc/fstab.

Nano es un editor de textos muy sencillo, es el equivalente al Bloc de notas. Ojo que, aunque tengamos ratón porque estamos accediendo por SSH, hay que tener en cuenta que no podemos manejar nano con el ratón; solo podemos hacerlo con el teclado.

Ahora tenemos dos opciones. La primera es algo más sencilla. En el fichero fstab, debemos añadir una línea como la siguiente

/dev/hdaX /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

Pero esto tiene un problema: si desconectamos esti disco duro y conectamos otro, Rasbpian no tendría forma de saber que es otro diferente. Casi seguro, las carpetas y archivos serían diferentes y esto nos puede dar muchos problemas con Nextcoud. Por eso, es más seguro, como recomienda manuti, identificar el disco duro por su “DNI”, el UUID. La línea del archivo fstab sería esta:

UUID=el-largo-código-de-números-y-letras /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

La explicación es esta:

/dev/hdaX (también puede ser /dev/sdaX)

UUID=lo-que-sea

El nombre del disco duro

El disco duro

/media/Vir La carpeta que hemos creado
ntfs-3g El sistema de archivos del disco duro (si pusiéramos solo ntfs, sería de solo escritura y no nos serviría para Nextcloud) (OJO, si hemos seguido las instrucciones de Manuti, el sistema debería ser ext4, es como lo tengo yo)
defaults,locale=es_ES.UTF8 la configuración: normal (defaults) y en español de España (es_ES).
Con las instrucciones de Manuti, bastaría con “defaults”
0 opción para copias de seguridad que la Raspberry no tiene por defecto, así que lo dejamos en 0
0 opción para que fsck (algo parecido a scandisk pero en Linux) escanee esta unidad. Alargaría mucho el tiempo de arranque, así que le decimos que no con el 0

 

Nov 28 2016

[Solucionado]Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (3). Apache 2, PHP 7 y MariaDB 10

Raspbian Jessie es una versión de Debian 8 optimizada para el procesador de la Raspberry, que no es uno normal de ordenador (x86 o x86_64), sino más parecido a los de los móviles (arm). Como no es una versión totalmente estándar, hay ciertas cosas en las que va con cierto retraso. Una de ellas es PHP 7. PHP es el lenguaje de programación en el que se realizan la mayoría de proyectos de software libre que yo he usado (WordPress, Joomla…) y entre ellos está Nextcloud. La versión 7 es mucho más rápida que la 5, y no es una mejora de esas que se miden en milisegundos, sino que se aprecia a simple vista, y más en un ordenador poco potente como es la Raspberry.

Por esto, nos interesa poder instalar PHP 7. Vamos a seguir para ello las instrucciones que encontré en esta página, pero solo para PHP, no para el servidor web. La filosofía de estas instrucciones es sencilla: hay un repositorio más moderno de Raspbian que sí tiene PHP 7, pero es inestable, y si simplemente lo activamos, podemos encontrarnos problemas al actualizar otras partes del sistema. Por ello, lo que vamos a hacer es indicar a la Raspberry que solo utilice este repositorio para PHP.

Por su parte, MariaDB es una bifurcación (fork) de MySQL que tiene todas las características de MySQL 5.5 y alguna de la versión 5.6. En este caso no he visto mucha diferencia entre usar una opción u otra, así que la preferencia por MariaDB es simplemente porque en Raspbian no se puede instalar demasiado fácilmente. Afortunadamente, la solución para PHP 7 también nos vale, porque la versión normal de MariaDB que trae Raspbian da muchos problemas.

[Actualizado] Una versión anterior de esta entrada no tenía esto anterior en cuenta y, aunque parecía que se instalaba la base de datos, no era del todo cierto porque no funcionaba.

Y, por último, Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que la Raspberry en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.

Instalación de MariaDB y phpMyAdmin

Este paso me ha dado bastantes dolores de cabeza hasta que, parece, lo he conseguido resolver.

Pero antes de llorar mis penas como informático de palo, ¿qué es phpMyAdmin? Es un servicio web que permite manejar bases de datos MySQL o MariaDB de forma gráfica, sin conocer el lenguaje SQL. Esto, para gente como yo, es una gran ventaja. Y teniendo en cuenta que Nextcloud recomienda MySQL, es muy recomendable instalar phpMyAdmin para poder crear bases de datos, usuarios o esas cosas.

El problema que me he encontrado es que la versión de phpMyAdmin de Raspbian sigue dependiendo de PHP 5, con lo que daba errores. Desconozco el motivo y, en realidad, desconozco por qué instalarlo de esta forma evita los errores, pero “a-mí-me-funciona”, al menos.

En un terminal o vía SSH, escribimos el siguiente comando:

sudo apt-get update && sudo apt-get install mariadb-server && sudo apt-get install phpmyadmin

Es decir, actualizamos la información de actualización, instalamos MariaDB e instalamos phpMyAdmin.

Durante la instalación, larga porque se van a instalar muchos paquetes, incluyendo php5 y Apache 2.4.10 (que nos servirá por ahora, aunque sea una versión más vieja), nos pedirá que creemos la contraseña del usuario ‘root’ de MariaDB y la contraseña con que phpMyAdmin se va a conectar al servidor de bases de datos. Podemos poner la que queramos, por supuesto.

Podemos comprobar que se ha instalado buscando en con el navegador de otro ordenador conectado a nuestra red de casa la dirección http://192.168.XX.XX/phpmyadmin, cambiando las equis por la información que nos suministre el comando ifconfig (ver entrada anterior):

phpmyadmin-mozilla-firefox_037

Por defecto sale configurado en inglés pero podemos ponerlo en español, que será más fácil. No se ve, tapado por el campo de selección, pero debajo esta el usuario ‘root’ y la contraseña que hemos creado al instalar.

Podemos crear una nueva base de datos en el menú de la izquierda, con la opción ‘Nuevo’, pero hay una forma todavía más sencilla, pues nos permite crear a la vez la base de datos para Nextcloud y el usuario. En la pantalla de inicio buscamos el enlace ‘Agregar usuario’ y lo seguimos.

phpmyadmin-4-2-12deb2deb8u2-mozilla-firefox_043

En la pantalla que aparece podemos crear el usuario que queramos (‘nextcloud’ en el ejemplo, pero se puede poner lo que se prefiera) y es importante marcar la opción ‘Crear base de datos con el mismo nombre y otorgar todos los privilegios’, con lo que creamos a la vez el usuario y la base. Es importante no olvidar la contraseña que hemos puesto, pues nos hará falta cuando instalemos Nextcloud.

Cuando hayamos terminado, bajamos al final de la página y pulsamos en ‘Continuar’.

phpmyadmin-4-2-12deb2deb8u2-mozilla-firefox_042

Instalación de versiones modernas de Apache y PHP  7

Cuando ya hemos creado la base de datos, podemos pensar en instalar PHP 7, que funciona, en mi experiencia, el doble de rápido que PHP 5, es una actualización que merece mucho la pena. (de hecho, estoy en ese proceso también en el hosting de este blog). Para ello, vamos a cambiar los repositorios, los orígenes de donde se descargan las actualizaciones de Raspbian:

sudo nano /etc/apt/sources.list

Esto hace que editemos el archivo que guarda la información de los repositorios. Añadimos al final esta línea:

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
Aquí la palabra clave es stretch. Significa que ahora se va a coger información de los paquetes de un repositorio más moderno pero más inestable. Por esto, para evitar problemas, debemos indicarle a Raspbian que solo utilice stretch para PHP y MariaDB. Para ello, escribimos:

sudo nano /etc/apt/preferences
En este caso nos sale un archivo vacío, en el que debemos escribir, comprobando que no queden líneas en blanco, lo siguiente:
Package: *
Pin: release n=jessie
Pin-Priority: 600

De esta manera, le estamos diciendo que, si puede escoger entre los repositorios normales y stretch, escoja los normales. Pero como PHP 7 no está en los normales, en este caso sí escogerá stretch.

Ahora ya podemos instalar PHP 7. Son varios paquetes, pero basta con poner estas dos líneas. Son realmente dos, pero la segunda es muy larga.

sudo apt-get update
sudo apt-get install -t stretch php7.0 php7.0-bz2 php7.0-cli php7.0-curl php7.0-gd php7.0-fpm php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-xml php7.0-zip php-imagick php-redis mariadb-server libapache2-mod-php7.0 apache2

La primera refresca, actualiza, la información que hemos cambiado con el paso anterior. La segunda puede ser algo más difícil de entender. ¿Qué significa todo esto?

sudo ejecutar como superusuario
apt-get el programa que controla los paquetes y actualizaciones
install instalar
-t stretch escogiendo solo del repositorio stretch
php7.0 php7.0-bz2 php7.0-cli php7.0-curl php7.0-gd php7.0-fpm php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-xml php7.0-zip php-imagick php-redis mariadb-server libapache2-mod-php7.0 apache2
los paquetes que hacen falta para instalar PHP 7, además de Apache y MariaDB en versiones más modernas, incluyendo ya los requisitos adicionales de Nextcloud

Aparecerá una pantalla avisando de que glibc necesita como mínimo la versión 3.2 del kernel. No hay problema, así que bajamos con el ratón y pulsamos la tecla Q para continuar la instalación.

También se nos preguntará si queremos reiniciar ciertos servicios sin preguntar. Podemos seleccionar que sí sin ningún problema.

El aviso de error “Unescaped left brace in regex is deprecated, passed through in regex; marked by <– HERE in m/\${ <– HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.” o similar era un síntoma de que la versión anterior de esta entrada de blog daba problemas, ahora no me ha aparecido y todas las veces anteriores sí, así que debe de ser que vamos por el buen camino.

Comprobaciones

Cuando hemos terminado, podemos comprobar que lo hemos hecho bien de estas formas:

Comprobación de Apache

Al comprobar que funcionaba phpMyAdmin hemos visto que la primera versión que hemos instalado de Apache funcionaba. Para comprobar la nueva, abrimos un navegador en otro ordenador de nuestra red en casa (por ejemplo, en el que estamos usando SSH) y entramos en la dirección de cuatro números que buscamos en la anterior entrada. Debe aparece la página por defecto de Apache. En mi caso, como se puede ver, la dirección es 192.168.0.26:

apache2-debian-default-page-it-works-mozilla-firefox_025

PHP 7

Para comprobar que todo es correcto, podemos escribir php -version en el terminal y debería aparecer algo como esto:

phpversion

Visto desde Windows con PuTTY. (ver entrada anterior).

Si no nos fiamos y queremos comprobar el estado de PHP en el navegador, podemos crear un archivo de prueba.

La carpeta del servidor web Apache en Rasbpian, Debian, Ubuntu y similares es /var/www/html. Es decir, todos los archivos que estén en ese directorio y sus subdirectorios puede ser entregada por el servidor. Es donde vamos a instalar Nextcloud en la sexta entrada de esta serie. Bien, pues para comprobar que PHP funciona, tenemos que crear un pequeño archivo en /var/www/html con la extensión .php, para que el servidor sepa que tiene que pasarlo por PHP 7. Para ello, introducimos esta orden:

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

Nos aparece el editor nano sin ningún contenido. Pegamos (se puede usar la combinación de teclas MAYS + Insert) el siguiente código (código adaptado de aquí):

<?php
phpinfo();
?>

Ahora, abrimos un navegador y buscamos la URL 192.168.XX.XX/info.php. Y nos podemos llevar una buena sorpresa, porque como versión de PHP probablemente va a aparecer ¡la 5.6!. No hay problema: como se instaló php5 con phpmyadmin, php7 no se ha activado por sí solo. Pero la solución es sencilla, consiste en desactivar el módulo php5 y activar el módulo php7.0. Para ello, escribimos las siguientes órdenes:

sudo a2dismod php5 (para desactivar (disable) el módulo (module) php5 de apache 2)
sudo a2enmod php7.0 ( para activar (enable) el módulo (module) php7.0 de apache 2)
sudo service apache2 restart (para reiniciar el servidor web y que los cambios tengan efecto)

Ahora sí, si volvemos a cargar la página info.php, nos encontraremos lo siguiente:

phpinfo-mozilla-firefox_044

MariaDB

Si tecleamos en el terminal la orden “mysql” (al ser un reemplazo de MySQL, MariaDB usa los mismos términos), nos dará un error, porque debemos entrar como el usuario root. Para ello escribimos sudo mysql en terminal:

mariadb

Y vemos la versión que tenemos instalada. Podemos salir escribiendo exit.

Si no funciona de primeras así y aparece el mensaje ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO), tenemos que introducir el usuario y contraseña con la orden, de la siguiente forma:

mysql -u USUARIO -pCONTRASEÑA

pudiendo ser el USUARIO ‘root’ o ‘nextcloud’ o el nombre que hayamos decidido darle. La CONTRASEÑA es evidente, pero hay que tener cuidado porque NO hay un espacio entre el -p y la contraseña.

Retoques y mejoras

De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos mysql_secure_installation (truco sacado de aquí) y respondemos las preguntas:

mariadb

Se pide, lo primero la contraseña del usuario ‘root’. El error que aparece se debe a que no recordaba qué contraseña había puesto, y tuve que probar dos. Te propone cambiar esa contraseña, pero esto no es necesario.

mariadb2

Después nos pide eliminar el acceso anónimo, que es una buena idea, y deshabilitar el acceso del usuario root desde otro ordenador que no sea la Raspberry. También sugiera eliminar una base de datos de prueba, que es innecesaria. Decimos que sí (y) a estas tres preguntas.

mariadb3

Por último, sugiere recargar las tablas de privilegios (lo que quiera que eso quiera decir), También aceptamos y listo.

En una versión anterior de esta entrada recomendaba instalar phpMyAdmin para crear las bases de datos de forma gráfica, pero da varios errores porque la versión de Raspbian todavía depende de php5, así que lo elimino.

Otros prerrequisitos de Nextcloud

Para poder ver vistas previas de las imágenes que subamos a nuestra nube, necesitamos instalar un programa como ffmpeg:

sudo apt-get install -t stretch ffmpeg (una versión anterior no tenía la opción -t stretch  y daba un error de dependencias)

(parte en proceso)

Entradas más antiguas «

Obtener más elementos