GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Pydio Web File Manager su Debian 9

Pydio è un potente software open source per la sincronizzazione di file Web e la condivisione di file per la collaborazione online, simile a Gdrive o altri servizi di condivisione di file online. Scritto principalmente in linguaggio di programmazione PHP e Ajax, Pydio può essere installato su un server privato virtuale Linux o su un server fisico sotto server Web Apache/Nginx, sistema di gestione di database PHP e MySQL/MariaDB (noto anche come LAMP o stack LEMP), oppure può essere implementato anche nel cloud.

In questo tutorial, tratteremo il processo di installazione e configurazione di Pydio Community Edition dal sorgente sulla versione Debian 9, in cima allo stack LAMP. Tratteremo l'intero processo di installazione da zero con tutti i passaggi necessari che devi eseguire sul tuo server Debian per creare un cloud privato online per condividere documenti, film, musica o qualsiasi altro tipo di file.

Requisiti

Devi soddisfare i seguenti requisiti per distribuire una soluzione cloud di condivisione file Pydio presso la tua sede:

  • Un server fisico dedicato o una macchina virtuale o un VPS con minimo 2 Gb di RAM e l'ultima versione di Debian 9 installata.
  • Una delle schede di interfaccia di rete del server deve essere configurata con un indirizzo IP statico oppure il server DHCP deve essere configurato per affittare lo stesso indirizzo IP per la NIC del server
  • Privilegi di root della console del server in remoto tramite SSH o localmente o un utente locale o LDAP con privilegi di root sul sistema tramite l'utilità sudo.
  • Un nome di dominio registrato pubblicamente o un nome di dominio locale privato configurato tramite il tuo server DNS presso la tua sede. Il nome di dominio deve essere configurato con tutti i record DNS richiesti, come i record A e CNAME per puntare a www. Tuttavia, puoi comunque implementare Pydio e accedere al cloud web tramite l'indirizzo IP del tuo server nel caso in cui non possiedi un nome di dominio.
  • Un server di posta elettronica configurato presso la tua sede per utilizzare la registrazione Pydio o altre funzionalità. In questo caso puoi anche utilizzare un servizio di posta pubblico, come Gmail o Yahoo!

Prerequisiti

Per cominciare, accedi alla console del tuo server con l'account root o un account con poteri di root ed emetti i seguenti comandi per assicurarti che il tuo sistema Debian sia aggiornato con le ultime patch di sicurezza, software, repository e kernel aggiornamenti.

apt update
apt upgrade

Nel passaggio successivo, imposta un nome descrittivo per il nome host della tua macchina con il comando seguente (sostituisci la variabile del nome host di conseguenza).

hostnamectl set-hostname www.mysharedfiles.com

Verifica il nome host della macchina e il record applicato nel file hosts di sistema eseguendo i seguenti comandi.

hostnamectl
cat /etc/hostname
hostname –f
hostname –s

Infine, riavvia il server per applicare gli aggiornamenti del kernel e il nome host cambia correttamente.

systemctl reboot

Nel passaggio successivo, accedi nuovamente al sistema con privilegi di root e installa le seguenti utilità di sistema, come zip, unzip (per decomprimere archivi zip), curl e wget (scarica file online) e completamento automatico della riga di comando bash-completion.

su -
apt install bash-completion zip unzip curl wget  imagemagick unoconv

Per modificare, comporre o convertire diversi formati di immagine e convertire documenti tramite l'interfaccia web di Pydio, installa il software ImageMagick e le utility unoconv - Universal Office Converter eseguendo il comando seguente.

apt install imagemagick unoconv

Se hai condivisioni Samba che devono essere montate negli spazi di lavoro Pydio, installa il client samba in Debian con il seguente comando.

apt-get install smbclient

Installa Apache e PHP

