Migrare Owncloud 9.1.4 verso Nextcloud 13 · Migrare server owncloud versione 9.1.4 Centos 6.5 con...

15
Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web Migrare Owncloud 9.1.4 verso Nextcloud 13 Servizi Web 1

Transcript of Migrare Owncloud 9.1.4 verso Nextcloud 13 · Migrare server owncloud versione 9.1.4 Centos 6.5 con...

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Migrare Owncloud 9.1.4 verso Nextcloud 13

Servizi Web 1

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Indice

Migrare Owncloud 9.1.4 verso Nextcloud 13............................................................pag. 3

Primo Step..................................................................................................................pag. 3

Secondo Step..............................................................................................................pag. 3

Terzo Step .................................................................................................................pag. 5

Quarto Step................................................................................................................pag. 6

Quinto Step................................................................................................................pag. 7

Sesto Step...................................................................................................................pag. 8

Nextcloud Https.......................................................................................................pag. 11

Installare Collabora online.......................................................................................pag. 12

Servizi Web 2

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Migrare server owncloud versione 9.1.4 Centos 6.5 con server Nginx e DB Postgresql, verso lanuova macchina, ovvero una Centos 7.4 con apache e mariaDB. La cartella che contiene i dati èposta in un NAS che a sua volta viene montata sul server tramite una condivisione samba CIFS.

Primo step

Il primo passo per installare NextCloud 13 è installare un server web e PHP. Poiché CentOS 7 vienefornito con PHP 5.4 per impostazione predefinita, NextCloud 13 richiede almeno PHP 7.1,installeremo anche PHP 7.1 da un repository di terze parti. La seguente procedura installerà apachecome server web.

# subscription-manager repos --enable rhel-server-rhscl-7-eus-rpms# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm# rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installiamo Apache ed altre utility

# yum install -y httpd wget bzip2

Installiamo PHP

# yum install -y php71w php71w-common php71w-gd php71w-intl php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-process php71w-xml php71w-cli php71w-pdo

Secondo Step

Ora che abbiamo il software, dobbiamo vedere come installare il database che supporteràl'installazione. Di base si hanno tre scelte:

• SQLite: è un database a file singolo. È consigliato solo per piccole installazioni poichérallenterà NextCloud in modo sensibile.

• MariaDB / MySQL: sono i più noti database open source soprattutto tra gli sviluppatoriweb. È la scelta che useremo qui.

• PostgreSQL: un popolare database di classe enterprise. Più complicato di MySQL /MariaDB ma più robusto.

Vediamo come installare il database, iniziamo con l’installazione del db

# yum install mariadb-server

avviamolo e facciamo in modo che si avvii automaticamente al riavvio del server

# systemctl start mariadb# systemctl enable mariadb

Servizi Web 3

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

il passo successivo è configurare il sistema di gestione del database. Durante la configurazione tiverrà chiesto di scegliere una password di root, sceglierne una forte. (Questa procedura l’abbiamovista già molte volte nei vari post dedicati ai server linux)

# mysql_secure_installation

“ NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQLSERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the currentpassword for the root user. If you've just installed MySQL, andyou haven't set the root password yet, the password will be blank,so you should just press enter here.

Enter current password for root (enter for none): <---- Premiamo semplicemente enter visto che nonabbiamo ancora impostato una password

Setting the root password ensures that nobody can log into the MySQLroot user without the proper authorisation.

Set root password? [Y/n] <--- Mettiamo Y per impostare la password di root New password: <---- Inserire la nuova password e premere EnterRe-enter new password: <---- reinserire nuovamente la password e dare EnterPassword updated successfully!Reloading privilege tables..... Success!

By default, a MySQL installation has an anonymous user, allowing anyoneto log into MySQL without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.

Remove anonymous users? [Y/n] <---- Premere Y e poi enter per rimuovere l’utente anonimo... Success!

Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <---- Premere Y e dare Enter per rimuovere l’accesso remoto... Success!

By default, MySQL comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.

Remove test database and access to it? [Y/n] <---- Premere Y per rimuovere il database di test- Dropping test database...

Servizi Web 4

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

... Success!- Removing privileges on test database...... Success!

Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.

