Nextcloud.
Lo instalé y configuré en el curro en ratos muertos, y el manual de nextcloud funcionó estupendamente.
Requisitos previos.
Lo primero que tenemos que comprobar es que tenemos los módulos de php necesarios para ejecutarlo. Buscamos si el módulo está instalado con
$ php -m | grep -i <nombre-del-módulo>
Si devuelve algún resultado, es que el módulo está instalado. Si no:
$ sudo apt-get install php7.0-<nombre-del-módulo>
Un ejemplo nunca viene mal
$ php -m | grep -i dom
$ sudo apt-get install php7.0-dom
Nota: tengo la versión 7.0 de php instalada. Si no sabes cuál tienes ejecuta
$ php --version
y sal de dudas.
Módulos requeridos.
PHP (>= 7.0, 7.1 or 7.2)
PHP module ctype
PHP module dom
PHP module GD
PHP module iconv
PHP module JSON
PHP module libxml (Linux package libxml2 must be >=2.7.0)
PHP module mbstring
PHP module posix
PHP module SimpleXML
PHP module XMLReader
PHP module XMLWriter
PHP module zip
PHP module zlib
Para la base de datos.
PHP module pdo_mysql (MySQL/MariaDB)
Módulos recomendados.
PHP module curl (highly recommended, some functionality, e.g. HTTP user authentication, depends on this)
PHP module fileinfo (highly recommended, enhances file analysis performance)
PHP module bz2 (recommended, required for extraction of apps)
PHP module intl (increases language translation performance and fixes sorting of non-ASCII characters)
PHP module mcrypt (increases file encryption performance)
PHP module openssl (required for accessing HTTPS resources)
Requeridos para aplicaciones en concreto.
(Yo los instalé todos para evitar sorpresas en el futuro)
PHP module ldap (for LDAP integration)
PHP module smbclient (SMB/CIFS integration, see SMB/CIFS)
PHP module ftp (for FTP storage / external user authentication)
PHP module imap (for external user authentication)
Requeridos para aplicaciones en concreto (opcionales).
PHP module exif (for image rotation in pictures app)
PHP module gmp (for SFTP storage)
Opcionales para mejorar el rendimiento del server.
PHP module memcached
Módulos para generar vistas previas (opcionales).
PHP module imagick
avconv or ffmpeg
OpenOffice or LibreOffice
Libre office viene instalado con la raspi (en la versión no lite), y para instalar ffmpeg pues el rollo de siempre
sudo apt-get update ffmpeg
Para el proceso de la línea de comandos
PHP module pcntl (enables command interruption by pressing ctrl-c)
Instalación
Ejecutamos
sudo snap install nextcloud
Nos bajamos el nextcloud desde su página, verificamos la integridad (buscar en su manual, que a mí se me hace bola y ya está allí) y lo metemos en la carpeta en la que queramos instalarlo. Descomprimimos
$ unzip nextcloud-x.y.z.zip
Sustituye x.y.z por la versión que hayas bajado (completar con tabulador hará que ni te des cuenta de esto).
Creamos el archivo de configuración de apache
$ sudo nano /etc/apache2/sites-available/nextcloud.conf
Y pegamos en él
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>
Creamos un enlace a sites-enabled
$ sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
Activamos los módulos necesarios de apache
$ sudo a2enmod rewrite
$ sudo a2enmod headers
$ sudo a2enmod env
$ sudo a2enmod dir
$ sudo a2enmod mime
$ sudo a2enmod setenvif
Reiniciamos apache
service apache2 restart
Damos permisos al usuario HTTP sobre los directorios de nextcloud
chown -R www-data:www-data /var/www/html/nextcloud/
(Cambia la ruta /var/www/html/nextcloud/ en función de dónde lo hayas instalado)
Crea una nueva base de datos en phpMyAdmin y, finalmente, ve a el directorio en el que lo hayas instalado en un navegador y completa los datos que te solicitan para ponerlo todo en marcha. Básicamente usuario, contraseña y datos de la base de datos que acabas de crear.