Поиск по сайту:

Как установить веб-файловый менеджер Pydio на Debian 9


На этой странице

  1. Требования
  2. Предварительные требования
  3. Установите Apache и PHP
  4. Настройка брандмауэра
  5. Установить MariaDB
  6. Настройка параметров PHP
  7. Загрузить и установить Pydio

Pydio — это мощное программное обеспечение с открытым исходным кодом для синхронизации веб-файлов и совместного использования файлов для совместной работы в Интернете, аналогичное Gdrive или другим онлайн-сервисам для обмена файлами. В основном написанный на языке программирования PHP и Ajax, Pydio может быть установлен на виртуальный частный сервер Linux или физический сервер под веб-серверами Apache/Nginx, системой управления базами данных PHP и MySQL/MariaDB (также известной как стек LAMP или LEMP), или он может быть развернуты в облаке, а также.

В этом руководстве мы рассмотрим процесс установки и настройки Pydio Community Edition из исходного кода в выпуске Debian 9 поверх стека LAMP. Опишите весь процесс установки с нуля со всеми необходимыми шагами, которые необходимо выполнить на вашем сервере Debian, чтобы создать частное онлайн-облако для обмена документами, фильмами, музыкой или файлами любого другого типа.

Требования

Чтобы развернуть облачное решение для общего доступа к файлам Pydio в вашей организации, вам необходимо выполнить следующие требования:

  • Выделенный физический сервер, виртуальная машина или VPS с минимум 2 ГБ ОЗУ и установленной последней версией Debian 9.
  • Одна из сетевых интерфейсных карт сервера должна быть настроена на статический IP-адрес, или DHCP-сервер должен быть настроен на аренду того же IP-адреса для сетевой карты сервера.
  • Привилегии суперпользователя консоли сервера удаленно через SSH или локально, либо локальный пользователь или пользователь LDAP с привилегиями root в системе с помощью утилиты sudo.
  • Зарегистрированное публичное доменное имя или частное локальное доменное имя, настроенное через ваш собственный DNS-сервер в вашем помещении. Доменное имя должно быть настроено со всеми необходимыми записями DNS, такими как записи A и CNAME, чтобы они указывали на www. Однако вы все равно можете развернуть Pydio и получить доступ к веб-облаку через IP-адрес вашего сервера, если у вас нет доменного имени.
  • Сервер электронной почты, настроенный в вашем помещении для использования регистрации Pydio или других функций. В этом случае вы также можете использовать общедоступную почтовую службу, такую как Gmail или Yahoo!

Предварительно требования

Для начала войдите в консоль своего сервера с учетной записью root или учетной записью с полномочиями root и введите следующие команды, чтобы убедиться, что ваша система Debian обновлена с последними исправлениями безопасности, программным обеспечением, репозиториями и ядром. обновления.

apt update
apt upgrade

На следующем шаге настройте описательное имя для имени хоста вашего компьютера с помощью приведенной ниже команды (соответственно замените переменную имени хоста).

hostnamectl set-hostname www.mysharedfiles.com

Проверьте имя хоста компьютера и запись, применяемую в файле системных хостов, введя следующие команды.

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, установите программное обеспечение ImageMagick и утилиты unoconv — Universal Office Converter, выполнив следующую команду.

apt install imagemagick unoconv

Если у вас есть общие ресурсы Samba, которые необходимо смонтировать в рабочих пространствах Pydio, установите клиент samba в Debian с помощью следующей команды.

apt-get install smbclient

Установите Апач и PHP

На следующем шаге мы начнем с установки серверных компонентов стека LAMP, необходимых для файлового облака веб-ресурсов Pydio: HTTP-сервера Apache и интерпретатора языка программирования PHP. Мы также установим все необходимые модули и расширения Pydio PHP. Выполните следующую команду, чтобы установить все описанные программные компоненты, которые мы только что обсуждали.

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

На следующем шаге включите переписывание HTTP-сервера Apache и модули SSL, которые позволят использовать файлы .htaccess в корневом пути документа веб-сервера, чтобы мы могли заставить посетителей безопасно просматривать веб-сайт через протокол HTTPS. Модуль SSL защитит трафик между сервером и вашими клиентскими браузерами с помощью самозаверяющего сертификата, автоматически выдаваемого Apache. Включите файл конфигурации Apache SSL, чтобы модуль SSL работал правильно. Выполните следующую команду, чтобы активировать все необходимые конфигурации.

a2enmod ssl rewrite
a2ensite default-ssl.conf

