ISPConfig3マルチサーバーインストールでのPydioの使用
このハウツーでは、 pydioの使用方法を説明します (以前のAjaxplorer) ISPConfig 3のマルチサーバーインストール 。
サーバーにISPConfig3を設定する必要があります。これを行う最良の方法は、「完璧なサーバー」のチュートリアルに従うことです。
pydioを配置するサーバーを決定する必要があります。これは、顧客がpydioインターフェースにアクセスするサーバーになります。
新しく作成されたWebにpydioソフトウェアをインストールします。
この方法では、最初の(マスター)が2サーバーセットアップを使用します。サーバーは、ip 192.168.10.10のserver1.mydomain.comで、2番目の(スレーブ)サーバーは、ip192.168.10.11のserver2.mydomain.comです。
pydioをドメインmyftpdomain.comのサブディレクトリ/webftpにインストールします。これはスレーブサーバー上にあります。
これらのデータをサーバーのデータに置き換えてください。
すでにWebサイトを作成している場合、または既存のサイトのサブディレクトリにpydioをインストールする場合は、これをスキップできます。
クライアントまたは管理者としてISPConfigにログインし、WebサイトにアクセスしてWebサイトを作成します。 [サイト]タブ。
[新しいウェブサイトを追加]ボタンをクリックして、[ドメイン]フィールドにドメインを入力します。次に、[保存]をクリックします。
pydioをインストールする
ssh経由でサーバーにログインし、Webサイトのパスに変更します。
ssh [email protected]
cd /var/www/myftpdomain.com/web/
次に、最新バージョンのpydioをhttp://pyd.io/download/からダウンロードするか、sourceforgeから直接ダウンロードします。これを書いている時点では、バージョン5.2.1が最新です。
配布パッケージは使用しないでください。 tar.gzまたはzipのみを使用してください!
パッケージをダウンロードして解凍します。次に、抽出したディレクトリの名前を変更します。
Webサイトの所有者と一致するように、すべてのファイルの所有者を変更することを忘れないでください。私たちの場合、これらはユーザーweb2とグループ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
ファイルwebftp/conf / bootstrap_conf.phpを開き、次の行のコメントを解除します。
define( "AJXP_LOCALE"、 "en_EN.UTF-8");
ローカルシステムに一致するように値を変更する必要がある場合があります。 g。 en_US.UTF-8またはde_DE.UTF-8に変更します。
これで、http://myftpdomain.com/webftp/でpydioインストールにアクセスできるようになります。
そこで警告が表示された場合は、テキストを確認し、必要に応じて修正してください。次に、[ここをクリックしてPydioに進む]をクリックします。
ウェルカムページで[ウィザードの開始]をクリックします。
次のようにフィールドに入力します:
管理者アクセス
管理者ログイン:<自分で1つ選択>
管理者表示名:<自分で1つ選択>
管理者パスワード:<自分で1つ選択>
グローバルオプション
必要に応じてフィールドに入力します。
構成ストレージ
ストレージタイプ:データベースなし(クイックスタート)
一部のユーザーを追加
ここには何も入力しないでください。
次に、[今すぐpydioをインストール]ボタンをクリックします。
数秒後、ログイン画面にリダイレクトされます。前の手順で入力した管理者ユーザーとパスワードを使用してログインします。
最初のログイン時に、使用するワークスペースを選択できます。 [マイファイル]を選択し、[このワークスペースをデフォルトとして使用する]チェックボックスをオンにします。次に、[Enter]をクリックします。
ISPConfig3マルチサーバーインストールでのPydioの使用-2ページ
ホーム画面で右上隅をポイントし、ドロップダウンメニューから[設定]を選択します。
ここでいくつかの設定を行う必要があります。まず、ワークスペースを追加する必要があります。 [ワークスペースとユーザー]->[ワークスペース]に移動し、上部にある[新しいワークスペース]ボタンをクリックします。ポップアップでアクセスドライバとして「FTPサーバー」を選択すると、次のようなウィンドウが表示されます。
次のようにフィールドに入力します:
ワークスペースラベル:好きなように記入してください。私は「WebFTP」を好みます
Connexion
ホスト:localhost
ポート:21
パス:/
セキュア:いいえ
アクティブ:はい
FTPサーバーティーク
ユーザーID:1000
ここで変更する必要はありません!
動的FTP
Authドライバーを介してFTPデータを渡す:はい
ユーザー資格情報
ユーザー:空のままにします
パスワード:空のままにします
セッション資格情報:はい
ファイルシステムコモンズ
ごみ箱フォルダ:空(!)
残りのフィールドはそのままにしておきます。
リポジトリコモンズ
デフォルトの権限:読み取りと書き込み
エイリアス:ISPConfigFTP
残りのフィールドはそのままにします。
右下隅にある[次へ]ボタンをクリックすると、次のように表示されます。
[グローバル設定]->[機能プラグイン]->[アクセス]
に移動します
[ユーザーダッシュボード]エントリをダブルクリックし、[利用可能]オプションを[いいえ]に設定して、右上隅にある[保存]をクリックします。
管理パネル(右上隅)からログアウトすると、ログイン画面にリダイレクトされます。
ISPConfigにアクセスするようにコードを変更する
ISPConfigのリモーティングAPIを使用するように、pydioのいくつかのコードファイルを変更する必要があります。まず、ISPConfigでリモート使用を設定する必要があります。
adminとしてISPConfigにログインし、[システム]タブと[リモートユーザー]をクリックします。 [新しいユーザーを追加]ボタンをクリックします。
リモートユーザーのユーザー名とパスワードを入力し、[サーバー機能]と[サイトFTP-ユーザー機能]のチェックボックスをオンにします。次に、[保存]をクリックします。
ISPConfig3マルチサーバーインストールでのPydioの使用-3ページ
次に、サーバーのsshコンソールを(再)開き、pydioのインストール中に作成したwebftpフォルダーに移動します。
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()
);
plugins / auth.ftp / class.ftpAuthDriver.phpファイルを開き、これを検索します(110行目あたり):
function setFtpDataCallback($actionName, $httpVars, $fileVars){ この関数を「logoutCallback」関数のすぐ下のクラスに追加します。値を自分のものに置き換えます:
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');
}
同じファイルで、すぐ下にあるはずの関数「setFTPDataCallback」を検索します。次のコードを関数の先頭に追加して、次のようにします。
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();
[...]
}
プラグイン/access.ftp/class.ftpAccessDriver.phpファイルを開き、「returntrue;」を追加します。関数「isWriteable」の先頭まで:
public function isWriteable($path, $type="dir"){
return true;
$parts = parse_url($path);
[...]
}
data / plugins / boot.conf / bootstrap.jsonを開き、次のようにします
{
"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":""
}
}
ファイルplugins/auth.ftp/manifest.xmlを開きます。そこでいくつかの行を変更する必要があります。
53行目あたり:
if(el.name!="userid" &&el.name!="password" &&el.name!="get_action" &&el.name!="login_seed"){
el.name!="userid" &&を削除します パーツは次のようになります:
if(el.name!="password" &&el.name!="get_action" &&el.name!="login_seed"){
79行目あたり:
これをすぐ後ろに追加します:
したがって、次のようになります。
(Webディレクトリではなくベースディレクトリへのアクセスを許可する場合、たとえば「private」フォルダにもアクセスする場合は、「/web」を次のように変更します。最後の非表示の入力フィールドに「/」を入力します。)
82行目あたり:
ファイルから次の3行を削除します:
86行目あたり(前の行を削除した後):
ファイルから13行すべてを削除します。このセクションは次のように始まります:
そして で終わります
変更を保存します。
重要!次に、データキャッシュをクリアする必要があります:
rm data / cache/*。ser
これで終了です。ブラウザでpydioログイン画面をリロードすると、以前とは少し異なる画面が表示されます。
これで、ISPConfig内で作成したすべてのftpユーザーでログインできます。マルチサーバーセットアップのどのサーバーにあるか。楽しむ。