Pydioは、Gdriveやその他のオンラインファイル共有サービスと同様に、オンラインコラボレーション用の強力なオープンソースWebファイル同期およびファイル共有ソリューションソフトウェアです。ほとんどがPHPプログラミング言語とAjaxで記述されているため、PydioはLinux仮想プライベートサーバーまたは物理サーバーのApache / Nginx Webサーバー、PHPおよびMySQL / MariaDBデータベース管理システム(LAMPまたはLEMPスタックとも呼ばれます)にインストールできます。クラウドにもデプロイされます。
このチュートリアルでは、LAMPスタックに加えて、Debian9リリースのソースからのPydioCommunityEditionのインストールと構成プロセスについて説明します。ドキュメント、映画、音楽、またはその他の種類のファイルを共有するためのプライベートオンラインクラウドを構築するために、Debianサーバーで実行する必要のあるすべての必要な手順を使用して、インストールプロセス全体を最初から説明します。
構内にPydioファイル共有クラウドソリューションを導入するには、次の要件を満たす必要があります。
- 2Gb以上のRAMと最新バージョンのDebian9がインストールされた専用の物理サーバーまたは仮想マシンまたはVPS。
- サーバーネットワークインターフェイスカードの1つを静的IPアドレスで構成するか、DHCPサーバーをサーバーのNICに同じIPアドレスをリースするように構成する必要があります
- SSHを介してリモートでサーバーコンソールのroot権限、またはsudoユーティリティを介してシステムへのroot権限を持つローカルまたはLDAPユーザー。
- 構内の独自のDNSサーバーを介して構成された公的に登録されたドメイン名またはプライベートローカルドメイン名。ドメイン名は、wwwを指すAレコードやCNAMEレコードなど、必要なすべてのDNSレコードを使用して構成する必要があります。ただし、ドメイン名を所有していない場合でも、Pydioをデプロイし、サーバーのIPアドレスを介してウェブクラウドにアクセスできます。
- Pydio登録またはその他の機能を使用するために、構内に構成された電子メールサーバー。この場合、GmailやYahoo!などのパブリックメールサービスを使用することもできます。
まず、rootアカウントまたはroot権限を持つアカウントでサーバーコンソールにログインし、次のコマンドを発行して、Debianシステムが最新のセキュリティパッチ、ソフトウェア、リポジトリ、およびカーネルで最新であることを確認します。更新。
apt update
apt upgrade
次のステップでは、以下のコマンドを使用して、マシンのホスト名のわかりやすい名前を設定します(それに応じてホスト名変数を置き換えます)。
hostnamectl set-hostname www.mysharedfiles.com
次のコマンドを発行して、マシンのホスト名とシステムhostsファイルに適用されているレコードを確認します。
hostnamectl
cat /etc/hostname
hostname –f
hostname –s
最後に、サーバーを再起動してカーネルの更新を適用すると、ホスト名が適切に変更されます。
systemctl reboot
次のステップでは、root権限でシステムに再度ログインし、zip、unzip(zipアーカイブを解凍するため)、curlとwget(オンラインファイルをダウンロードする)、bash-completionコマンドラインオートコンプリートなどの次のシステムユーティリティをインストールします。
su -
apt install bash-completion zip unzip curl wget imagemagick unoconv
さまざまな画像形式を編集、作成、変換し、Pydio Webインターフェイスを介してドキュメントを変換するには、次のコマンドを実行して、ImageMagickソフトウェアとunoconv-UniversalOfficeConverterユーティリティをインストールします。
apt install imagemagick unoconv
Pydioワークスペースにマウントする必要のあるSamba共有がある場合は、次のコマンドを使用してDebianにsambaクライアントをインストールします。
apt-get install smbclient
ApacheとPHPをインストールする
次のステップでは、Pydioウェブ共有ファイルクラウドに必要なLAMPスタックのサーバー側コンポーネントであるApacheHTTPサーバーとPHPプログラミング言語インタープリターをインストールすることから始めます。また、必要なすべてのPydioPHPモジュールと拡張機能をインストールします。次のコマンドを発行して、今説明したすべてのソフトウェアコンポーネントをインストールします。
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
次に、インストールされているすべてのPHPモジュールがシステムで有効になっているかどうかを確認します。これは、次のコマンドを実行することで実行できます。
php7.0 –m
次のステップでは、Apache HTTPサーバーの書き換えとSSLモジュールを有効にして、Webサーバーのドキュメントルートパスで.htaccessファイルを使用できるようにします。これにより、訪問者はHTTPSプロトコルを介してWebサイトを安全に閲覧できます。 SSLモジュールは、Apacheによって自動的に発行される自己署名証明書を使用して、サーバーとクライアントブラウザー間のトラフィックを保護します。 SSLモジュールが正しく機能するようにするには、ApacheSSL構成ファイルを有効にします。次のコマンドを実行して、必要なすべての構成をアクティブにします。
a2enmod ssl rewrite
a2ensite default-ssl.conf
次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、 DocumentRootの後にURL書き換えルールのコード行を追加します。 以下のサンプルに示すように、ディレクティブ。
nano /etc/apache2/sites-enabled/default-ssl.conf
SSLサイト構成ファイルの抜粋:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
SSL Apache confファイルを保存して閉じ、デフォルトのvhostconfファイルを開いて編集します。ここで、SSL設定ファイルと同じURL書き換えルールを追加します。 DocumentRootの後にコード行を挿入します 以下の例に示すようなステートメント。
nano /etc/apache2/sites-enabled/000-default.conf
000-default.confファイルの抜粋:
DocumentRoot /var/www/html
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
これまでに行ったすべての変更を適用するには、以下のコマンドを発行してApacheデーモンを再起動する必要があります。
systemctl restart apache2
構内のコンピューターで開いているWebブラウザーを介してドメイン名またはサーバーのIPアドレスにアクセスする前に、まず、Webトラフィックがファイアウォールを通過できるようにするために必要なファイアウォールルールを追加します。 DebianサーバーにUFWファイアウォールアプリケーションが付属している場合は、次のコマンドを発行して、HTTP/Sトラフィックがファイアウォールを通過できるようにするための新しいルールを追加する必要があります。
ufw allow 'WWW Full'
または
ufw allow 80/tcp
ufw allow 443/tcp
サーバーへのリモート接続の場合は、SSHトラフィックがUFWファイアウォールを通過できるようにする必要もあります。
ufw allow 22/tcp
Debianサーバーがiptablesの背後にある場合 ファイアウォールに、次のiptables rawルールを追加して、ポート80および443のインバウンドトラフィックがファイアウォールを通過できるようにし、外部の訪問者がアプリケーションを参照できるようにします。
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
SSH経由でDebianサーバーにリモート接続している場合は、最初に以下のルールを追加して、SSHトラフィックがiptablesファイアウォールを通過できるようにする必要があります。そうしないと、ファイアウォールがすべての着信トラフィックをポート22にドロップし始めるため、ロックされます。
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
最後に、LAN内のリモートコンピューターからApache HTTPサーバーにアクセスできるかどうかをテストするには、ブラウザーを開き、HTTPSプロトコルを介してサーバーのドメイン名またはIPアドレスにアクセスします。サーバーのIPアドレスを表示するには、 ifconfigを実行します またはipa ターミナルでコマンドを実行します。マシンが内部インフラストラクチャネットワークの一部であり、NATされたネットワークの背後に隠れている場合は、以下のコマンドを実行してパブリックIPアドレスを取得します。
curl ipinfo.io/ip
インストール時にApacheによって発行された自動的に自己署名された証明書のペアを使用しているため、証明書はブラウザによって信頼できないものとしてマークされ、ブラウザにエラー警告が表示されます。続けてこの警告をバイパスし、信頼できない証明書を受け入れて、ApacheのデフォルトのWebページにリダイレクトし続けます。
https://yourdomain.tld
これまでのところ、DebianサーバーにはApacheWebサーバーとPHPインタープリターのみをインストールしています。 Pydioファイル共有ソリューションをインストールするために必要なLAMPスタックを完了するには、不足している最後のコンポーネントであるRDBMSデータベースバックエンドをインストールする必要があります。
MariaDBをインストール
このチュートリアルでは、バックエンドとしてMariaDBデータベースサーバーを使用してPydioをインストールします。 MariaDBデータベースでは、Pydioアプリケーションはユーザー、Webサイト構成、およびその他のさまざまなデータを保存します。 MariaDBデータベースサーバーとクライアント、およびPHPMySQL拡張機能をDebian9にインストールするには、次のコマンドを発行します。
apt install mariadb-server mariadb-client php7.0-mysql
デフォルトでは、Debian 9でパスワードを指定することでデータベースrootアカウントにアクセスできます。このセキュリティ問題を克服してデータベースサーバーを保護するには、最初にMySQLコンソールにログインし、次のコマンドを実行してMariaDBrootアカウントを保護します。
>mysql -h localhost
MariaDBモニターへようこそ。コマンドは;で終わりますまたは\g。
MariaDB接続IDは2です
サーバーバージョン:10.1.26-MariaDB-0 + deb9u1 Debian 9.1
著作権(c)2000、2017、Oracle、MariaDBCorporationAbなど。
「help;」と入力しますまたは「\h」でヘルプを表示します。 '\ c'と入力して、現在の入力ステートメントをクリアします。
MariaDB [(none)]> use mysql;
テーブル名と列名を完成させるためのテーブル情報の読み取り
この機能をオフにすると、-Aを使用してすばやく起動できます
データベースが変更されました
MariaDB [mysql]> update user set plugin='' where user='root';
クエリOK、影響を受ける1行(0.00秒)
一致した行:1変更:1警告:0
MariaDB [mysql]> flush privileges;
クエリOK、影響を受ける行は0(0.00秒)
MariaDB [mysql]> exit
次のステップで、スクリプト mysql_secure_installation を実行して、MariaDBサーバーの保護を開始します。 。このスクリプトでは、MariaDBデータベースを保護するために設計された一連の質問が行われます。すべての質問に「はい」と答えます。匿名ユーザーを削除し、リモートルートログインを無効にして、テストデータベースを削除します。また、以下の抜粋に示すように、データベースのrootアカウントに強力なパスワードを設定してください。
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!
======================================================================================
スクリプトが完了したら、rootパスワードなしでコンソールからデータベースにログインしてみてください。以下のコマンドの抜粋に示すように、rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。
mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
パスワードが指定されている場合は、コマンドサンプルに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。 exitと入力して、データベースコンソールを終了します。
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
PHP設定を調整する
次に、PHPのデフォルト設定ファイルを開いて編集し、以下のPHP変数を以下のように変更します。 PHPのタイムゾーンを設定します システムの地理的な場所に一致するように設定します。 PHP date.timezone 変数は、次のリンクhttp://php.net/manual/en/timezones.phpでPHPドキュメントによって提供されるタイムゾーンのリストを参照することで見つけることができます。
まず、PHP構成ファイルのバックアップを作成します。
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini
php.ini で次の変数を検索、編集、変更します 構成ファイル:
file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
output_buffering = 0
date.timezone = Europe/London
upload_max_file_sizeを増やす必要があります 大きな添付ファイルをサポートするためのPHP構成ファイルの変数。
また、Webアプリケーションのロード速度を上げるために、PHP7のOPCacheプラグイン構成を追加する必要があります。 php.iniファイルを編集し、ファイルの下部の [opcache]の下に次のコード行を追加します。 以下に詳述するステートメント:
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
以下で説明するすべてのコード行を追加したら、 php.iniを閉じます。 構成ファイルを作成し、次のコマンドを発行して、OPCache変数が正しく追加されているかどうかを確認します。
grep opcache /etc/php/7.0/apache2/php.ini
PHPエンコーディングを介してPydioファイルを暗号化および保護するには、次のコマンドを発行して、DebianサーバーにIoncubeソフトウェアをインストールします。
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/
次に、ioncube構成ファイルを編集して、次の行を追加します。
nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini
00-ioncube.ini ファイルの抜粋:
zend_extension=ioncube_loader_lin_7.0.so
Apacheサーバーを再起動して、Ioncube拡張機能を適用します。
systemctl restart apache2
LAMPスタックを構成する最後のステップとして、次のコマンドを実行して、WebサーバーのWebルートパスにPHP情報ファイルを作成します。
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
次のURLのブラウザからPHP情報スクリプトファイルにアクセスし、Ioncube Zendが正常に読み込まれたかどうかを確認し、日付まで下にスクロールします。 PHPのタイムゾーン構成を確認するための設定。タイムゾーン設定は、以前に構成したPHPの地理的位置を反映している必要があります。
https://domain.tld/info.php
Pydioをダウンロードしてインストールする
Pydioコミュニティソフトウェアをインストールするためのすべてのシステム要件が満たされているので、ブラウザを開いてPydioの公式ダウンロードページ(https://pydio.com/en/community)に移動し、ダウンロードリンクをコピーして、最新のzipアーカイブを取得します。 wgetユーティリティを介したシステム。
wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.2.zip
Pydio zipアーカイブのダウンロードが完了したら、zipアーカイブファイルを現在の作業ディレクトリに抽出し、抽出したファイルをlsコマンドで一覧表示します。
unzip pydio-core-8.0.2.zip
ls
次に、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。
rm /var/www/html/index.html
rm /var/www/html/public/info.php
pydio-core-8.0.2 /の現在の作業ディレクトリにあるPydioインストールファイルをコピーします ディレクトリ。 lsを発行します 隠しファイルのこのディレクトリファイルを一覧表示するコマンド。次のコマンドを発行して、抽出したディレクトリのすべてのコンテンツをWebサーバーのドキュメントルートパスにコピーします。また、隠しファイル .htaccessを必ずコピーしてください。 Webルートパスへ。
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/
次に、次のコマンドを実行して、ドキュメントルートパスへの完全な書き込み権限を持つApacheランタイムユーザーを付与します。 lsを使用する / var / www /html/ディレクトリの下にあるアプリケーションのインストール済みファイルの権限を一覧表示するコマンド。
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/
次に、Pydio bootstrap_conf.phpを開きます 以下のファイルの抜粋に示すように、webrootパスにある構成ファイルを変更し、以下の行を変更します。
nano /var/www/html/conf/bootstrap_conf.php
bootstrap_conf.php ファイルサンプル:
setlocale(LC_ALL, "en_US.UTF-8");
define("AJXP_LOCALE", "en_EN.UTF-8");
次のステップでは、MariaDBデータベースコンソールにログインして、Pydioアプリケーションデータベースを作成します。また、Pydioデータベースを管理するための新しいMySQLユーザーを追加し、このユーザーの強力なパスワードを設定します。以下のコマンドを発行してデータベースとユーザーを作成し、このガイドで使用されているデータベース名、ユーザー、およびパスワードを独自の設定に置き換えてください。
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
データベースを作成したら、ブラウザを開き、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名に移動し、PydioWebインストールプロセスを開始します。最初のインストール画面で、言語を選択し、[ウィザードの開始]ボタンをクリックして、インストールプロセスを開始します。
次のインストール画面で、アプリケーションタイトルとPydioアプリケーションのウェルカムメッセージを追加し、[次へ]ボタンをクリックして次の構成画面に移動します。
次に、Pydioアプリケーションの管理者名とフルネームを追加します。管理者アカウントの強力なパスワードを入力して確認し、[次へ]ボタンをクリックして次の構成画面に移動します。
次の画面で、データベース接続設定を構成します。データベースタイプとしてMySQLを選択し、データベースホストとしてlocalhostを使用し、データベースに接続するために以前に作成したPydioデータベース名、ユーザー、およびパスワードを追加します。 [DB接続のテスト]ボタンをクリックしてPydioデータベースにログインし、インストールプロセスを進めます。
詳細オプション画面で、アプリケーションエンコーディングデータセットとサーバーURLアドレスが正しく検出されなかった場合は変更し、キャッシュ設定を有効にして、メールアドレスとデフォルト言語を追加し、[Pydioのインストール]ボタンをクリックしてインストールを開始します。
インストールプロセスが完了すると、インストールウィザードは自動的にPydioログインページフォームにリダイレクトします。 Pydioダッシュボードにログインするために、インストールプロセス中に構成されたアプリケーション管理者のユーザー名とパスワードを入力します。
HTTPSプロトコルを介してドメイン名またはサーバーのIPアドレスにアクセスして、PydioWeb共有アプリケーションにログインすることもできます。
https://www.yourdomain.tld
Pydio管理ダッシュボードにログインした後、ポップアップするウィザードツアーに従って、Web管理パネルを介してアプリケーションを管理する方法をすばやく学ぶことができます。
一部の訪問者は、HTTPプロトコルを介して安全でない方法でPydioアプリケーションを閲覧する可能性があります。すべての訪問者にHTTPSプロトコルを介してPydioインターフェースを安全に閲覧させるには、サーバーのコンソールに戻って .htaccessを編集します。 次のコマンドを発行して、Webルートディレクトリにあるファイル。
nano /var/www/html/public/.htaccess
.htaccessファイルを開いて編集したら、 RewriteEngine onで始まる行を検索します。 この行の下に以下のリダイレクトルールを追加します。
# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
また、ファイルのアップロードサイズやその他のPHP変数を増やすことができるように、PHPサーバーの設定を変更する場合は、以下の抜粋に示すように、.htaccessファイルの下部に以下の行を追加します。
php_value upload_max_filesize 50M
php_value post_max_size 50M
おめでとう!これで、Pydioファイル同期および共有アプリケーションがDebian9サーバーに正常にインストールされました。アプリケーションに関するその他の特別なタイプのインストール手順と構成については、次のアドレスのPydioドキュメントページにアクセスしてください:https://pydio.com/en/docs/administration-guides