Nella fase successiva, inizieremo installando i componenti lato server dello stack LAMP richiesto dal cloud di file di condivisione web Pydio:il server HTTP Apache e l'interprete del linguaggio di programmazione PHP. Installeremo anche tutti i moduli e le estensioni Pydio PHP richiesti. Emetti il ​​seguente comando per installare tutti i componenti software descritti di cui abbiamo appena discusso.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml  php7.0-cli php7.0-curl php7.0-zip php7.0-xmlrpc php7.0-intl php-imagick php-smbclient

Quindi, controlla se tutti i moduli PHP installati sono abilitati nel tuo sistema, cosa che puoi fare eseguendo il comando seguente.

php7.0 –m

Nel passaggio successivo, abilita la riscrittura del server HTTP Apache e i moduli SSL che consentiranno l'uso di file .htaccess nel percorso radice del documento del server Web in modo da costringere i visitatori a navigare in modo sicuro nel sito Web tramite il protocollo HTTPS. Il modulo SSL proteggerà il traffico tra il server e i browser client con un certificato autofirmato emesso automaticamente da Apache. Abilita il file di configurazione SSL di Apache affinché il modulo SSL funzioni correttamente. Eseguire il comando seguente per attivare tutte le configurazioni richieste.

a2enmod ssl rewrite
a2ensite default-ssl.conf

Quindi, apri il file di configurazione del sito SSL predefinito di Apache con un editor di testo e aggiungi le righe di codice delle regole di riscrittura dell'URL dopo DocumentRoot direttiva, come mostrato nell'esempio seguente.

nano /etc/apache2/sites-enabled/default-ssl.conf

Estratto del file di configurazione del sito SSL:

DocumentRoot  /var/www/html
<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Salva e chiudi il file conf di Apache SSL e apri anche il file conf vhost predefinito per la modifica. Qui, aggiungi le stesse regole di riscrittura dell'URL del file di configurazione SSL. Inserisci le righe di codice dopo DocumentRoot dichiarazione come mostrato nell'esempio seguente.

nano /etc/apache2/sites-enabled/000-default.conf

Estratto del file 000-default.conf:

DocumentRoot  /var/www/html
<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Per applicare tutte le modifiche apportate fino ad ora è necessario riavviare il demone Apache eseguendo il comando seguente.

systemctl restart apache2

Configura il firewall

Prima di visitare il nome di dominio o l'indirizzo IP del server tramite un browser Web aperto in un computer presso la tua sede, aggiungi prima le regole firewall richieste per consentire al traffico Web di passare il firewall. Se il tuo server Debian viene fornito con l'applicazione firewall UFW, dovresti aggiungere alcune nuove regole per consentire al traffico HTTP/S di passare attraverso il firewall emettendo i seguenti comandi.

ufw allow 'WWW Full'

o

ufw allow 80/tcp
ufw allow 443/tcp

Dovresti anche consentire al traffico SSH di passare attraverso il firewall UFW in caso di connessioni remote al server.

ufw allow 22/tcp

Se il tuo server Debian è dietro un iptables firewall, aggiungi le seguenti regole grezze di iptables per consentire al traffico in entrata delle porte 80 e 443 di passare il firewall in modo che i visitatori esterni possano esplorare l'applicazione.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Nel caso in cui tu sia connesso al server Debian in remoto tramite SSH, dovresti prima aggiungere la regola seguente per consentire al traffico SSH di passare attraverso il firewall iptables. In caso contrario, verrai bloccato, perché il firewall inizierà a trasferire tutto il traffico in entrata sulla porta 22.

iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

Infine, per verificare se riesci a raggiungere il server HTTP Apache da un computer remoto nella tua LAN, apri un browser e visita il tuo nome di dominio o indirizzo IP del server tramite protocollo HTTPS. Per visualizzare l'indirizzo IP del server, eseguire ifconfig o ip a comando nel terminale. Se la tua macchina fa parte della tua rete infrastrutturale interna ed è nascosta dietro una rete NAT, esegui il comando seguente per ottenere l'indirizzo IP pubblico.

curl ipinfo.io/ip