Reload privilege tables now? [Y/n] <---- Premere Y per ricaricare i privilegi... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MySQLinstallation should now be secure.

Thanks for using MySQL!”

Ora andiamo a creare il database (ci verrà chiesta la password che abbiamo appena impostato):

$ mysql -u root -p

CREATE DATABASE nextclouddb; (potete dare il nome che volete al db)

Creiamo ora l'utente che verrà utilizzato per connettersi al database:

grant all on nextclouddb.* to 'utentedb'@'localhost' identified by 'scrivi qui la passwordutente'; FLUSH PRIVILEGES;

abbiamo finito l’impostazione del database, possiamo uscire da esso

exit;

Terzo Step

Ora non ci resta che installare Nexcloud, questo passaggio comporta l'acquisizione del software e laconfigurazione di Apache per poi eseguirlo.

Iniziamo con lo scaricare il software ed estraiamo :

# cd /var/www/html# wget https://download.nextcloud.com/server/releases/latest.tar.bz2# tar -jxvf nextcloud-13-latest.tar.bz2# mkdir /var/data (questo aumenta la sicurezza dei dati di nextcloud)# chown -R apache:apache /var/www/html/nextcloud# chown -R apache:apache /var/data# chmod -R 700 /var/data

Servizi Web 5

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

# rm nextcloud-13-latest.tar.bz2

Ora dobbiamo creare un nuovo file in /etc/httpd/conf.d/nextcloud.conf. Usate il vostro editorpreferito e aggiungete le seguenti linee:

Alias /nextcloud "/var/www/html/nextcloud/" <Directory /var/www/html/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </Directory>

Quarto Step

Ora dobbiamo settare Apache e SELinux

In questo passo inizieremo (e abiliteremo) il webserver e setteremo SELinux. Ora, molti tutorial tidiranno di disabilitare SELinux (perché è un componente difficile da gestire). Invece, ti suggeriscodi tenerlo attivo e aggiungere le regole per NextCloud :

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/data(/.*)?'# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'# restorecon -Rv '/var/www/html/nextcloud/'# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?

# restorecon -Rv /var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs

se si usa la connsssione CIFS verso il NAS dove c’è la cartella data sin selinux aggiungere

# setsebool -P httpd_can_network_connect on# setsebool -P httpd_use_cifs on

Comunque se vi sono problemi con SELinux potete sempre disabilitarlo

Visto che abbiamo deciso di utilizzare Mariadb / MySQL / ma questo è valido anche perPostgreSQL, dobbiamo consentire ad apache di accedervi:

Servizi Web 6

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

# setsebool -P httpd_can_network_connect_db 1

Ora che abbiamo configurato SELinux, avviamo e abilitiamo Apache:

Avviamo Apache e facciamo in modo che si riavvi automaticametne nel caso di un riavvio delserver

# systemctl start httpd# systemctl enable httpd

Quinto Step

Configuriamo il firewall interno

Questo passaggio è essenziale quando il firewall è abilitato. Se il tuo firewall è abilitato non potraiaccedere alla tua istanza di NextCloud 13; d'altra parte se non è abilitato non dovresti avereproblemi e puoi semplicemente saltare questo passaggio.

Tenete presente che avere un firewall abilitato è una buona pratica di sicurezza e dovreste avernegià una abilitata.

Affinché il firewall funzioni, deve essere abilitato. Questa guida non includerà questa parte. Quandoattivi un firewall, molte cose possono andare storte, ad es. stai usando SSH, abiliti il firewall e la tuaconnessione viene tagliata e non puoi collegarti diversamente, quindi dovresti rivedere attentamentela documentazione dalla tua distribuzione. (comunque trovate un facile metodo nei miei post su iserver linux installando system-config-firewall-tui).

Per aprire le porte necessarie a NextCloud 13, attenersi alla seguente procedura:

se si decide di utilizzare il firewall integrato firewallID usate questa procedura:

# firewall-cmd --add-service http --permanent# firewall-cmd --add-service https --permanent# firewall-cmd --reload

Se invece si decide di rimuovere firewallID e utilizzare Iptables allora fate in questo modo:

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Sta di fatto che se usate il metodo consigliato in uno dei miei post tutto risulterà più semplice, vistoche si tratta di installare un’interfaccia per la gestione del firewall

