Recomendaciones
- Escribe todas las configuraciones a mano, no copies y pegues solamente. te sera util saber que estás haciendo exactamente en caso de errores.
Rutas
Nombre | Ruta |
---|---|
nextcloud config | /etc/apache2/sites-available/nextcloud.conf |
Config ip estatico | /etc/netplan/50-cloud-init.yaml |
config.php nextcloud | /var/www/nextcloud/config/config.php |
Comandos Útiles
comando | Descripción |
---|---|
sudo service apache2 restart | Reiniciar servidor web de apache2 (donde esta almacenado el nextcloud) |
sudo service mysql restart | Reiniciar MySQL o MariaDB (Base de Datos) |
hostname -I | para comprobar que Ip tengo |
1. Instalación del Sistema Operativo
USB booteable con Ubuntu server
Crea la unidad USB como booteable con Ubuntu server
puedes descargar la imagen de Ubuntu server desde la web oficial
https://ubuntu.com/download/server
Instalar Ubuntu server
Dependiendo de la computadora que vas a usar como servidor debes entrar a la BIOS para seleccionar la USB con Ubuntu server en mi caso uso la tecla Esc para entrar a la BIOS y elegir la USB con mi Sistema Operativo.
Nota: Las credenciales las puedes guardar en keepass o samsung pass, todo dato que veas en la configuración puede ser Útil, guárdalo.
luego de realizar la instalación te va a pedir reiniciarla, antes de reiniciar debes sacar la USB Booteable.
Configuración inicial del servidor
Inicia Session en tu servidor con el usuario y la contraseña creados.
Abre una terminal y actualiza los paquetes:
sudo apt-get update
sudo apt-get upgrade
2. Configuración de Ip Estática para el servidor y tu Router Wi-Fi
Dado que este es tu servidor y tu nube personal, existen configuraciones fijas que no se modificarán con frecuencia, es importante asegurarte de que ni tu servidor ni tu router cambien su ruta cada vez que los reinicias.
Recuerda que tanto tu router como tu servidor asignan la dirección IP de manera dinámica por defecto. Esto significa que, al reiniciar cualquiera de ellos, la IP podría cambiar, lo que resultaría en errores y la imposibilidad de conectarte a tu servidor correctamente.
Configuraciones del lado del servidor
- Vamos a fijarnos que ip tengo actualmente en mi servidor
ingresa el siguiente comando
hostname -I
te debería dar algo similar a 192.168.1.101
el 101
puede ser distinto en tu caso, eso es por la parte flexible de notación CIDR (así se llama la dirección ip) que le designo tu router a tu servidor.
- Vamos a ver dirección ip tiene tu Router
Aunque 192.168.1.1 es una dirección común, otros routers pueden usar direcciones diferentes como 192.168.0.1, 192.168.1.254, o incluso 10.0.0.1.
vamos a verificar esto del lado de tu servidor Ubuntu, ejecutamos:
ip route
te va a retornar algo similar a default via 192.168.1.1
la cual seria la ruta de tu router.
- Vamos a configurar nuestro servidor para que cada que inicie use esa ip
sudo nano /etc/netplan/50-cloud-init.yaml
Coloca estas configuraciones
network:
version: 2
ethernets:
eno1: #Guarda bien este nombre, lo usaras más adelante.
dhcp4: no # importante para que la red estática no cambie
addresses:
- 192.168.1.101/24 # Asegúrate que ya tengas esta ip configurada en tu Router
routes:
- to: default
via: 192.168.1.1 # Ip de tu Router
nameservers:
addresses:
- 192.168.1.1 # Ip de tu Router
Aplicas los cambios
sudo netplan apply
Configuraciones del lado de tu Router
Así mismo como configuraste tu servidor, debes configurar tu Router, no vaya a ser que apagues tu servidor y tu router por algún reinicio o cualquier cosa asigne tu Ip a otro dispositivo.
- Primero vamos a buscar la MAC Address de tu Servidor ejecuta:
ip a
como ya configuraste tu servidor tu MAC se encuentra en eno1
debe ser similar a
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
lo que dice aa:bb:cc:dd:ee:ff
es tu mac address
- Como ya tenemos la ruta de tu Router solo es ingresar desde el navegador e ingresar a las configuraciones de administración de tu Router en mi caso. http://192.168.1.1/
buscas la configuración de Enlace de IP y MAC ahí colocas la MAC de tu Servidor y la IP que ya configuraste en tu servidor.
Guardas y aplicas cambios
3. Instalación de dependencias para Nextcloud
Instalación de Apache, MariaDB y PHP (versión disponible en los repositorios oficiales)
sudo apt-get update
sudo apt-get install apache2 mariadb-server libapache2-mod-php
sudo apt-get install php php-cli php-common php-curl php-zip php-gd php-mysql php-xml php-mbstring php-json php-intl
Verifica si puedes entrar desde un navegador en otro dispositivo
primero necesitamos crear una archivo php
nano /var/www/html/info.php
escribes y guardas
<?php phpinfo(); ?>
al archivo le colocas como nombre info.php
En la sección [[#Configuraciones del lado del servidor]] descubrimos nuestra ip, esta misma es la que usaremos para entrar a nuestro servidor.
Abre un navegador web en otro dispositivo conectado a la misma red que tu servidor. En la barra de direcciones, escribe la dirección IP de tu servidor seguida de /info.php
. Por ejemplo:
http://<tu-ip-servidor>/info.php
Configurar Base de datos MariaDB
Ejecuta el siguiente comando para asegurar la instalación de MariaDB que realizamos en el paso anterior:
sudo mysql_secure_installation
Crea una base de datos y un usuario para Nextcloud:
sudo mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Es importante que guardes el usuario, contraseña y nombre de la base de datos ya que estos se usaran para configurar el servidor del lado de nextcloud.
📝Como nota adicional,
no recomiendo usar nombres y contraseñas (nextcloud, nextclouduser, password) como los del ejemplo ya que son inseguros y en este servidor estamos guardando información sensible y no queremos arriesgarnos de perder.
Descargar y configurar Nexcloud
Descarga e instalación manual de Nextcloud:
cd /var/www
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo apt-get install unzip
sudo unzip latest.zip
sudo apt remove unzip
#Este siguiente comando puede no ser necesario, recomiendo hacer un ls para verificar si el archivo que descargaste tiene version
sudo mv nextcloud-<versión> nextcloud
Mover Nexcloud a la carpeta var/www en caso que no este ahí
sudo mv /var/snap/nextcloud/current/nextcloud /var/www/nextcloud
Habilita los módulos necesarios de Apache:
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
Configuración de Apache para Nextcloud:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Contenido del archivo:
Recuerda que 192.168.1.101 es la dirección de tu servidor
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/nextcloud
ServerName 192.168.1.101
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Habilitación del sitio de Nextcloud y reinicio de Apache:
sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
sudo service apache2 restart
## Otorgar permisos
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
Accede a la dirección IP de tu servidor y veras la página de inicio de Nexcloud
Problemas que experimente y como los solucione
Error el ingresar a tu página de configuración de php
Página en blanco al acceder a info.php:
Solución: Verificar que Apache esté ejecutándose correctamente y que el archivo info.php tenga los permisos correctos:
sudo service apache2 status
sudo chmod 644 /var/www/html/info.php
Error 404 Not Found al acceder a la dirección de tu servidor nextcloud:
Solución: Verificar que los archivos de Nextcloud están en el directorio correcto y configurar Apache correctamente:
Rutas a revisar configuraciones:
/var/www/nextcloud/config/config.php
/etc/netplan/50-cloud-init.yaml
/etc/apache2/sites-available/nextcloud.conf
# Copiar configuración
sudo cp -r /var/snap/nextcloud/common/nextcloud/* /var/www/nextcloud/
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
sudo service apache2 restart
Problema de permisos al editar el archivo info.php:
Solución: Cambiar el propietario del archivo y ajustar los permisos:
sudo chown tu_usuario:tu_usuario /var/www/html/info.php
sudo chmod 644 /var/www/html/info.php
Apache muestra un listado de directorios en lugar de la página de configuración de Nextcloud:
Solución: Deshabilitar la opción de listar directorios en Apache:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Asegúrate que en la sección del directoy se incluya lo siguiente
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
una vez realizado guardas y reinicias el servidor apacha
sudo service apache2 restart
Error: "Internal Server Error" al acceder a Nextcloud
Problema: Nextcloud mostraba un error interno debido a problemas en la configuración del servidor o en los permisos de los archivos.
Solución:
Aseguramos los permisos correctos en los directorios de Nextcloud:
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
Reiniciamos los servicios de Apache y MariaDB para aplicar los cambios.
sudo service apache2 restart
sudo service mysql restart
Error: Falta del archivo de log de Nextcloud
Problema: No se generaba el archivo nextcloud.log
, lo que complicaba el diagnóstico de errores.
Solución
Revisamos la configuración en config.php
en la ruta /var/www/nextcloud/config/config.php
y habilitamos el registro de logs añadiendo
'loglevel' => 2,
'logfile' => '/var/www/nextcloud/data/nextcloud.log',
Ajustamos los permisos para permitir que Apache escribiera en el directorio de logs:
sudo chown -R www-data:www-data /var/www/nextcloud/data
sudo chmod -R 755 /var/www/nextcloud/data
Olvide la contraseña del usuario Administrador
Ve a la ruta
/var/www/nextcloud
# Ejecuta
sudo -u www-data php occ user:resetpassword Administrador
📝 Notas: Administrador es el usuario, esto funcionara para cualquier usuario registrado en tu servidor. Si colocas un usuario que no existe el mismo sistema te dirá que no existe.
Top comments (0)