En este tutorial os vamos a explicar cómo instalar NextCloud con el certificado Let´s Encrypt y el servidor Redis en Debian 9 Stretch.
Para poder hacer esta configuración, es necesario tener instalado y configurado LAMP. También es recomendable crear el puntero en del subdominio.
Instalación de Redis y Apache
Se instala el paquete de Redis
# apt install php-redis redis-serverY se habilita con
# systemctl enable redis-serverTambién se instalan los paquetes de PHP que se necesitan para Netxcloud.
# apt install php7.0-zip php-dompdf php7.0-xml php7.0-mbstring php7.0-curl unzip php7.0-gd php7.0-mysqlPara activar los módulos en Apache
# a2enmod rewrite headers env dir mimeComo nos indica al finalizar la instalación de los módulos, reiniciamos Apache
# systemctl restart apache2A continuación, se crea un VirtualHost para el NextCloud para empezar a configurar Apache
# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nextcloud.confSe edita el contenido del fichero
# nano /etc/apache2/sites-available/nextcloud.confCon el siguiente contenido
<VirtualHost *:80>
ServerName nc.diariodeunalinuxera.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/vhost/nc.diariodeunalinuxera.com/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/vhost/nc.diariodeunalinuxera.com/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
#AuthConfig
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/html/vhost/nc.diariodeunalinuxera.com/logs/error.log
LogLevel warn
CustomLog /var/www/html/vhost/nc.diariodeunalinuxera.com/logs/access.log combined
<IfModule mod_headers.c>
Header always set Strict-Transport-Security: "max-age=31536000; includeSubdomains; preload"
</IfModule>
</VirtualHost>Se activa el espacio web y se reinicia Apache
# cd /etc/apache2/sites-available/
# a2ensite nextcloud.conf
# systemctl restart apache2Instalación del certificado SSL
Ahora se instalan los paquetes necesarios para el certificado SSL
# apt install letsencrypt certbot python-certbot-apacheSe crea el certificado con el siguiente comando, hay que introducir un correo válido. Cuando se generen los ficheros de configuración y otras cosas importantes como CSR, hay que elegir que tipo de acceso HTTPS se utilizará, lo más recomendable es la opción 2 “Secure – Make all requests redirect to secure HTTPS access”
# certbot --authenticator standalone --installer apache -d nc.diariodeunalinuxera.com --pre-hook "systemctl stop apache2" --post-hook "systemctl start apache2"Instalación de NextCloud
Ya tenemos el servidor web con un vHost que permite acceso por subdominio. Lo siguiente es instalar NextCloud. Para ello se descarga la última versión en la ruta de la web y se crea su base de datos.
# cd /var/www/html/vhost/nc.diariodeunalinuxera.com/www/
# wget https://download.nextcloud.com/server/releases/latest.zipSe descomprime el fichero latest.zip con
# unzip latest.zipSe mueven los ficheros descomprimidos y se elimina el directorio con
# mv nextcloud/* . && mv nextcloud/.* . && rm -rf netxcloudSe cambian los permisos
# chown -R www-data:www-data .*Y a continuación se crea la base de datos
# mysql -u root -pCREATE DATABASE nextcloud;
CREATE USER ‘ncuser’@’localhost’ IDENTIFIED BY ‘ncpassword’;
GRANT ALL PRIVILEGES ON nextcloud . * TO ‘ncuser’@’localhost’;Se procede con la instalación de NextCloud, para ello ponemos la URL en nuestro navegador y comenzamos configurando una cuenta de usuario administrador y su contraseña segura, también la ruta de almacenamiento de los datos subidos a la nube. Por seguridad es recomendable poner la ruta fuera de la web, podemos hacerlo creando un usuario con un directorio dentro.
# useradd -m -d /bin/nologin ddulcomSe crea el directorio y se cambias los permisos con
# mkdir -p /home/ddulcom/cloud
# chown www-data:ddulcom -R /home/ddulcomEsta configuración produce errores en el archivo .htaccess y se debe añadir la que podemos encontrar en el siguiente enlace
https://gitlab.com/snippets/1723283
Terminada esta parte, toca configurar la base de datos rellenando los datos del usuario y nombre de la base de datos que creamos anteriormente en MariaDB (usuario ncuser y base de datos nextcloud en este ejemplo). Finalmente hacemos clic en Completar la instalación.
Creamos la cuenta administrador y la ruta correspondiente.
Y completamos la instalación.
Si no ha habido ningún problema, veremos una pantalla como esta y estaremos dentro del panel de NextCloud.
Ya tenemos una nube funcional. Finalmente configuramos la memoria caché en Redis, editamos el fichero
# nano /etc/redis/redis.confSe modifican los siguientes parámetros
Cambiamos
port 6379 a port 0Descomentamos
unixsocket /var/run/redis/redis.sockDescomentamos
unixsocketperm 700y se varía a 770.
Añadimos el usuario de Redis al grupo Apache
# usermod -a -G redis www-dataY reiniciamos Redis y Apache
# systemctl restart redis-server
# systemctl restart apache2Para que NextCloud utilice Redis modificamos el fichero de configuración
# nano /var/www/html/vhost/nc.diariodeunalinuxera.com/www/config/config.phpAñadiendo los siguientes datos:
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'redis' =>;
array (
'host' =>; '/var/run/redis/redis.sock',
'port' =>; 0,
'timeout' =>; 0.0,
),Se reinicia el servidor para aplicar la nueva configuración y añadimos la configuración adicional necesaria para Opcache de PHP en php.ini
# nano /etc/php/7.0/apache2/php.iniAñadiendo la siguiente configuración:
Nextcloud Opcache settings opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1Guardamos y reiniciamos Apache
# systemctl restart apache2Y listo! Ya tenemos nuestro NextCloud con Let’s Encrypt y Redis funcionando correctamente.
La autora de este tutorial es Jessica Suárez, de diariodeunalinuxera.com