Servizi Web 7

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Sesto Step

Ora è giunto il momento di installare la piattaforma. Apriamo il browser (consiglio Firefox) edigitiamo http: //tuo indirizzo/nextcloud/ ti troverai di fronte alla seguente schermata:

Seleziona un nome utente e una password per l’amministratore. Quindi fate clic su "Storage &Database", qui puoi selezionare la cartella dei dati, visto che qui si parla di migrazione, mi auguroche la tua cartella dati non sia all’interno del server che ospita il vecchio Owncloud ma che questarisieda un un sistema NAS separato dal server e poi montato sul server tramite NFS o CIFS. Pereseguire il montaggio della cartella dati che abbiamo sul NAS.

Prima di tutto installare samba cifs sul server che ospita Nextcloud andiamo a creare un file con lecredenziali di accesso alla cartella dati che abbiamo sul NAS (questa cartella condivisa mi auguroche sia protetta da una password anche se è all’interno della vostra rete), il file con le credenziali loposizioneremo in /root e lo chiameremo “credenziali-NAS”

# nano /root/credenziali-NAS

al suo interno scriviamo le credenziali in questo modo

username=nome_utentepassword=vostra_password

Salvare e uscire

ora installiamo nfs-utils e cifs-utils

Servizi Web 8

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

# yum install nfs-utils cfis-utils

accediamo al file fstab mettendoci in fondo al file e inseriamo i parametri per il montaggio dellacartella Data

# nano /etc/fstab

//ip_nas/Data /var/data cifs credentials=/root/credenziali-NAS,user,uid=48,rw,suid,file_mode=0770,dir_mode=0770,noperm 0 0

(scrivo in piccolo cosi ci sta tutto su una riga)salviamo.

Eseguiamo ora un mount -a per montare la cartella nella cartella Data creata sul server, se tutto èandato per il verso giusto, non dovremmo visualizzare errori sullo schermo e visualizzare i nostridati nella cartella posta in /var/Data

ma se non sai cosa stai facendo è meglio se lo lasci con il valore predefinito. Quindi seleziona ildatabase che hai scelto durante il passaggio 2. Compila tutto e se hai seguito correttamente tutti ipassaggi dovresti vedere l'app File:

Bene l’installazione di Nexcloud e riuscita

NotaSe hai cambiato un indirizzo IP del server Nextcloud o il nome del dominio che usi per accedere aNextcloud, potresti ottenere il seguente errore

Access through untrusted domainPlease contact your administrator. If you are an administrator, edit the "trusted_domains" setting inconfig/config.php like the example in config.sample.php.

Servizi Web 9

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Per risolvere il problema, fai clic sul pulsante mostrato nella pagina sopra o modifica il file config/config.php.

# nano /var/www/html/nextcloud/config/config.php

Aggiungi i domini trusted mostrati come sotto.

'trusted_domains' => array ( 0 => '192.168.1.5', 1 => '192.168.1.100', 2 => 'tuo dominio', 3 => 'tuo IP', ),

Bene l’installazione di nextcloud è conclusa, la migrazione dei dati pure se avevamoprecedentemente impostato la cartella Data su una SAN o NAS, ora non ci resta che le utenze.

Per fare questo purtroppo io ho risolto in questo modo (ho provato vari metodi e tools ma nessunoha funzionato); ho ricreato l’albero degli utenti e i relativi gruppi, assicurandomi di scrivereesattamente il nome utente come era riportato in Owncloud, ho eseguito un reset di tutte lepassword su Owncloud inserendone una di default per tutti che poi ho reinserito durante lacreazione dell’utente, questo mi ha dato la possibilità di riavere tutti i dati che gli utentivisualizzavano nei loro profili.

Servizi Web 10

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Nextcloud https

Vediamo ora come attribuire una connessione SSL a Nexcloud, iniziamo con l’installazione delmodulo necessario.

# yum install mod_ssl

Creiamo ora una cartella dove posizionare i nostri certificati

# mkdir /etc/ssl/certificati

impostiamo ora i permessi necessari alla cartella