Poiché stai utilizzando le coppie di certificati autofirmati automaticamente emessi da Apache al momento dell'installazione, il certificato verrebbe contrassegnato come non attendibile dal browser e nel browser dovrebbe essere visualizzato un avviso di errore. Premi continua per ignorare questo avviso, accetta il certificato non attendibile e continua a essere reindirizzato alla pagina Web predefinita di Apache.

https://tuodominio.tld

Finora, abbiamo installato solo il server Web Apache e l'interprete PHP nel nostro server Debian. Per completare lo stack LAMP, necessario per installare la soluzione di condivisione file Pydio, è necessario installare un componente finale mancante:un database RDBMS backend.

Installa MariaDB

In questo tutorial, installeremo Pydio con il server di database MariaDB come backend. Nel database MariaDB, l'applicazione Pydio memorizzerà utenti, configurazioni di siti Web e altri dati vari. Per installare il server e il client del database MariaDB e l'estensione PHP MySQL in Debian 9, emettere il seguente comando.

apt install mariadb-server mariadb-client php7.0-mysql

Per impostazione predefinita, è possibile accedere all'account root del database fornendo una password in Debian 9. Per superare questo problema di sicurezza e proteggere il server del database, prima accedi alla console MySQL ed esegui i seguenti comandi per proteggere l'account root di MariaDB.

mysql -h localhost

Benvenuto nel monitor MariaDB. I comandi terminano con; o \g.

Il tuo ID di connessione MariaDB è 2

Versione server:10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab e altri.

Digita 'aiuto;' o '\h' per aiuto. Digita '\c' per cancellare l'istruzione di input corrente.

MariaDB [(none)]> use mysql;

Lettura delle informazioni sulla tabella per il completamento dei nomi di tabelle e colonne

Puoi disattivare questa funzione per ottenere un avvio più rapido con -A

Banca dati modificata

MariaDB [mysql]> update user set plugin='' where user='root';

Query OK, 1 riga interessata (0,00 sec)

Righe corrispondenti:1  Modificato:1  Avvisi:0

MariaDB [mysql]> flush privileges;

Query OK, 0 righe interessate (0,00 sec)

MariaDB [mysql]> exit

Nel passaggio successivo, inizia a proteggere il server MariaDB eseguendo lo script mysql_secure_installation . Una serie di domande progettate per proteggere il database di MariaDB verranno poste da questo script. Rispondi con "sì" a tutte le domande:rimuovi gli utenti anonimi, disabilita il root log in remoto ed elimina il database di test. Inoltre, assicurati di impostare una password complessa per l'account root del database, come mostrato nell'estratto seguente.

mysql_secure_installation
==========================================================================================
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you 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):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
 
Remove anonymous users? [Y/n] y
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] y
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
======================================================================================

Al termine dello script, prova ad accedere al database dalla console senza password di root. L'accesso al database dovrebbe essere negato se non viene fornita alcuna password per l'account root, come illustrato nell'estratto del comando seguente:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Se viene fornita la password, il processo di accesso deve essere concesso alla console MySQL, come mostrato nell'esempio di comando. Digita exit per uscire dalla console del database.

mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye

Regola le impostazioni PHP

Quindi, apri il file di configurazione predefinito di PHP per modificare e modificare le seguenti variabili PHP come descritto di seguito. Imposta il fuso orario PHP impostazione in modo che corrisponda alla posizione geografica del sistema. Il date.timezone di PHP variabile può essere trovata consultando l'elenco dei fusi orari fornito dai documenti PHP al seguente link http://php.net/manual/en/timezones.php 

Per prima cosa, fai un backup del file di configurazione PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Cerca, modifica e cambia le seguenti variabili in php.ini file di configurazione:

file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
output_buffering = 0
date.timezone = Europe/London

Dovresti aumentare upload_max_file_size variabile nel file di configurazione PHP per supportare file allegati di grandi dimensioni.

Dovresti anche aggiungere le configurazioni del plugin OPCache per PHP7 per aumentare la velocità di caricamento dell'applicazione web. Modifica il file php.ini e aggiungi le seguenti righe di codice in fondo al file, sotto [opcache] dichiarazione, come di seguito dettagliato:

