Ubuntu14.04でPydioを使用してファイル共有サーバーをホストする方法
序章
クラウドの採用が増えるにつれて、ますます多くのデータがリモートに保存されています。 音楽から写真、個人的なドキュメントまで、多くの人が管理していないサーバーにファイルをアップロードしています。 管理しているサーバーにファイルを保持したい場合は、 Pydio (以前のAjaXplorer)を使用して独自のDropboxのようなファイル共有サーバーをホストできます。
Pydioは、他のファイル同期サービスと同じ機能の多くを提供します。Webインターフェイス、Mac、Windows、Linuxのネイティブクライアント、iOSとAndroidのモバイルクライアント、他のPydioユーザーや一般の人々とファイルを共有する機能です。
目標
この記事では、強力なハードウェアがなくてもうまく動作する簡単なPydioインストールを紹介します。 多くのエンタープライズグレードのオープンソースプロジェクトと同様に、Pydioにはコミュニティエディションとエンタープライズエディションがあります。 コミュニティエディションをインストールします。
ソフトウェアスタックに関しては、メールサポートにPostfixを使用します。 デフォルトでは、PHPはメールを送信できません。 より軽いソリューションが必要な場合は、インストールできます ssmtp
、ただし、このセットアップではPostfixを使用します。これは、PHPがPostfixをサポートするために必要な調整が最小限であるためです。 電子メールサポートを有効にする必要はありませんが、これにより作業がはるかに簡単になることに注意してください。 これがないと、Pydioはパスワードリセットメールやウェルカムメールを送信できません。
また、Webサーバー(簡単にするため)およびSQLiteデータベース(MySQLの代わりに可動部分を少なくするため)としてApacheを使用します。 この設定は、Pydioを使用しているグループが大きくない場合、または同時にサーバーに大量のデータをプッシュしない場合に最適です。 ただし、もう少し強力なものが必要な場合は、結論としてパフォーマンスを向上させる方法に関するガイドラインがいくつかあります。
前提条件
このチュートリアルに従うには、次のものが必要です。
-
sudo非rootユーザーを含む1つのUbuntu14.04ドロップレット。
-
Apacheがインストールされています。これは、このLAMPチュートリアルのステップ2に従って実行できます。
-
このホスト名チュートリアルに従って設定できるFQDN(完全修飾ドメイン名)。
-
Postfixがインストールされています。これは、このPostfixインストールチュートリアルの「Postfixの設定」の手順に従って設定できます。 インストール中にプロンプトが表示されたら、インターネットサイト構成を選択し、ドメイン名を入力します(例:
example.com
)システムメール名の場合。
また、Let’sEncryptを使用してドメインのSSL証明書を設定します。 このLet’sEncrypton Apacheチュートリアルに従いますが、セットアップを簡素化するために、ステップ3でPydioがインストールされるまでセットアップしません。
SSL / TLS証明書がどのように機能するかについて詳しく知りたい場合は、このOpenSSLEssentialsの記事をお読みください。
ステップ1—Pydioをインストールする
このステップでは、Pydioの依存関係とPydio自体をインストールします。
まず、パッケージインデックスを更新します。
- sudo apt-get update
次に、PHPをインストールします。
- sudo apt-get install php5 libapache2-mod-php5
次に、Pydio tarファイルをダウンロードして、Webサーバーに解凍する必要があります。 PydioのダウンロードはSourceForgeでホストされています。 クリックして地理的に最も近いミラーを見つけるか、以下のリンクを使用してUKミラーを使用できます。
公開時点で、Pydioはバージョン6.2.2です。 Pydioが更新されているかどうかを確認し、更新されている場合はSourceForgeから最新バージョンを入手することをお勧めします。
Pydiotarファイルをホームディレクトリにダウンロードします。
- wget -P ~/ http://vorboss.dl.sourceforge.net/project/ajaxplorer/pydio/stable-channel/6.2.2/pydio-core-6.2.2.tar.gz
tarballを解凍します。
- tar -xvzf ~/pydio-core-6.2.2.tar.gz
次に、Ubuntuサーバー上のWebサイトのデフォルトの場所に移動します。 /var/www
.
- sudo mv ~/pydio-core-6.2.2 /var/www/pydio
ディレクトリを配置したら、Apacheがデータを保存し、構成ファイルを更新できるように、そのアクセス許可を変更する必要があります。
- sudo chown -R www-data:www-data /var/www/pydio
ステップ2—PHPモジュールのセットアップ
Pydioを配置したら、Pydioを正しく機能させるために、いくつかの依存関係をインストールして設定する必要があります。 このステップでは多くの変更を行い、すべてのステップの後にApacheを再起動するように求められます。 必要に応じてこれを行うことができますが、ここでは、すべてのセットアップの最後まで待機し、Apacheを1回再起動します。
まず、必要な追加のPHPモジュールをインストールして有効にします。
- sudo apt-get install php5-mcrypt php5-gd php5-sqlite
これらのPHPモジュールの1つ、 mcrypt
、デフォルトでは有効になっていません。 を使用して有効にできます phpenmod
.
- sudo php5enmod mcrypt
一部のPHPモジュールをインストールして有効にすることに加えて、 a2enmod
Apacheモジュールまたは同期クライアントは機能しません。
- sudo a2enmod rewrite
PHPが完全にインストールされたので、 php.ini
ファイル。 更新する必要がある3行があります。 次のような好みのエディタを使用する nano
、編集 php.ini
ファイル。
- sudo nano /etc/php5/apache2/php.ini
次の行を検索します output_buffering = 4096
と変更 4096
に Off
.
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = Off
次に、 upload_max_filesize = 2M
と変更 2M
のような任意の多数に 1G
. (MはMBの略で、GはGBの略です。)
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 1G
最後に、 post_max_size = 8M
と同じ番号に変更します upload_max_filesize
以上。 複数の大規模なアップロードを同時に実行したり、複数のユーザーが同時にシステムを使用したりする場合は、より多くの数を使用できます。
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 1G
保存して閉じることができます /etc/php5/apache2/php.ini
. これはApacheの php.ini
ファイル; 次に、コマンドラインアクセスを開きます php.ini
でファイル /etc/php5/cli/php.ini
.
- sudo nano /etc/php5/cli/php.ini
このファイルに上記と同じ3つの変更を加えてから、保存して閉じます。
ステップ3—Apacheの構成
このステップでは、Apache構成をカスタマイズします。
まず、という新しいファイルを作成して開きます pydio.conf
お気に入りのテキストエディタで。
- sudo nano /etc/apache2/sites-available/pydio.conf
次のApache構成は、 000-default
コメントが削除され、ドキュメントルートファイルやログファイルなど、この特定のPydioインストール用にいくつかの追加ブロックが追加された構成ファイル。
<VirtualHost *:80>
ServerAdmin sammy@your_server_ip
ServerName your_server_ip
DocumentRoot /var/www/pydio
ErrorLog ${APACHE_LOG_DIR}/pydio-error.log
CustomLog ${APACHE_LOG_DIR}/pydio-access.log combined
<Directory /var/www/pydio/>
AllowOverride All
</Directory>
</VirtualHost>
これをコピーして貼り付ける前に pydio.conf
、その中にあるものを調べてみましょう:
-
<VirtualHost *:80>
仮想ホストを定義します。これにより、単一のサーバーで複数のサイトをホストできます。 この行は、この仮想ホストをこのサーバーのデフォルトサイトとして具体的に定義し、ポート80を介して接続します。 -
ServerAdmin
エラー処理がそのように設定されている場合に、Apacheがエラーを送信するための電子メールアドレスを定義します。 -
ServerName
PydioサーバーまたはサーバーのIPのDNS名です。 IPから始めて後で変更したい場合は、IPを残すか、IPを離れて追加することができます。ServerAlias
新しいDNS名の行。 両方とも機能します。 -
DocumentRoot
Apacheがサーバーを構築する必要があるDropletにWebサイトが保存されている場所です。 -
ErrorLog
とCustomLog
Apacheログを保存する場所を定義します。 非常にカスタムなログ設定が必要な場合、これらのログオプションはかなり複雑になる可能性がありますが、これらのデフォルトは私たちの目的には機能します。
この構成をファイルに貼り付けてから、保存して閉じます。 Apache構成ファイルを配置したら、デフォルトのApache構成を無効にする必要があります。
- sudo a2dissite 000-default
次に、2つの構成ファイルを有効にします。
- sudo a2ensite pydio
前提条件では、SSL/TLS暗号化を有効にするためにLet’sEncryptを設定することを説明しました。 これにより、ローカルネットワークまたはインターネットを介してパケットを盗聴できる人々からログイン情報とデータを安全に保つことができます。 WebサーバーとしてApacheを使用しているため、Let’sEncryptはApacheを自動的に構成するためのサポートを提供しています。 簡単にするために、SSLなしでApacheを設定したので、自動Let’s Encryptスクリプトを実行すると、すべてが設定されます。
次に、Apacheチュートリアルで暗号化しましょう。 Let’s Encryptのセットアップ中に選択したFQDNを使用すると、インストーラースクリプトがApache構成を確認し、SSLバージョンを作成します。
必ず選択してください pydio.conf
選択する仮想ホストを尋ねられた場合。 接続を常に安全にしたいので、必ず Secureを選択してください— Let’s Encryptスクリプトが要求したときに、すべてのリクエストを安全なHTTPSアクセスにリダイレクトします。
最後に、変更を有効にするためにApacheを再起動できます。
- sudo service apache2 restart
ステップ4—PHPメーラーサポートのカスタマイズ
Postfixは前提条件からインストールする必要があります。 次に、ローカルアプリ以外が使用できないように、すばやく変更します。
この変更を行うには、Postfix設定ファイルを編集する必要があります。 /etc/postfix/main.cf
.
- sudo nano /etc/postfix/main.cf
を検索します inet_interfaces
行とそれを更新します all
に localhost
.
. . .
recipient_delimiter = +
inet_interfaces = localhost
inet_protocols = all
. . .
次に、Postfixサービスを再起動して変更を有効にします。
- sudo service postfix restart
ステップ5—Pydioのセットアップを終了する
Pydioがインストールされています。 このステップでは、セットアップを完了します。
訪問 https://example.com
お気に入りのブラウザで。 表示される最初のページには、 Pydio DiagnosticToolというラベルが付いています。 そのページのリストの一番上の項目は、サーバー文字セットエンコーディングに関する警告です。 すぐに修正します。 それが唯一の警告であり、残りの項目が OK である限り、ボタンをクリックしてPYDIOに進みます。
プロンプトが表示されたら、ウィザードの開始>ボタンをクリックします。 メインオプションの最初のページで、次のフィールドに入力します。
- アプリケーションタイトル、これはブラウザのタイトルバーに表示されます
- ログイン画面に表示されるウェルカムメッセージ
- 管理者ログイン、管理者ユーザー名
- 管理者表示名、それはどのように聞こえるか
- 管理者パスワード
すべて記入したら、右下の赤い>>ボタンを押します。
Database Connexion の2ページ目で、DatabaseプルダウンメニューからSqlite3を選択します。 SQLiteデータベースが保存される場所にファイル行を変更しないでください。 接続のテストボタンをクリックして、すべてが機能していることを確認します。 テストが成功すると、画面の下部に緑色のボックスが表示されます。 次に、>>ボタンをクリックして続行します。
詳細オプションのステージ3では、ほとんどのものが自動的に検出されるため、それらが正しいことを確認する必要があります。 私たちがしなければならないことの1つは、電子メールサポートを有効にすることです。
- メールを有効にするの場合、プルダウンメニューからはいを選択します
- PHP Mailer の場合は、Mailを選択します
- 管理者のメールアドレスのメールアドレスを入力してください
設定されたデータボタンを使用してメールを送信してみて、すべてが機能していることを確認できます。
最後に、 InstallPydioボタンをクリックしてインストールを完了します。
ステップ6—Pydioを使用する
Pydioがインストールされたので、カスタムウェルカムメッセージが表示されたログイン画面が表示されます。 これで、前の手順で定義したadminユーザーでログインできます。
ログインすると、左側に CommonFilesとMyFilesの2つのオプションが表示されます。 これらの2つのオプションは、ワークスペースと呼ばれ、基本的にファイル共有またはファイルを保存できるフォルダーです。 My Files はあなただけのものであり、 Common Files は、このPydioインストールのすべてのユーザーの共有フォルダーです。
他のワークスペースを作成して、好きな人と共有することができます。 Pydioがインストールされたので、クリックしてどのように機能するかを確認し、他のユーザーを招待してファイルを一緒に保存します。
Webインターフェイスは便利で、データをアップロード、ダウンロード、配置、および共有できますが、おそらくネイティブクライアントを介してPydioを使用してファイルを直接アップロードします。 デスクトップクライアントはこちら(Mac / Win / Linux)、 iOSクライアントはこちら、Androidクライアントはこちらからダウンロードできます。
同期クライアントをインストールしたら、Pydio Syncを起動し、ウィザードに従って最初のワークスペースをローカルで同期します。
(Let’s Encryptの代わりに)自己署名証明書を使用することを選択した場合、証明書に関するエラーが発生します。 その場合は、警告の後に表示される下部の [SSL証明書を信頼する]チェックボックスをオンにして、接続ボタンをもう一度クリックします。
アカウントのすべてのコンテンツを同期する他のファイル共有ツールとは異なり、Pydioでは各ワークスペースを個別に同期することを選択できます。 クライアントを初めて実行するときに、ローカルで同期するワークスペースを選択できます。 最初の同期が設定されたら、職場の同期を追加できます。
結論
Pydioを使用すると、データを制御でき、すべての主要なデスクトップおよびモバイルプラットフォームのネイティブクライアントを使用して、必要なときにいつでもデータにアクセスできます。 しかし、Pydioはファイルをホストするだけではありません。 機能を拡張するためのプラグインのコレクションがあります。
このセットアップでのPydioのパフォーマンスがユースケースに対して少し遅すぎると感じた場合は、それを改善するためのいくつかのヒントを次に示します。
- PydioをSqliteの代わりにMySQLまたはPostgreSQLバックエンドと結合します。
- Apacheの代わりにNginxをWebサーバーとして使用します。
- サーバーをアップグレードして、RAMとCPUを増やします
- サーバーでWebDAVアクセスを有効にして、WebDAV対応のサードパーティアプリの同期を行うこともできます。