# chmod 700 /etc/ssl/certificati

Inseriamo all’interno di questa cartella tutti i nostri certificati, i .crt e il .key.

Ora non ci resta che impostare il file ssl.conf per visualizzare i certificati,

# nano /etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>

# General setup for the virtual host, inherited from global configurationDocumentRoot "/var/www/html"ServerName office.miodominio.it:443

SSLProtocol all -SSLv2 -SSLv3SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDHSSLHonorCipherOrder on

SSLCertificateFile /etc/ssl/certificati/miocertificato.crtSSLCertificateKeyFile /etc/ssl/certificati/certificato.key

<IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDoma$</IfModule></VirtualHost>

A questo punto dobbiamo sistemare il firewall interno se lo abbiamo attivato, anche qui se usiamofirewalld allora faremo cosi:

# firewall-cmd --add-service=http# firewall-cmd --add-service=https# firewall-cmd --runtime-to-permanent

se invece utilizziamo Iptables

Servizi Web 11

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT# iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Per fare in modo che la connessione passi automaticamente da http ad https, si deve abilitare ilmodulo LoadModule rewrite_module modules/mod_rewrite.so, per farlo andiamo in

# cd /etc/httpd/conf.modules.d

Digitiamo ora

# nano 00-base.confe togliamo il simbolo # dal modulo LoadModule rewrite_module modules/mod_rewrite.so

riavviamo il server httpd

# systemctl restart httpd

Installare Collabora online in Nextcloud

Mi è stato chiesto di trovare una soluzione efficace per gli utenti per creare e gestire documenti informato office direttamente da Nexcloud, ho trovato l’app Collabora, l’ho installata e tutto funzionache è una meraviglia. Ma vediamo come fare.

Installiamo il necessario

# import the signing keywget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && rpm --import repomd.xml.key# add the repository URL to yumyum-config-manager --add-repo https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7# perform the installationyum install loolwsd CODE-brand

yum install docker

Il CODICE è in ascolto sulla porta 9980 di localhost. È possibile utilizzare ad esempio il reverseproxy di Apache per renderlo accessibile dal mondo esterno. Assicurati di abilitare i seguentimoduli di Apache: proxy, proxy_wstunnel, proxy_http e ssl. Creare un host virtuale per CODE, adesempio collabor.example.com, e utilizzare la seguente configurazione di esempio, iniziamo conl’accedere nuovamente a ssl.conf

# nano /etc/httpd/conf.d/ssl.conf

ed inseriamo queste righe prima di </VirtualHost>

Servizi Web 12

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

# Encoded slashes need to be allowedAllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificateSSLProxyEngine OnSSLProxyVerify NoneSSLProxyCheckPeerCN OffSSLProxyCheckPeerName Off

# keep the hostProxyPreserveHost On

# static html, js, images, etc. served from loolwsd# loleaflet is the client part of LibreOffice OnlineProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet

# WOPI discovery URLProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery

# Main websocketProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

# Admin Console websocketProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operationsProxyPass /lool https://127.0.0.1:9980/loolProxyPassReverse /lool https://127.0.0.1:9980/lool

riavviamo apache e docker

# systemctl restart httpd # systemctl start docker # systemctl enable docker

Avviamo ora l’immagine del docker Collabora

# docker pull collabora/code

Avviamo ora l’immagine di un docker (questa dovra essere avviata nuovamente manualmente nelcaso in cui il server andasse in crash)

# docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=office\\.dominio\\.it' --restart always--cap-add MKNOD collabora/code

Servizi Web 13

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Questo funzionerà nei casi in cui l'host WOPI e il client WOPI si trovano su una rete diversa.office\\.dominio\\.it è l'host WOPI (server nextcloud)

Writer

Calc

Servizi Web 14

Migrare Owncloud VS Nexcloud Centos 7.2 Apache MariaDB Servizi Web

Impress

NotaNel caso in cui si cambi nome o dominio, l’avvio dell’immagine qui sopra deve essere adattata alnuovo nome o dominio ad esempio vi basterà sostituire domain=nome_host\\.dominio\\.estensionecon il nuovo nome o dominio che darete alla macchina.

Servizi Web 15