GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Utilizzo di Pydio in un'installazione multiserver ISPConfig 3

Utilizzo di Pydio in un'installazione multiserver ISPConfig 3

Questo howto ti mostra come usare pydio (precedentemente Ajaxplorer) in un'installazione multi-server di ISPConfig 3 .

Prerequisiti

Devi configurare ISPConfig 3 sui tuoi server. Il modo migliore per farlo è seguire i nostri tutorial sul "server perfetto".

Preparazione

Devi decidere su quale server vuoi far risiedere pydio. Questo sarà il server su cui i tuoi clienti accedono all'interfaccia pydio.
Installeremo il software pydio in un Web appena creato.
In questo howto utilizziamo una configurazione a due server in cui il primo (master) il server è server1.mydomain.com con IP 192.168.10.10 e il secondo server (slave) è server2.mydomain.com con IP 192.168.10.11.
Installeremo pydio in una sottodirectory /webftp del nostro dominio myftpdomain.com che si trova sul server slave.
Sostituisci questi dati con quelli dei tuoi server.

Crea il sito web

Puoi ignorarlo se hai già creato un sito Web o se desideri installare pydio in una sottodirectory di un sito esistente.

Crea il sito Web accedendo a ISPConfig come client o amministratore e vai a nella scheda "Siti".

Clicca sul pulsante "Aggiungi nuovo sito web" e inserisci il tuo dominio nel campo "Dominio". Quindi fai clic su "Salva".

Installa pydio

Accedi al tuo server tramite ssh e cambia il percorso del sito web.

ssh [email protected]
cd /var/www/myftpdomain.com/web/

Ora scarica l'ultima versione di pydio da http://pyd.io/download/ o direttamente da sourceforge. Al momento della stesura di questo articolo, la versione 5.2.1 è la più recente.
Non utilizzare i pacchetti di distribuzione! Usa solo tar.gz o zip!

Scarica ed estrai il pacchetto. Quindi rinomina la directory estratta.
Non dimenticare di modificare il proprietario di tutti i file in modo che corrisponda al proprietario del sito web. Nel nostro caso si tratta dell'utente web2 e del gruppo client1.

wget -O pydio.tar.gz http://downloads.sourceforge.net/project/ajaxplorer/pydio/stable-channel/5.2.1/pydio-core-5.2.1.tar.gz
tar xzf pydio .tar.gz
mv pydio-core-5.2.1 webftp
rm pydio.tar.gz
chown -R web2:client1 webftp

Apri il file webftp/conf/bootstrap_conf.php e decommenta questa riga:

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

Potrebbe essere necessario modificare il valore in modo che corrisponda al sistema locale, ad es. g. cambialo in en_US.UTF-8 o de_DE.UTF-8.

Ora dovresti essere in grado di accedere all'installazione di pydio su http://myftpdomain.com/webftp/.

Se ricevi degli avvisi lì, controlla il testo e correggili dove necessario. Quindi fare clic su "clicca qui per continuare su Pydio".

Nella pagina di benvenuto clicca su "Avvia procedura guidata!".

Compila i campi in questo modo:

Accesso amministratore
Accesso amministratore:
Nome visualizzato amministratore:
Password amministratore:

Opzioni globali
Compila i campi in base alle tue esigenze.

Archiviazione configurazione
Tipo di archiviazione:nessun database (avvio rapido)

Aggiungi alcuni utenti
Non inserire nulla qui.

Quindi fai clic sul pulsante "Installa pydio ora".

Dopo alcuni secondi dovresti essere reindirizzato alla schermata di accesso. Accedi con l'utente amministratore e la password che hai inserito nel passaggio precedente.

Al primo accesso potrai scegliere quale spazio di lavoro utilizzare. Seleziona "I miei file" e seleziona la casella "Utilizza questo spazio di lavoro come predefinito". Quindi fare clic su "Invio".

Utilizzo di Pydio in un'installazione multiserver ISPConfig 3 - Pagina 2

Nella schermata iniziale, punta nell'angolo in alto a destra e seleziona "Impostazioni" dal menu a discesa.

Dobbiamo fare alcune impostazioni ora. All'inizio è necessario aggiungere uno spazio di lavoro. Vai su "Spazi di lavoro e utenti" -> "Spazi di lavoro" e fai clic sul pulsante "Nuovo spazio di lavoro" in alto. Nel popup seleziona "Server FTP" come Driver di accesso e otterrai una finestra come questa:

Compila i campi in questo modo:

Etichetta spazio di lavoro:compila come preferisci, preferisco "WebFTP"

Connexion
Host:localhost
Porta:21
Percorso:/
Sicuro:No
Attivo:Sì

Teak del server FTP
ID utente:1000
Niente altro da modificare qui!

