He seguido algunos de los pasos del manual de Kike, pero la mayor parte pertenecen al manual sobre este tema de la página web ElAngelCaido (Cerrada en este momento) y también a algunas revisiones mias. El repositorio que te dije no tiene todos los paquetes así que he tenido que modificarlo. Espero que te ayude, pues lo he comprobado paso por paso y funciona.
He usado una RPi3 y la imagen 2017-06-21-raspbian-jessie-lite.img con configuración de locales en es_ES.UTF8-UTF8 e IP estática 192.168.1.20.
Lamento no ser más extensa en las explicaciones, pero estoy agobiada por el trabajo y no tengo mucho tiempo.
ACTUALIZAMOS EL SISTEMA
$ sudo apt-get update && sudo apt-get upgrade
INSTALAMOS REPOSITORIOS Y PAQUETES
$ sudo su
$ echo "deb
http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" >> /etc/apt/sources.list
$ echo "Package: *" >> /etc/apt/preferences
$ echo "Pin: release n=jessie" >> /etc/apt/preferences
$ echo "Pin-Priority: 600" >> /etc/apt/preferences
$ exit
$ 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 php-pear php7.0-imap php-memcache php7.0-pspell php7.0-recode php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mysql php7.0-opcache php7.0-xml php7.0-zip php-imagick php-redis libapache2-mod-php7.0 mariadb-server apache2
- Tardará bastante y en algunos paquetes te aparecerá "deprecated", no te preocupes porque se instalaran las nuevas versiones.
- Cuando te aparezca (:) dos puntos en la parte inferior izquierda deberás pulsar ENTER hasta que aparezca (q to quit) entonces pulsas "q"
- Después te aparecerán varias pantallas azules
"Restart services during package upgrades without asking?" ----> NO
"Services to restart for GNU library upgrade: ssh cron" -----------> OK
$ sudo apt-get autoremove
COMPROBAMOS LAS VERSIONES INSTALADAS
$ php --version
$ mysql --version
AUMENTAMOS LOS LIMITES DE TRASFERENCIA EN PHP
$ sudo nano /etc/php/7.0/fpm/php.ini
Buscamos "upload_max_filesize" mediante CRTL+W
upload_max_filesize = 2M
y lo modificamos
upload_max_filesize = 2000M
Guardamos CRTL+O y cerramos CRTL+X
Buscamos "post_max_size"
post_max_size = 8M
y lo modificamos
post_max_size = 2000M
Guardamos y cerramos
CONFIGURACION DE MariaDB
Securizamos la instalación:
$ sudo mysql_secure_installation
El password de root estará vacio y hay que pulsar ENTER
Preguntará
"Set root password? [Y/n]" --- Y
e introducimos el password que queramos para root en MariaDB
Tras introducir la contraseña de root respondemos a las preguntas como sigue:
Change the root password? [Y/n] n <---(
ATENCIÓN: Puede que no salga debido a que hemos cambiado el password en el paso anterior)
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
CREAMOS LA BASE DE DATOS Y EL USUARIO
$ sudo mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'caylus'@'localhost' IDENTIFIED BY 'caylus123';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'caylus'@'localhost';
FLUSH PRIVILEGES;
exit;
HABILITAMOS LOS MODULOS SSL Y REWRITE EN APACHE
$ sudo a2enmod ssl
$ sudo a2enmod rewrite
$ sudo reboot
GENERAMOS LOS CERTIFICADOS AUTOFIRMADOS
$ sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/nextcloud.pem -keyout /etc/ssl/private/nextcloud.key
------
Hay que responder a las preguntas para generar los certificados
Country Name (2 letter code) [AU]: SP
State or Province Name (full name) [Some-State]: Mi_Casa
Locality Name (eg, city) []: Mi_Casa
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Caylus
Organizational Unit Name (eg, section) []:Caylus
Coomon Name (e.g. server FQDN or YOUR name) []: Caylus NUBE
Email Addres []:
caylus@caylus.es
Al ser un certificado autofirmado aparecerá, cuando conectemos por https, el mensaje "No se confía en el certificado porque está autofirmado." simplemente hay que añadir la página a las excepciones de seguridad.
CONFIGURAMOS LOS CERTIFICADOS
Copiar el archivo de configuracion default-ssl en la carpeta de sitios activos
$ sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
Editamos
$ sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Hay que sustituir los certificados de ejemplo por los nuestros
Buscamos "ssl-vert-snakeoil.pem"
y lo sustituimos por "nextcloud.pem"
Buscamos "ssl-vert-snakeoil.key"
y lo sustituimos por "nextcloud.key"
Y añadir, justo debajo, lo siguiente:
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
Guardamos y, antes de reiniciar, activamos el módulo headers
$ sudo a2enmod headers
Reiniciamos
$ sudo reboot
NEXTCLOUD
INSTALACION
Descargamos
$ sudo wget
https://download.nextcloud.com/server/r ... 12.0.0.zip
Descomprimimos
$ sudo unzip nextcloud-12.0.0.zip
Instalamos
$ sudo cp -R /var/www/html /var/www/htmlviejo
$ sudo rm -R /var/www/html
$ sudo mv nextcloud /var/www/html
$ sudo rm nextcloud-12.0.0.zip
CONFIGURACIÓN
Para configurar más facilmente damos permisos totales temporalmente
$ sudo chmod 777 -R /var/www/html
Al final de este manual generaremos un script "nextcloud.sh" para securizar el servidor
Ahora entraremos al servidor desde nuestro navegador Web poniendo la dirección IP de nuestra PI
http://IP_DE_NUESTRA_PI en mi caso
http://192.168.1.20
Antes de continuar debemos añadir las direcciones IP y DOMINIOS a los que se permite el acceso
$ sudo nano /var/www/html/config/config.php
Buscamos
array (
0 => '192.168.1.20',
),
y añadimos las direcciones IP y DOMINIOS que necesitemos
array (
0 => '192.168.1.20',
1 => 'caylus.no-ip.com',
),
SECURIZACION DE LA INSTALACION
$ sudo usermod -a -G www-data www-data
Creamos un script para que nos sea mas fácil la securización
$ sudo nano nextcloud.sh
y añadimos lo que está entre las lineas "-------------------------------"
-------------------------------
#!/bin/bash
ocpath='/var/www/html'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "Creando directorios por si faltasen\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "Dando permisos a Archivos y Directorios\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}
printf "Asignando propietarios de Directorios\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
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
-------------------------------
Ejecutamos el script
$ sudo bash nextcloud.sh
Borramos el script
$ sudo rm nextcloud.sh
TERMINADO
:mareado
Reitero que lamento no ser muy extensa en las explicaciones.
Abrazos
