Вместе с популярностью облачных технологий растёт и необходимость хранить данные удалённо. Сегодня пользователи загружают самые различные файлы – от изображений и музыкальных дорожек до конфиденциальных документов – на серверы, которыми они не могут управлять. Если же вы предпочитаете иметь доступ к управлению сервером, на котором хранятся ваши данные, вы можете установить Dropbox-подобное хранилище при помощи Pydio (ранее AjaXplorer).
Pydio предоставляет множество стандартных функций сервисов синхронизации файлов: веб-интерфейс, родные клиенты для Mac, Windows и Linux, мобильные клиенты для iOS и Android, а также возможность обмениваться файлами с другими пользователями Pydio.
Данное руководство поможет установить Pydio. Как и многие другие открытые проекты корпоративного класса, Pydio имеет Community Edition и Enterprise Edition. В руководстве используется Community Edition: его лицензия является бесплатной для команд, в которых менее 10 пользователей.
Для поддержки почты используется Postfix. По умолчанию PHP не может отправлять сообщения электронной почты. В качестве более лёгкой альтернативы можно установить SSMTP. Но в этом руководстве используется сервер Postfix, поскольку он почти не требует тонкой настройки для взаимодействия с PHP. Обратите внимание: настройка поддержки электронной почты необязательна, но это во многом упростит работу; без электронной почты Pydio не сможет отправлять сообщения для восстановления пароля или приветственные письма.
В качестве веб-сервера используется Apache, в качестве СУБД – SQLite (вместо MySQL). Также в руководстве вы найдёте советы по оптимизации производительности сервера.
Такая установка Pydio отлично подойдёт для небольшой группы пользователей, у которой нет необходимости постоянно выгружать объемные данные.
Требования
- Сервер Ubuntu 14.04.
- Пользователь с доступом к команде sudo.
- FQDN.
- Предустановленный почтовый сервер Postfix (инструкции можно найти здесь). Во время настройки выберите Internet Site, а в поле System mail name укажите доменное имя (например, example.com).
- SSL-сертификат от Let’s Encrypt. Чтобы получить такой сертификат, выполните это руководство после полной установки Pydio (сначала выполните первые три раздела текущего руководства).
1: Установка Pydio
Установите Pydio и зависимости программы.
Обновите индекс пакетов:
sudo apt-get update
Установите PHP:
sudo apt-get install php5 libapache2-mod-php5
Теперь загрузите архив Pydio и распакуйте его. Загрузить пакет можно с SourceForge.
На данный момент последней версией Pydio является 6.2.2. В случае необходимости отредактируйте ссылку.
Чтобы скачать архив в домашний катало, введите:
wget -P ~/ http://vorboss.dl.sourceforge.net/project/ajaxplorer/pydio/stable-channel/6.2.2/pydio-core-6.2.2.tar.gz
Распакуйте архив:
tar -xvzf ~/pydio-core-6.2.2.tar.gz
Переместите его в специально предназначенный для сайтов каталог (в Ubuntu это /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 нужно установить несколько зависимостей, необходимых для корректной работы сервера синхронизации файлов.
Примечание: После установки всех модулей нужно перезапустить Apache.
Установите и включите модули PHP:
sudo apt-get install php5-mcrypt php5-gd php5-sqlite
Один из этих модулей, mcrypt, не включается по умолчанию. Чтобы включить его, используйте phpenmod:
sudo php5enmod mcrypt
После этого включите модуль Apache a2enmod, иначе клиент синхронизации не будет работать.
sudo a2enmod rewrite
Теперь нужно внести несколько поправок в php.ini. В этом файле нужно обновить три строки. Откройте 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. Увеличьте значение этого параметра:
; 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). Теперь откройте /etc/php5/cli/php.ini (файл командной строки).
Внесите в него аналогичные изменения, сохраните и закройте файл.
3: Настройка Apache
Теперь нужно отредактировать настройки Apache.
Создайте и откройте файл pydio.conf в текстовом редакторе:
sudo nano /etc/apache2/sites-available/pydio.conf
Вставьте в файл копию конфигурационного файла 000-default (закомментированные строки можно опустить) и добавьте несколько специальных блоков для Pydio (document root и логи):
<VirtualHost *:80>
ServerAdmin 8host@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>
Рассмотрим параметры подробнее:
- <VirtualHost *:80>: определяет виртуальный хост по умолчанию и порт (в данном случае – 80).
- ServerAdmin: адрес электронной почты, на который веб-сервер Apache сможет отправлять предупреждения.
- ServerName: домен или IP-адрес для сервера Pydio. Если сначала вы указали IP-адрес, а потом решили заменить его доменом, можете просто изменить значение директивы. Также можно оставить IP-адрес в ServerName, а доменное имя указать в ServerAlias.
- DocumentRoot: каталог, в котором хранятся файлы сайта, обслуживаемые Apache.
- ErrorLog и CustomLog: логи Apache.
Вставьте параметры в файл, а затем сохраните и закройте его. Отключите конфигурационный Apache файл по умолчанию:
sudo a2dissite 000-default
Включите новый файл:
sudo a2ensite pydio
В требованиях был указан сертификат Let’s Encrypt, необходимый для поддержки шифрования SSL/TLS. Такой сертификат позволяет защитить конфиденциальные данные от злоумышленников, которые могут перехватить пакеты. Сервис Let’s Encrypt предоставляет автоматическую настройку Apache для поддержки сертификата. Во время настройки Apache пропустите настройку SSL, и скрипт Let’s Encrypt сделает всё сам.
Теперь откройте руководство «Создание сертификата Let’s Encrypt для Apache в Ubuntu 14.04». не забудьте заменить условное доменное имя своим доменом. В качестве виртуального хоста выберите файл pydio.conf. Чтобы защитить все соединения, выберите Secure — Make all requests redirect to secure HTTPS access.
После этого перезапустите 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 Diagnostic Tool. В верхней части страницы будет предупреждение Server charset encoding. Сейчас его можно исправить. Если это единственное предупреждение, и остальные компоненты в порядке, нажмите кнопку CLICK HERE TO CONTINUE TO PYDIO.
Нажмите Start Wizard >. На экране появится страница Main options. Заполните предложенные поля:
- Application Title: название приложения (то же, что и в строке заголовка браузера).
- Welcome Message: сообщение, которое будет отображаться в форме для регистрации.
- Administrator Login: имя пользователя администратора.
- Admin Display Name: имя администратора, видимое другими пользователями.
- Adminstrator Password: пароль администратора.
На следующей странице (Database Connexion) появятся настройки БД. В выпадающем меню Database выберите Sqlite 3. Не изменяйте файл, в котором будет храниться БД. Кликните Test Connection, чтобы убедиться, что подключение работает. В конце страницы появится зелёная отметка, если соединение установлено успешно. Чтобы продолжить, нажмите >>.
На странице Advanced Options большинство опций установлено автоматически. Просто убедитесь, что они установлены правильно. Затем настройте поддержку почты.
- В выпадающем меню Enable emails выберите Yes.
- В Php Mailer выберите Mail.
- Введите почтовый адрес администратора в Administrator Email.
Чтобы проверить работу почты, нажмите Try sending an email with the configured data.
Чтобы завершить установку, нажмите Install Pydio.
6: Использование Pydio
Теперь сервис Pydio установлен. На экране появится форма входа и сообщение, введённое вовремя настройки. Введите учётные данные администратора, чтобы войти.
Слева вы увидите две опции: Common Files и My Files. Это так называемые рабочие пространства – папки, в которых можно хранить файлы. В My Files вы можете хранить персональные файлы, а в Common Files – файлы, предназначенные для совместного использования.
Pydio позволяет создавать другие рабочие пространства.
При помощи веб-интерфейса Pydio можно скачивать, загружать и систематизировать файлы, обмениваться данными и расшаривать их. Также для этого можно использовать родной клиент. Вы можете скачать настольные клиенты для Mac/Win/Linux, для iOS и Android.
Установив клиент для синхронизации, запустите Pydio Sync и следуйте инструкциям мастера настройки синхронизации.
Если вы используете самоподписанный сертификат вместо Let’s Encrypt, программа выдаст ошибку сертификата. Чтобы устранить её, выберите Trust SSL Certificate и нажмите Connect.
В отличие от большинства сервисов синхронизации файлов, Pydio позволяет настраивать синхронизацию каждой папки индивидуально.
Заключение
Pydio позволяет управлять данными при помощи веб-интерфейса, родных настольных клиентов и мобильных платформ. Однако кроме простого хранения и синхронизации файлов Pydio имеет ещё много полезных функций, получить которые можно с помощью плагинов.
Чтобы оптимизировать производительность Pydio:
- Используйте БД MySQL или PostgreSQL вместо Sqlite.
- Настройте Nginx вместо Apache.
- Обновите сервер, чтобы получить больше RAM и CPU.
- Включите синхронизацию WebDAV.