GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Použití Pydio v multiserverové instalaci ISPConfig 3

Použití Pydio v multiserverové instalaci ISPConfig 3

Tento návod vám ukáže, jak můžete používat pydio (dříve Ajaxplorer) ve víceserverové instalaci ISPConfig 3 .

Předpoklady

Na svých serverech musíte nastavit ISPConfig 3. Nejlepší způsob, jak toho dosáhnout, je sledovat naše výukové programy pro „dokonalý server“.

Příprava

Musíte se rozhodnout, na kterém serveru chcete, aby pydio sídlilo. Toto bude server, na kterém budou vaši zákazníci přistupovat k rozhraní pydio.
Pydio software nainstalujeme do nově vytvořeného webu.
V tomto návodu používáme nastavení dvou serverů, kde první (master) server je server1.mydomain.com s IP 192.168.10.10 a druhý (slave) server je server2.mydomain.com s IP 192.168.10.11.
Pydio nainstalujeme do podadresáře /webftp naší domény myftpdomain.com který leží na podřízeném serveru.
Nahraďte prosím tato data daty z vašich serverů.

Vytvořte web

Toto můžete přeskočit, pokud jste již vytvořili web nebo pokud chcete nainstalovat pydio do podadresáře existujícího webu.

Vytvořte web tak, že se přihlásíte do ISPConfig jako klient nebo správce a přejděte na na kartě Weby.

Klikněte na tlačítko „Přidat nový web“ a do pole „Doména“ zadejte svou doménu. Poté klikněte na „Uložit“.

Instalovat pydio

Přihlaste se na svůj server přes ssh a změňte cestu k webu.

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

Nyní si stáhněte nejnovější verzi pydio z http://pyd.io/download/ nebo přímo ze sourceforge. V době psaní tohoto článku je verze 5.2.1 nejaktuálnější.
Nepoužívejte distribuční balíčky! Používejte pouze tar.gz nebo zip!

Stáhněte a rozbalte balíček. Poté přejmenujte extrahovaný adresář.
Nezapomeňte změnit vlastníka všech souborů tak, aby odpovídal vlastníkovi webu. V našem případě se jedná o uživatele web2 a skupinu klient1.

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

Otevřete soubor webftp/conf/bootstrap_conf.php a odkomentujte tento řádek:

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

Možná budete muset změnit hodnotu, aby odpovídala vašemu místnímu systému, např. G. změňte jej na en_US.UTF-8 nebo de_DE.UTF-8.

Nyní byste měli mít přístup k instalaci pydio na http://myftpdomain.com/webftp/.

Pokud se tam zobrazí nějaká varování, zkontrolujte text a v případě potřeby je opravte. Poté klikněte na „kliknutím sem pokračujte na Pydio“.

Na úvodní stránce klikněte na "Spustit průvodce!".

Vyplňte pole takto:

Přístup správce
Přihlašovací jméno správce:
Zobrazované jméno správce:
Heslo správce:

Globální možnosti
Vyplňte pole podle svých potřeb.

Ukládání konfigurace
Typ úložiště:Žádná databáze (Rychlý start)

Přidat uživatele
Sem nic nezadávejte.

Poté klikněte na tlačítko „Instalovat pydio nyní“.

Po několika sekundách byste měli být přesměrováni na přihlašovací obrazovku. Přihlaste se pomocí administrátorského uživatele a hesla, které jste zadali v předchozím kroku.

Při prvním přihlášení dostanete na výběr, jaký pracovní prostor chcete použít. Vyberte „Moje soubory“ a zaškrtněte políčko „Použít tento pracovní prostor jako výchozí“. Poté klikněte na „Enter“.

Použití Pydio v multiserverové instalaci ISPConfig 3 – strana 2

Na domovské obrazovce přejděte do pravého horního rohu a z rozbalovací nabídky vyberte „Nastavení“.

Nyní musíme provést některá nastavení. Nejprve je třeba přidat pracovní prostor. Přejděte na „Pracovní prostory a uživatelé“ -> „Pracovní prostory“ a klikněte na tlačítko „Nový pracovní prostor“ nahoře. Ve vyskakovacím okně vyberte "FTP Server" jako Access Driver a zobrazí se okno jako toto:

Vyplňte pole takto:

Štítek pracovního prostoru:Vyplňte, jak chcete, preferuji „WebFTP“

Connexion
Hostitel:localhost
Port:21
Cesta:/
Zabezpečené:Ne
Aktivní:Ano

FTP Server Teaks
ID uživatele:1000
Není co měnit!

Dynamické FTP
Předávat data FTP prostřednictvím ovladače ověření:Ano

Uživatelské údaje
Uživatel:ponechat prázdné
Heslo:ponechat prázdné
Přihlašovací údaje relace:Ano

Filesystem Commons
Složka koše:prázdná(!)
Zbývající pole ponechte tak, jak jsou.