FTP dinamico
Passa dati FTP tramite driver Auth:Sì

Credenziali utente
Utente:lasciare vuoto
Password:lasciare vuoto
Credenziali sessione:Sì

Filesystem Commons
Cartella Cestino:vuota(!)
Lascia il resto dei campi come sono.

Repository Commons
Diritti predefiniti:lettura e scrittura
Alias:ISPConfigFTP
Lascia il resto dei campi come sono.

Dopo aver fatto clic sul pulsante "Avanti" nell'angolo in basso a destra, dovresti ottenere qualcosa del genere:

Ulteriore configurazione

Vai a "Configurazione globale" -> "Plugin di funzionalità" -> "Accesso"

Fare doppio clic sulla voce "Dashboard utente" e impostare l'opzione "Disponibile" su "No" e fare clic su "Salva" nell'angolo in alto a destra.

Ora esci dal pannello di amministrazione (angolo in alto a destra) e verrai reindirizzato alla schermata di accesso.

Modifica codice per accedere a ISPConfig

Dovremo modificare alcuni file di codice di pydio in modo che utilizzi l'API remota di ISPConfig. Per prima cosa abbiamo bisogno di una configurazione dell'uso remoto in ISPConfig.

Accedi a ISPConfig come amministratore e fai clic sulla scheda "Sistema" e su "Utenti remoti". Fai clic sul pulsante "Aggiungi nuovo utente".

Immettere il nome utente e la password per l'utente remoto e selezionare le caselle "Funzioni server" e "Funzioni utente FTP siti". Quindi fai clic su "Salva".

Utilizzo di Pydio in un'installazione multiserver ISPConfig 3 - Pagina 3

Ora (ri)apri la console ssh del server e vai alla cartella webftp che hai creato durante l'installazione di pydio.

Modifica conf/bootstrap_repositories.php

/*
 * Copyright 2007-2013 Charles du Jeu - Abstrium SAS <team (at) pyd.io>
 * This file is part of Pydio.
 *
 * Pydio is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Pydio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Pydio.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The latest code can be found at <http://pyd.io/>.
 *
 * Description : configuration file
 * BASIC REPOSITORY CONFIGURATION.
 * The standard repository will point to the data path (ajaxplorer/data by default), folder "files"
 * Use the GUI to add new repositories.
 *   + Log in as "admin" and open the "Settings" Repository
 */
defined('AJXP_EXEC') or die( 'Access not allowed');

// ADMIN REPOSITORY
$REPOSITORIES["ajxp_conf"] = array(
    "DISPLAY"           =>      "Settings",
    "DISPLAY_ID"                =>      "165",
    "DESCRIPTION_ID"    =>      "506",
    "DRIVER"            =>      "ajxp_conf",
    "DRIVER_OPTIONS"=> array()
);

Apri il file plugins/auth.ftp/class.ftpAuthDriver.php e cerca questo (attorno alla riga 110):