nano /etc/php/7.0/apache2/php.ini
[opcache]
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=1         

Dopo aver aggiunto tutte le righe di codice descritte di seguito, chiudi php.ini file di configurazione e verificare se le variabili OPCache sono state aggiunte correttamente eseguendo il comando seguente.

grep opcache  /etc/php/7.0/apache2/php.ini

Per crittografare e proteggere i file Pydio tramite la codifica PHP, installa il software Ioncube sul tuo server Debian eseguendo i seguenti comandi:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfz ioncube_loaders_lin_x86-64.tar.gz
cp ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012/

Quindi, modifica il file di configurazione di ioncube e aggiungi la riga seguente.

nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini

00-ioncube.ini estratto del file:

zend_extension=ioncube_loader_lin_7.0.so

Riavvia il server Apache per applicare l'estensione Ioncube.

systemctl restart apache2

Come passaggio finale nella configurazione dello stack LAMP, crea un file di informazioni PHP nel percorso webroot del server web eseguendo il comando seguente.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Visita il file di script delle informazioni PHP da un browser al seguente URL e controlla se Ioncube Zend è stato caricato correttamente e, inoltre, scorri verso il basso fino a data impostazione per controllare la configurazione del fuso orario PHP. Le impostazioni del fuso orario dovrebbero riflettere la tua posizione geografica PHP configurata in precedenza.

https://dominio.tld/info.php

Scarica e installa Pydio

Ora che tutti i requisiti di sistema sono stati soddisfatti per l'installazione del software della community Pydio, apri un browser e vai alla pagina di download ufficiale di Pydio su https://pydio.com/en/community e copia il link per il download per prendere l'ultimo archivio zip in il tuo sistema tramite l'utilità wget.

wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.2.zip

Al termine del download dell'archivio zip Pydio, estrai il file di archivio zip nella directory di lavoro corrente ed elenca i file estratti con il comando ls.

unzip pydio-core-8.0.2.zip
ls

Quindi, rimuovi il file index.html predefinito installato dal server Web Apache nel percorso webroot ed elimina anche il file info.php creato in precedenza.

rm /var/www/html/index.html
rm /var/www/html/public/info.php

Copia i file di installazione di Pydio che si trovano nella directory di lavoro corrente in pydio-core-8.0.2/ directory. Problema ls comando per elencare i file di questa directory per i file nascosti. Copia tutto il contenuto della directory estratta nel percorso radice del documento del tuo server Web eseguendo il comando seguente. Inoltre, assicurati di copiare il file nascosto .htaccess al percorso webroot.