Repository Commons
Výchozí práva:Čtení a zápis
Alias:ISPConfigFTP
Zbývající pole ponechte tak, jak jsou.

Jakmile kliknete na tlačítko "Další" v pravém dolním rohu, měli byste získat něco takového:

Další konfigurace

Přejděte na "Globální konfigurace" -> "Feature Plugins" -> "Přístup"

Dvakrát klikněte na položku „User Dashboard“ a nastavte možnost „Available“ na „No“ a klikněte na „Save“ v pravém horním rohu.

Nyní se odhlaste z administrátorského panelu (pravý horní roh) a budete přesměrováni na přihlašovací obrazovku.

Upravit kód pro přístup k ISPConfig

Budeme muset změnit některé soubory kódu pydio tak, aby používal vzdálené rozhraní API ISPConfig. Nejprve potřebujeme nastavit vzdálené použití v ISPConfig.

Přihlaste se do ISPConfig jako admin a klikněte na záložku „Systém“ a na „Vzdálení uživatelé“. Klikněte na tlačítko "Přidat nového uživatele".

Zadejte uživatelské jméno a heslo pro vzdáleného uživatele a zaškrtněte políčka „Funkce serveru“ a „Funkce uživatele FTP serverů“. Poté klikněte na „Uložit“.

Použití Pydio v multiserverové instalaci ISPConfig 3 – strana 3

Nyní (znovu) otevřete konzolu ssh serveru a přejděte do složky webftp, kterou jste vytvořili během instalace pydio.

Upravte soubor 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()
);

Otevřete soubor plugins/auth.ftp/class.ftpAuthDriver.php a vyhledejte toto (kolem řádku 110):

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

Přidejte tuto funkci do třídy přímo pod funkcí "logoutCallback". Nahraďte hodnoty svými:

       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');
        }

Ve stejném souboru vyhledejte funkci „setFTPDataCallback“, která by měla být hned níže. Přidejte následující kód na začátek funkcí, aby to vypadalo takto:

    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();
      [...]
    }

Otevřete soubor plugins/access.ftp/class.ftpAccessDriver.php a přidejte "return true;" na začátek funkce "isWriteable":

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

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

Otevřete data/plugins/boot.conf/bootstrap.json a vytvořte jej takto

{
  "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":""
  }
}

Nahraďte hashem md5, který najdete v souborudata/plugins/conf.serial/aliases.ser .

Otevřete soubor plugins/auth.ftp/manifest.xml. Musíte tam změnit některé řádky.

Kolem řádku 53:
if(el.name !="userrid" &&el.name!="heslo" &&el.name !="get_action" &&el.name!="login_seed"){
odeberte el.name !="userrid" && část, takže to vypadá takto:
if(el.name!="heslo" &&el.name !="get_action" &&el.name!="login_seed"){

Kolem řádku 79:

AJXP_MESSAGE[ftp_auth.1]

přidejte toto přímo za:

takže to vypadá takto:
AJXP_MESSAGE[ftp_auth.1]


(Pokud chcete udělit přístup k základnímu adresáři namísto webového adresáře, např. pokud chcete přistupovat také k "soukromé" složce, stačí změnit "/web" na "/" v posledním skrytém vstupním poli.)

Kolem řádku 82:
Odstraňte ze souboru tyto tři řádky:

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


Kolem řádku 86 (po smazání předchozích řádků):
Odstraňte všech 13 řádků ze souboru. Tato sekce začíná:


AJXP_MESSAGE[ftp_auth.3]

a končí
AJXP_MESSAGE[ftp_auth.7]


Uložte změny.

DŮLEŽITÉ! Nyní musíte vymazat mezipaměť dat:

rm data/cache/*.ser

Nyní jste hotovi. Jakmile znovu načtete přihlašovací obrazovku pydio v prohlížeči, budete vyzváni s mírně odlišnou obrazovkou než dříve:



Nyní se můžete přihlásit s každým uživatelem ftp, kterého vytvoříte v ISPConfig, bez ohledu na to na jakém serveru vaší multiserverové konfigurace se nachází. Bavte se.


Panels
  1. Perfect Server Automated ISPConfig 3 instalace na Debian 10 - 11 a Ubuntu 20.04

  2. Minimální instalace serveru?

  3. Použití Fail2ban k blokování nesprávných přihlášení ISPConfig

  1. Perfect Server Automated ISPConfig 3 instalace na Debian 10 - 11 a Ubuntu 20.04

  2. Perfect Server Automated ISPConfig 3 instalace na Debian 10 - 11 a Ubuntu 20.04

  3. Instalace VNC Serveru na OpenSuse 13.2

  1. Instalace serveru Ubuntu 20.04

  2. Instalace Wordpressu na server se spuštěným ISPconfig 2.x

  3. Použití protokolů serveru