En esta ocasión explicamos cómo instalar Nextcloud en FreeBSD 12 paso a paso, una magnífica alternativa para crear tu propio servicio de nube de archivos sobre tu servidor o VPS FreeBSD, tanto para red local como para Internet.
Contenido
Antes de instalar Nextcloud en FreeBSD 12
En caso de que quieras completar esta guía de instalación de Nextcloud en FreeBSD 12, deberías satisfacer todos los siguientes requerimientos:
- Un sistema FreeBSD 12 actualizado.
- Una pila tipo FAMP (servidor web con PHP y bases de datos).
- El paquete ca_root_nss.
- Acceso a consola con root o un usuario con permisos de sudo.
- Conexión a Internet.
Si aún no dispones del entorno necesario, es posible que te interese nuestra guía de instalación FAMP en FreeBSD 12. Puedes integrar Nextcloud en el servidor web de FreeBSD 12 como el sitio web principal del sistema, como parte del sitio principal o en su propio servidor virtual; y en cualquier caso con seguridad HTTPS. Por brevedad, en esta guía Nextcloud se integra como parte del sitio principal sobre HTTP estándar.
Cómo descargar Nextcloud en FreeBSD 12
Vamos a descargar Nextcloud para FreeBSD 12 desde la página oficial del proyecto, ya que los paquetes de esta aplicación disponibles en los repositorios del sistema están algo anticuados.
A través de la opción «Get Nextcloud» podremos seleccionar «Server packages«, donde desplegando la opción «Details and download options» podremos elegir entre el paquete en formato .tar.bz2 o .zip.
Si estás navegando en el sistema FreeBSD 12 en el que vas a realizar la instalación puedes descargar el paquete que prefieras directamente desde el navegador.
En este ejemplo copiamos el enlace del paquete en formato .tar.bz2 y lo descargamos desde consola mediante el comando fetch:
~$ fetch https://download.nextcloud.com/server/releases/nextcloud-23.0.0.tar.bz2
Cómo instalar Nextcloud en FreeBSD 12
Para poder instalar Nextcloud en FreeBSD 12 es necesario completar previamente una serie de pasos necesarios que se detallan a continuación.
Archivos de Nextcloud
Descomprimiremos el paquete que acabamos de descargar en su ubicación definitiva, según hayamos decidido integrar Nextcloud en el servidor web de FreeBSD 12.
~$ sudo tar -xf nextcloud-23.0.0.tar.bz2 -C /usr/local/www/apache24/data/
Nextcloud debe poder escribir en su propio directorio, así que cambiaremos su propietario por el usuario con el que corre el servidor web (www para Apache en FreeBSD 12):
~$ sudo chown -R www:www /usr/local/www/apache24/data/nextcloud/
PHP
Configuración
Configuraremos algún valor de PHP que Nextcloud requiere para su correcto funcionamiento, editando el archivo php.ini:
~$ sudo nano /usr/local/etc/php.ini
Buscamos la directiva memory_limit:
... memory_limit = 128M ...
Y cambiamos su valor al recomendado por Nextcloud:
... memory_limit = 512M ...
Guardamos los cambios y cerramos el archivo.
Extensiones
Nextcloud requiere la instalación en FreeBSD 12 de una serie de extensiones de PHP, en este ejemplo trabajamos sobre PHP 7.4, pero si tienes otra versión sólo hay que cambiar 74 por 7x en el nombre de los paquetes.
Instalamos las extensiones necesarias:
~$ sudo pkg install -y php74-{json,session,bcmath,ctype,curl,dom,fileinfo,filter,gd,gmp,iconv,pecl-imagick,intl,mbstring,opcache,openssl,pcntl,pecl-apcu,posix,simplexml,xml,xmlreader,xmlwriter,zip,zlib}
En el caso de usar PHP 7.3:
~$ sudo pkg install -y php73-{json,session,bcmath,ctype,curl,fileinfo,filter,gd,gmp,hash,iconv,pecl-imagick,intl,mbstring,opcache,openssl,pecl-apcu,posix,simplexml,xml,xmlreader,xmlwriter,zip,zlib}
Dependiendo del tipo de almacenamiento, puedes elegir entre MariaDB/MySQL, PostgreSQL o SQLite, cuyas extensiones son php7x-pdo_mysql, php7x-pdo_pgsql y php7x-pdo_sqlite respectivamente.
Instala aquella extensión relacionada con el motor de bases de datos de tu sistema FreeBSD 12, por ejemplo, para MariaDB/MySQL:
~$ sudo pkg install -y php7x-pdo_mysql
O para PostgreSQL:
~$ sudo pkg install -y php7x-pdo_pgsql
Al terminar la instalación recargamos la configuración del servidor web:
~$ sudo service apache24 reload
Servidor web
Nextcloud utiliza el módulo Rewrite de Apache, así que debemos asegurarnos de que esté cargado en la configuración del servidor web:
~$ sudo nano /usr/local/etc/apache24/httpd.conf
Buscaremos esta línea:
... #LoadModule rewrite_module libexec/apache24/mod_rewrite.so ...
Eliminamos el carácter # inicial para que Apache cargue el módulo:
... LoadModule rewrite_module libexec/apache24/mod_rewrite.so ...
Guardamos los cambios y cerramos el archivo.
Por otro lado es importante que se puedan usar los archivos .htaccess de Nextcloud, para lo que crearemos una configuración especial:
~$ sudo nano /usr/local/etc/apache24/Includes/nextcloud.conf
La siguiente configuración permitirá que Apache cargue las instrucciones de los archivos .htaccess de Nextcloud:
<Directory /usr/local/www/apache24/data/nextcloud> AllowOverride all </Directory> <IfModule mod_dav.c> Dav off </IfModule>
Además, podemos aprovechar esta misma configuración para ajustar algunos valores de PHP.
Guardados los cambios, reiniciamos el servicio para activar todas estas configuraciones:
~$ sudo service apache24 restart
Base de datos
Nextcloud se apoya en una base de datos del servicio que tengamos instalado en FreeBSD 12. En este tutorial veremos cómo preparar los motores de bases de datos más usados.
MariaDB/MySQL
Conectaremos con el cliente de consola mysql para preparar lo que necesitamos:
~$ mysql -u root -p
Creamos la base de datos:
> create database nextcloud charset utf8mb4 collate utf8mb4_unicode_ci;
En MariaDB y MySQL 5 creamos el usuario con la siguiente sentencia:
> create user nextcloud@localhost identified by 'XXXXXXXX';
Mientras que para MySQL 8 lo creamos teniendo en cuenta el plugin de conexión adecuado:
> create user nextcloud@localhost identified with mysql_native_password by 'XXXXXXXX';
Y damos los permisos necesarios al usuario:
> grant all privileges on nextcloud.* to nextcloud@localhost;
Finalmente salimos del cliente mysql:
> exit
PostgreSQL
Creamos un rol con contraseña:
~$ sudo -u postgres createuser -P nextcloud
Y creamos la base de datos, asociándola al nuevo rol:
~$ sudo -u postgres createdb nextcloud -O nextcloud
Instalación vía web
Es el momento de finalizar la instalación a través del instalador web. Accedemos desde un navegador indicando la URL que hayamos configurado para Nextcloud.
Por ejemplo, la máquina FreeBSD 12 sobre la que hemos preparado este tutorial es accesible en el subdominio freebsd12.local.lan, y hemos instalado Nexctloud en la ruta /nextcloud del sitio web por defecto, así que podemos usar http://freebsd12.local.lan/nextcloud como URL:
Se presenta un formulario para crear el usuario administrador, donde introduciremos un nombre y una contraseña.
A continuación se muestran las opciones del sistema de bases de datos.
Según el soporte instalado para bases de datos habrá más o menos opciones disponibles. Desplegaremos, si es el caso, las opciones de bases de datos para seleccionar el sistema que nos interese e introducimos los datos de conexión a la base de datos.
También puedes decidir si quieres instalar o no las aplicaciones recomendadas de Nextcloud, a través de la opción «Instalar las aplicaciones recomendadas«.
Al terminar seguimos el enlace «Completar la instalación«.
Es muy posible que se produzca un error durante la instalación:
Por algún motivo se produce una redirección errónea en la que desaparece de la URL la dirección del servidor FreeBSD 12, en este caso quedaría sólo la parte de la ruta de instalación, /nextcloud/index.php/core/apps/recommended.
Podemos solucionarlo añadiendo la dirección (IP, dominio, etc.) al principio de la URL, por ejemplo, http://freebsd12.local.lan/nextcloud/index.php/core/apps/recommended.
El proceso de instalación e inicialización de Nextcloud continuará, mostrándose el avance en el proceso de descarga e instalación de las aplicaciones recomendadas (si hemos dejado marcada la opción):
Al terminar la instalación se inicia automáticamente la sesión de administrador, donde se presentará un carrusel informativo con las principales novedades y características de Nextcloud:
Terminado el carrusel queda despejada la pantalla principal, donde veremos distintos aspectos de nuestra cuenta local de Nextcloud:
Por ejemplo, podemos acceder a la zona donde guardar nuestros archivos personales y copias de seguridad usando la opción «Archivos» del menú superior:
Ya está todo listo para cargar archivos, crear directorios, etc.
Además, el servicio queda preparado para conectar desde cualquier dispositvo vía navegador o instalando un cliente de Nextcloud que puedes descargar desde la misma página de descargas en la que obtuvimos el paquete del servidor.
Post-instalación de Nextcloud en FreeBSD 12
Una vez instalada la aplicación y ya funcionando, conviene hacer ciertas tareas de post-instalación que quedan pendientes.
Eliminar index.php de las URLs
Si quieres que Nextcloud funcione generando URLs que no muestren index.php, de modo que resulten más cortas y limpias, editaremos el archivo de configuración de Nextcloud, config.php:
~$ sudo nano /usr/local/www/apache24/data/nextcloud/config/config.php
Y añadiremos antes del paréntesis de cierre final estas dos líneas:
... 'overwrite.cli.url' => 'http://freebsd12.local.lan/nextcloud', 'htaccess.RewriteBase' => '/nextcloud', );
Debes adaptar los valores de las directivas overwrite.cli.url y htaccess.RewriteBase para hacerlos coincidir con la dirección de tu máquina FreeBSD 12 y el directorio donde lo has instalado.
Una vez guardado el archivo, lanzaremos el siguiente comando para actualizar el archivo .htaccess:
~$ sudo -u www php /usr/local/www/apache24/data/nextcloud/occ maintenance:update:htaccess
Otras configuraciones
Si instalaste la extensión APCu hay que activarla manualmente editando el archivo de configuración de Nextcloud:
~$ sudo nano /usr/local/www/apache24/data/nextcloud/config/config.php
Al final del archivo, justo antes del paréntesis de cierre, añadimos esta línea:
... 'memcache.local' => '\OC\Memcache\APCu', );
Otra configuración manual que podemos realizar es la de la región telefónica por defecto, para lo que configuramos el valor default_phone_region añadiendo también la siguiente línea:
... 'default_phone_region' => 'ES', );
Si no conoces el código ISO 3166-1 para tu país, puedes consultarlo en Wikipedia.
Todos estos cambios se aplican directamente tras guardar el archivo.
Servicio Cron
Crearemos una tarea programada para ejecutar los trabajos en segundo plano de Nextcloud con mayor rendimiento:
~$ sudo nano /etc/cron.d/nextcloud
La configuración será la siguiente línea:
*/5 * * * * www /usr/local/bin/php /usr/local/www/apache24/data/nextcloud/cron.php
Una vez guardados los cambios, los trabajos en segundo plano se ejecutarán regularmente cada 5 minutos.
Conclusión
Así de fácil es instalar Nextcloud en FreeBSD 12, en cuestión de instantes tendrás funcionando tu propio servicio de nube de archivos tanto en red local como a través de Internet. Y fácilmente accesible, gracias a la gran variedad de clientes de Nextcloud para diversos dispositivos.
Si tienes dudas, preguntas, alguna sugerencia, propuesta de mejora o correción del artículo, puedes dejar un comentario.
¡Apoya este sitio!
¿Ya tienes lista tu nube de archivos personal gracias a esta guía de instalación de Nextcloud en FreeBSD 12? Si es así y te apetece mostrar tu agradecimiento, cualquier mínima aportación ayuda al mantenimiento de este sitio y creación de más guías y tutoriales como este.
Puedes ayudarnos dejando 1 $ de propina en PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!