migrare owncloud 9.1.4 verso nextcloud 13 · migrare server owncloud versione 9.1.4 centos 6.5 con...
TRANSCRIPT
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