Затем откройте файл конфигурации SSL-сайта Apache по умолчанию в текстовом редакторе и добавьте строки кода правил перезаписи URL-адресов после директивы DocumentRoot, как показано в примере ниже.

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, а также откройте файл конфигурации vhost по умолчанию для редактирования. Здесь добавьте те же правила перезаписи URL, что и для файла конфигурации SSL. Вставьте строки кода после оператора 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

Настройте брандмауэр

Перед посещением вашего доменного имени или IP-адреса сервера через веб-браузер, открытый на компьютере в вашем помещении, сначала добавьте необходимые правила брандмауэра, чтобы разрешить веб-трафику проходить через брандмауэр. Если ваш сервер 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, чтобы разрешить входящему трафику портов 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

Если вы подключены к серверу Debian удаленно через SSH, вы должны сначала добавить приведенное ниже правило, чтобы разрешить трафику SSH проходить через брандмауэр iptables. В противном случае вы будете заперты, потому что брандмауэр начнет сбрасывать весь входящий трафик на порт 22.

iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

Наконец, чтобы проверить, можете ли вы подключиться к HTTP-серверу Apache с удаленного компьютера в вашей локальной сети, откройте браузер и посетите свое доменное имя или IP-адрес сервера по протоколу HTTPS. Чтобы отобразить IP-адрес сервера, выполните команду ifconfig или ip в терминале. Если ваш компьютер является частью вашей внутренней инфраструктурной сети и скрыт за сетью с NAT, выполните приведенную ниже команду, чтобы получить общедоступный IP-адрес.

curl ipinfo.io/ip

Поскольку вы используете пары автоматически самозаверяющих сертификатов, выдаваемые Apache при установке, браузер будет помечен как ненадежный, и в браузере должно отображаться предупреждение об ошибке. Нажмите «Продолжить», чтобы обойти это предупреждение, принять ненадежный сертификат и продолжить перенаправление на веб-страницу Apache по умолчанию.

https://вашдомен.tld

Пока мы установили только веб-сервер Apache и интерпретатор PHP на наш сервер Debian. Чтобы завершить стек LAMP, необходимый для установки решения для обмена файлами Pydio, нам нужно установить последний отсутствующий компонент: серверную часть базы данных RDBMS.

Установить MariaDB

В этом руководстве мы установим Pydio с сервером базы данных MariaDB в качестве бэкэнда. В базе данных MariaDB приложение Pydio будет хранить пользователей, конфигурации веб-сайтов и другие различные данные. Чтобы установить сервер и клиент базы данных MariaDB, а также расширение PHP MySQL в Debian 9, введите следующую команду.

apt install mariadb-server mariadb-client php7.0-mysql

По умолчанию к корневой учетной записи базы данных можно получить доступ, указав пароль в Debian 9. Чтобы преодолеть эту проблему безопасности и защитить сервер базы данных, сначала войдите в консоль MySQL и выполните следующие команды, чтобы защитить корневую учетную запись MariaDB.

mysql -h localhost

Добро пожаловать в монитор MariaDB. Команды заканчиваются на ; или \г.

Идентификатор вашего подключения к MariaDB: 2

Версия сервера: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Авторское право (c) 2000, 2017, Oracle, MariaDB Corporation Ab и другие.

Введите помощь; или \h для помощи. Введите \c, чтобы очистить текущий оператор ввода.

MariaDB [(none)]> use mysql;

Чтение информации о таблице для завершения имен таблиц и столбцов

Вы можете отключить эту функцию, чтобы ускорить запуск с помощью -A

База данных изменена

MariaDB [mysql]> update user set plugin='' where user='root';

Запрос выполнен успешно, затронута 1 строка (0,00 сек.)

Совпадающих строк: 1. Изменено: 1. Предупреждений: 0

MariaDB [mysql]> flush privileges;

Запрос выполнен успешно, затронуто 0 строк (0,00 с)

MariaDB [mysql]> exit

На следующем шаге начните защищать сервер MariaDB, выполнив скрипт mysql_secure_installation. Этот скрипт задаст ряд вопросов, предназначенных для защиты базы данных MariaDB. Ответьте «да» на все вопросы: удалите анонимных пользователей, отключите удаленный вход в систему root и удалите тестовую базу данных. Кроме того, убедитесь, что вы установили надежный пароль для учетной записи 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 можно найти, обратившись к списку часовых поясов, предоставленному документацией PHP по следующей ссылке: http://php.net/manual/en/timezones.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, чтобы поддерживать вложения больших файлов.

Вы также должны добавить конфигурации плагина OPCache для PHP7, чтобы увеличить скорость загрузки веб-приложения. Отредактируйте файл 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