function setFtpDataCallback($actionName, $httpVars, $fileVars){

Aggiungi questa funzione alla classe subito sotto la funzione "logoutCallback". Sostituisci i valori con i tuoi:

       function get_ispc_host($username) {
			// connect to ispc via remoting and read ftp user
			$server = '';
			$login = '<your remote user>';
			$pass = '<your remote user password>';


			$soap_location = 'https://pathtoispconfig:8080/remote/index.php';
			$soap_uri = 'https://pathtoispconfig:8080/remote/';

			$client = new SoapClient(null, array('location' => $soap_location,

			'uri'      => $soap_uri));
			try {
				//* Login to the remote server
				if($session_id = $client->login($login,$pass)) {
				
					$check = $client->sites_ftp_user_server_get($session_id, $username);
					if($check) {
						$server = isset($check['ip_address']) ? $check['ip_address'] : $check['hostname'];
					}
					
					if($client->logout($session_id)) {
					}
				}
			} catch (SoapFault $e) {
			}
			
			return ($server != '' ? $server : 'localhost');
        }

Nello stesso file cerca la funzione "setFTPDataCallback" che dovrebbe essere proprio sotto. Aggiungi il codice seguente all'inizio delle funzioni in modo che assomigli a questo:

    public function setFtpDataCallback($actionName, $httpVars, $fileVars)
    {
               if(isset($httpVars['userid'])) {
                       // get host from ispconfig                      
                       $httpVars['FTP_HOST'] = $this->get_ispc_host($httpVars['userid']);
               }
        $options = array("CHARSET", "FTP_DIRECT", "FTP_HOST", "FTP_PORT", "FTP_SECURE", "PATH");
        $ftpOptions = array();
      [...]
    }

Apri il file plugins/access.ftp/class.ftpAccessDriver.php e aggiungi "return true;" all'inizio della funzione "isWriteable":

        public function isWriteable($path, $type="dir"){
               return true;

               $parts = parse_url($path);
               [...]
        }

Apri data/plugins/boot.conf/bootstrap.json e fallo sembrare

{
  "core.conf":{
    "USER_CREATE_REPOSITORY":false,
    "SAVE_GUEST_PREFERENCES":false,
    "SKIP_USER_HISTORY":false,
    "USERS_LIST_COMPLETE_LIMIT":"20",
    "USERS_LIST_COMPLETE_MIN_CHARS":"3",
    "USERS_LIST_HIDE_LOGIN":false,
    "ALLOW_CROSSUSERS_SHARING":false,
    "UNIQUE_INSTANCE_CONFIG":{
      "instance_name":"conf.serial",
      "group_switch_value":"conf.serial"
    }
  },
  "core.auth":{
    "ENABLE_USERS":true,
    "CASE_SENSITIVE":true,
    "ALLOW_GUEST_BROWSING":false,
    "PASSWORD_MINLENGTH":"6",
    "SESSION_SET_CREDENTIALS":true,
    "SECURE_LOGIN_FORM":false,
    "MASTER_INSTANCE_CONFIG":{
      "instance_name":"auth.ftp",
      "TRANSMIT_CLEAR_PASS":true,
      "REPOSITORY_ID":"<YOUR_VALUE>",
      "LOGIN_REDIRECT":"",
      "FTP_LOGIN_SCREEN":true,
      "AUTOCREATE_AJXPUSER":false,
      "AJXP_ADMIN_LOGIN":"",
      "group_switch_value":"auth.ftp"
    },
    "MULTI_MODE":{
      "instance_name":"MASTER_SLAVE",
      "group_switch_value":"MASTER_SLAVE"
    },
    "MULTI_USER_BASE_DRIVER":"",
    "SLAVE_INSTANCE_CONFIG":[

    ],
    "SLAVE_INSTANCE_CONFIG_group_switch":""
  }
}

Sostituisci con l'hash md5 che trovi nel filedata/plugins/conf.serial/aliases.ser .

Apri file plugins/auth.ftp/manifest.xml. Devi cambiare alcune righe lì dentro.

Intorno alla riga 53:
if(el.name !="userid" &&el.name!="password" &&el.name !="get_action" &&el.name!="login_seed"){
rimuovere el.name !="userid" && parte quindi appare così:
if(el.name!="password" &&el.name !="get_action" &&el.name!="login_seed"){

Intorno alla riga 79:

AJXP_MESSAGE[ftp_auth.1]

aggiungi questo direttamente dietro:

quindi si presenta così:
AJXP_MESSAGE[ftp_auth.1]


(Se vuoi concedere l'accesso alla directory di base anziché alla directory web, ad esempio se vuoi accedere anche alla cartella "private", cambia semplicemente "/web" in "/" nell'ultimo campo di input nascosto.)

Intorno alla riga 82:
Rimuovi queste tre righe dal file:

AJXP_MESSAGE[ftp_auth.2] AJXP_MESSAGE[ftp_auth.8]  


Intorno alla riga 86 (dopo aver eliminato le righe precedenti):
Rimuovi tutte le 13 righe dal file. Questa sezione inizia con:


AJXP_MESSAGE[ftp_auth.3]

e termina con
AJXP_MESSAGE[ftp_auth.7]


Salva le modifiche.

IMPORTANTE! Ora devi svuotare la cache dei dati:

rm data/cache/*.ser

Ora hai finito. Dopo aver ricaricato la schermata di accesso di pydio nel browser, ti verrà richiesta una schermata leggermente diversa da prima:



Ora puoi accedere con ogni utente ftp che crei all'interno di ISPConfig, non importa su quale server della tua configurazione multi-server risiede. Divertiti.


Panels
  1. Installazione automatizzata di Perfect Server ISPConfig 3 su Debian 10 - 11 e Ubuntu 20.04

  2. Installazione automatizzata di Perfect Server ISPConfig 3 su Debian 10 - 11 e Ubuntu 20.04

  3. Installazione automatizzata di Perfect Server ISPConfig 3 su Debian 10 - 11 e Ubuntu 20.04

  4. Utilizzo di Fail2ban per bloccare accessi ISPConfig errati

  5. Utilizzo dei registri del server

Installazione del server Samba su OpenSuse 13.2

Installazione di Samba Server su Ubuntu 15.10

Utilizzo di WebDAV con ISPConfig 3 su Ubuntu 9.10

Come configurare un multisito Gallery2 su un server ISPConfig

Il server perfetto - Ubuntu 11.04 [ISPConfig 3]

Il server perfetto - Ubuntu 11.10 [ISPConfig 3]