ls -al pydio-core-8.0.2
cp -rf pydio-core-8.0.2/* /var/www/html/
cp pydio-core-8.0.2/.htaccess /var/www/html/

Quindi, concedi all'utente di runtime Apache le autorizzazioni di scrittura complete per il percorso radice del documento eseguendo il comando seguente. Usa le ls comando per elencare le autorizzazioni per i file installati dell'applicazione nella directory /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

Quindi, apri Pydio bootstrap_conf.php file di configurazione che si trova nel percorso webroot e modificare le righe seguenti, come mostrato nell'estratto del file sottostante:

nano /var/www/html/conf/bootstrap_conf.php

 bootstrap_conf.php esempio di file:

setlocale(LC_ALL, "en_US.UTF-8");
define("AJXP_LOCALE", "en_EN.UTF-8");

Nel passaggio successivo, accedi alla console del database MariaDB e crea il database dell'applicazione Pydio. Inoltre, aggiungi un nuovo utente MySQL per la gestione del database Pydio e imposta una password complessa per questo utente. Emetti i comandi seguenti per creare database e utente e assicurati di sostituire il nome del database, l'utente e la password utilizzati in questa guida con le tue impostazioni.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 305
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE pydio_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on pydio_db.* to 'pydio_user'@'localhost' identified by 'mypass123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec) 
MariaDB [(none)]> exit

Dopo aver creato il database, apri un browser e vai all'indirizzo IP del tuo server o al nome di dominio tramite il protocollo HTTPS per iniziare con il processo di installazione web di Pydio. Nella prima schermata di installazione, seleziona la tua lingua e premi sul pulsante Avvia procedura guidata per avviare il processo di installazione.

Nella schermata di installazione successiva, aggiungi un titolo dell'applicazione e il messaggio di benvenuto per l'applicazione Pydio e premi il pulsante Avanti per passare alla schermata di configurazione successiva.

Quindi, aggiungi il nome e il nome completo dell'amministratore dell'applicazione Pydio. Fornisci e conferma una password complessa per l'account amministratore e premi il pulsante Avanti per passare alla schermata di configurazione successiva.

Nella schermata successiva, configura le impostazioni di connessione al database. Seleziona MySQL come tipo di database, usa localhost come host del database e aggiungi il nome del database, l'utente e la password di Pydio creati in precedenza per connetterti al database. Premi il pulsante Test connessione DB per accedere al database Pydio e andare avanti con il processo di installazione.

Nella schermata delle opzioni avanzate, modifica il set di dati di codifica dell'applicazione e l'indirizzo URL del server se non sono stati rilevati correttamente, abilita l'impostazione della cache, aggiungi il tuo indirizzo e-mail e la lingua predefinita e premi il pulsante Installa Pydio per avviare l'installazione.

Al termine del processo di installazione, la procedura guidata di installazione ti reindirizzerà automaticamente al modulo della pagina di accesso di Pydio. Fornisci il nome utente e la password dell'amministratore dell'applicazione configurati durante il processo di installazione per accedere alla dashboard di Pydio.

Puoi anche accedere all'applicazione di condivisione web Pydio visitando il tuo nome di dominio o indirizzo IP del server tramite il protocollo HTTPS.

https://www.tuodominio.tld

Dopo aver effettuato l'accesso alla dashboard di amministrazione di Pydio, puoi seguire il tour della procedura guidata che apparirà per imparare rapidamente come gestire l'applicazione tramite il pannello di amministrazione web.

Alcuni visitatori potrebbero esplorare l'applicazione Pydio in modo non protetto tramite il protocollo HTTP. Per costringere tutti i visitatori a navigare in sicurezza nell'interfaccia di Pydio tramite il protocollo HTTPS, torna alla console del tuo server e modifica il .htaccess file che si trova nella directory principale del Web eseguendo il comando seguente.

nano /var/www/html/public/.htaccess

Una volta aperto il file .htaccess per la modifica, cerca la riga che inizia con RewriteEngine on e aggiungi le regole di reindirizzamento sotto questa riga.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Inoltre, se desideri modificare le impostazioni del server PHP, in modo da poter aumentare le dimensioni di caricamento dei file o altre variabili PHP, aggiungi le righe seguenti in fondo al file .htaccess, come mostrato nell'estratto sottostante.

php_value upload_max_filesize 50M
php_value post_max_size 50M

Congratulazioni! Hai installato con successo la sincronizzazione dei file Pydio e l'applicazione di condivisione nel server Debian 9. Per altri tipi speciali di procedure di installazione e configurazioni relative all'applicazione, visitare la pagina della documentazione di Pydio al seguente indirizzo:https://pydio.com/en/docs/administration-guides 


Debian
  1. Come installare Redis Server su Debian 11

  2. Come installare PHP 7.4 / 7.3 / 7.2 / 7.1 su Debian 10 / Debian 9

  3. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  4. Come installare ProFTPD su Debian 8

  5. Come installare MySQL Server su Debian 9

Come installare MySQL 8 su Debian 10

Come installare Todoman sul server Debian 11

Come installare e configurare Apache Web Server su Debian 11

Come installare FastPanel su Debian 11

Come installare I2P su Debian Server:

Come installare il server Web Apache su Debian 11