Чтобы зашифровать и защитить файлы Pydio с помощью PHP-кодирования, установите программное обеспечение Ioncube на свой сервер Debian, выполнив следующие команды:

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 создайте информационный файл PHP в корневом каталоге веб-сервера, выполнив следующую команду.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Посетите файл информационного сценария PHP из браузера по следующему URL-адресу и проверьте, успешно ли загружен Ioncube Zend, а также прокрутите вниз до настройки даты, чтобы проверить конфигурацию часового пояса PHP. Настройки часового пояса должны отражать ваше географическое положение PHP, настроенное ранее.

https://domain.tld/info.php

Скачайте и установите Пидио

Теперь, когда все системные требования для установки программного обеспечения сообщества Pydio выполнены, откройте браузер и перейдите на официальную страницу загрузки Pydio по адресу https://pydio.com/en/community и скопируйте ссылку для загрузки, чтобы получить последний zip-архив в вашу систему с помощью утилиты wget.

wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.2.zip

После завершения загрузки zip-архива Pydio извлеките файл zip-архива в текущий рабочий каталог и выведите список извлеченных файлов с помощью команды ls.

unzip pydio-core-8.0.2.zip
ls

Затем удалите файл index.html по умолчанию, установленный веб-сервером Apache, по пути webroot, а также удалите ранее созданный файл info.php.

rm /var/www/html/index.html
rm /var/www/html/public/info.php

Скопируйте установочные файлы Pydio, расположенные в вашем текущем рабочем каталоге, в каталог pydio-core-8.0.2/. Выполните команду ls, чтобы просмотреть список файлов этого каталога для скрытых файлов. Скопируйте все содержимое извлеченного каталога в корневой путь документа вашего веб-сервера, выполнив следующую команду. Также убедитесь, что вы скопировали скрытый файл .htaccess в корневую папку.

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, расположенный по пути веб-корня, и измените следующие строки, как показано в приведенном ниже фрагменте файла:

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. Кроме того, добавьте нового пользователя MySQL для управления базой данных Pydio и установите надежный пароль для этого пользователя. Выполните приведенные ниже команды, чтобы создать базу данных и пользователя, и убедитесь, что вы заменили имя базы данных, пользователя и пароль, используемые в этом руководстве, своими собственными настройками.

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

После создания базы данных откройте браузер и перейдите к IP-адресу вашего сервера или доменному имени по протоколу HTTPS, чтобы начать процесс веб-установки Pydio. На первом экране установки выберите язык и нажмите кнопку «Запустить мастер», чтобы начать процесс установки.

На следующем экране установки добавьте заголовок приложения и приветственное сообщение для приложения Pydio и нажмите кнопку «Далее», чтобы перейти к следующему экрану конфигурации.

Затем добавьте имя и полное имя администратора приложения Pydio. Введите и подтвердите надежный пароль для учетной записи администратора и нажмите кнопку «Далее», чтобы перейти к следующему экрану конфигурации.

На следующем экране настройте параметры подключения к базе данных. Выберите MySQL в качестве типа базы данных, используйте localhost в качестве хоста базы данных и добавьте имя базы данных Pydio, пользователя и пароль, созданные ранее, для подключения к базе данных. Нажмите кнопку Test DB Connection, чтобы войти в базу данных Pydio и продолжить процесс установки.

На экране дополнительных параметров измените набор данных кодировки приложения и URL-адрес сервера, если они не были правильно обнаружены, включите настройку кеша, добавьте свой адрес электронной почты и язык по умолчанию и нажмите кнопку «Установить Pydio», чтобы начать установку.

После завершения процесса установки мастер установки автоматически перенаправит вас на страницу входа в Pydio. Укажите имя пользователя и пароль администратора приложения, настроенные в процессе установки, чтобы войти в панель управления Pydio.

Вы также можете войти в приложение для обмена файлами Pydio, посетив свое доменное имя или IP-адрес сервера по протоколу HTTPS.

https://www.yourdomain.tld

После входа в панель администратора Pydio вы можете следовать инструкциям мастера, которые появятся во всплывающем окне, чтобы быстро научиться управлять приложением через веб-панель администратора.

Некоторые посетители могут просматривать приложение Pydio незащищенным способом по протоколу HTTP. Чтобы заставить всех посетителей безопасно просматривать интерфейс Pydio по протоколу HTTPS, вернитесь к консоли вашего сервера и отредактируйте файл .htaccess, расположенный в корневом каталоге веб-сайта, введя следующую команду.

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 на сервере Debian 9. Чтобы узнать о других особых типах процедур установки и конфигураций приложения, посетите страницу документации Pydio по следующему адресу: https://pydio.com/en/docs/administration-guides.