GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Pydio Web File Manager en Debian 9

Pydio es un potente software de solución de uso compartido de archivos y sincronización de archivos web de código abierto para la colaboración en línea, similar a Gdrive u otros servicios de uso compartido de archivos en línea. Escrito principalmente en lenguaje de programación PHP y Ajax, Pydio se puede instalar en un servidor privado virtual Linux o en un servidor físico bajo servidores web Apache/Nginx, sistema de gestión de base de datos PHP y MySQL/MariaDB (también conocido como LAMP o pila LEMP), o puede implementarse en la nube también.

En este tutorial, cubriremos el proceso de instalación y configuración de Pydio Community Edition desde el código fuente en la versión Debian 9, además de la pila LAMP. Cubriremos todo el proceso de instalación desde cero con todos los pasos necesarios que debe realizar en su servidor Debian para crear una nube privada en línea para compartir documentos, películas, música o cualquier otro tipo de archivo.

Requisitos

Debe cumplir con los siguientes requisitos para implementar una solución en la nube para compartir archivos de Pydio en sus instalaciones:

  • Un servidor físico dedicado o una máquina virtual o un VPS con un mínimo de 2 Gb de RAM y la última versión de Debian 9 instalada.
  • Una de las tarjetas de interfaz de red del servidor debe configurarse con una dirección IP estática o el servidor DHCP debe configurarse para arrendar la misma dirección IP para la NIC del servidor
  • Privilegios de raíz de la consola del servidor de forma remota a través de SSH o localmente o un usuario local o LDAP con privilegios de raíz para el sistema a través de la utilidad sudo.
  • Un nombre de dominio registrado públicamente o un nombre de dominio local privado configurado a través de su propio servidor DNS en sus instalaciones. El nombre de dominio debe configurarse con todos los registros DNS requeridos, como registros A y CNAME para apuntar a www. Sin embargo, aún puede implementar Pydio y acceder a la nube web a través de la dirección IP de su servidor en caso de que no tenga un nombre de dominio.
  • Un servidor de correo electrónico configurado en sus instalaciones para utilizar el registro de Pydio u otras funciones. También puede usar un servicio de correo público en este caso, como Gmail o Yahoo!

Requisitos previos

Para empezar, inicie sesión en la consola de su servidor con la cuenta de root o una cuenta con poderes de root y emita los siguientes comandos para asegurarse de que su sistema Debian esté actualizado con los últimos parches de seguridad, software, repositorios y kernel. actualizaciones.

apt update
apt upgrade

En el siguiente paso, configure un nombre descriptivo para el nombre de host de su máquina con el siguiente comando (reemplace su variable de nombre de host según corresponda).

hostnamectl set-hostname www.mysharedfiles.com

Verifique el nombre de host de la máquina y el registro aplicado en el archivo de hosts del sistema emitiendo los siguientes comandos.

hostnamectl
cat /etc/hostname
hostname –f
hostname –s

Finalmente, reinicie el servidor para aplicar las actualizaciones del kernel y el nombre de host cambiará correctamente.

systemctl reboot

En el siguiente paso, vuelva a iniciar sesión en el sistema con privilegios de root e instale las siguientes utilidades del sistema, como zip, unzip (para descomprimir archivos zip), curl y wget (descarga de archivos en línea) y autocompletado de línea de comando bash-completion.

su -
apt install bash-completion zip unzip curl wget  imagemagick unoconv

Para editar, componer o convertir diferentes formatos de imagen y convertir documentos a través de la interfaz web de Pydio, instale el software ImageMagick y unoconv - las utilidades de Universal Office Converter ejecutando el siguiente comando.

apt install imagemagick unoconv

Si tiene recursos compartidos de Samba que deben montarse en los espacios de trabajo de Pydio, instale el cliente de samba en Debian con el siguiente comando.

apt-get install smbclient

Instalar Apache y PHP

En el siguiente paso, comenzaremos instalando los componentes del lado del servidor de la pila LAMP requerida por la nube de archivos compartidos web de Pydio:el servidor Apache HTTP y el intérprete del lenguaje de programación PHP. También instalaremos todos los módulos y extensiones Pydio PHP necesarios. Ejecute el siguiente comando para instalar todos los componentes de software descritos que acabamos de analizar.

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

Luego, verifique si todos los módulos PHP instalados están habilitados en su sistema, algo que puede hacer ejecutando el siguiente comando.

php7.0 –m

En el siguiente paso, habilite la reescritura del servidor Apache HTTP y los módulos SSL que permitirán el uso de archivos .htaccess en la ruta raíz del documento del servidor web para que podamos obligar a los visitantes a navegar de forma segura por el sitio web a través del protocolo HTTPS. El módulo SSL protegerá el tráfico entre el servidor y los navegadores de sus clientes con un certificado autofirmado emitido automáticamente por Apache. Habilite el archivo de configuración Apache SSL para que el módulo SSL funcione correctamente. Ejecute el siguiente comando para activar todas las configuraciones requeridas.

a2enmod ssl rewrite
a2ensite default-ssl.conf

A continuación, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y agregue las líneas de código de reglas de reescritura de URL después de DocumentRoot directiva, como se muestra en el ejemplo a continuación.

nano /etc/apache2/sites-enabled/default-ssl.conf

Extracto del archivo de configuración del sitio SSL:

DocumentRoot  /var/www/html
<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Guarde y cierre el archivo de configuración SSL Apache y también abra el archivo de configuración vhost predeterminado para editarlo. Aquí, agregue las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las líneas de código después de DocumentRoot declaración como se muestra en el siguiente ejemplo.

nano /etc/apache2/sites-enabled/000-default.conf

Extracto del archivo 000-default.conf:

DocumentRoot  /var/www/html
<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Para aplicar todos los cambios realizados hasta ahora, debe reiniciar el demonio de Apache emitiendo el siguiente comando.

systemctl restart apache2

Configurar el cortafuegos

Antes de visitar su nombre de dominio o la dirección IP del servidor a través de un navegador web abierto en una computadora en sus instalaciones, primero agregue las reglas de firewall requeridas para permitir que el tráfico web pase el firewall. Si su servidor Debian viene con la aplicación de firewall UFW, debe agregar algunas reglas nuevas para permitir que el tráfico HTTP/S pase a través del firewall emitiendo los siguientes comandos.

ufw allow 'WWW Full'

o

ufw allow 80/tcp
ufw allow 443/tcp

También debe permitir que el tráfico SSH pase a través del firewall UFW en caso de conexiones remotas al servidor.

ufw allow 22/tcp

Si su servidor Debian está detrás de un iptables firewall, agregue las siguientes reglas sin procesar de iptables para permitir que el tráfico entrante de los puertos 80 y 443 pase el firewall para que los visitantes externos puedan navegar por la aplicación.

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

En caso de que esté conectado al servidor Debian de forma remota a través de SSH, primero debe agregar la siguiente regla para permitir que el tráfico SSH pase a través del firewall de iptables. De lo contrario, quedará encerrado porque el cortafuegos comenzará a descartar todo el tráfico entrante en el puerto 22.

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

Finalmente, para probar si puede acceder al servidor Apache HTTP desde una computadora remota en su LAN, abra un navegador y visite su nombre de dominio o dirección IP del servidor a través del protocolo HTTPS. Para mostrar la dirección IP del servidor, ejecute ifconfig o ip a comando en la terminal. Si su máquina es parte de su red de infraestructura interna y está oculta detrás de una red NAT, ejecute el siguiente comando para obtener la dirección IP pública.

curl ipinfo.io/ip

Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, el navegador marcará el certificado como no confiable y se mostrará una advertencia de error en el navegador. Haga clic en continuar para omitir esta advertencia, acepte el certificado que no es de confianza y continúe siendo redirigido a la página web predeterminada de Apache.

https://tudominio.tld

Hasta ahora, solo hemos instalado el servidor web Apache y el intérprete de PHP en nuestro servidor Debian. Para completar la pila LAMP, necesaria para instalar la solución para compartir archivos de Pydio, necesitamos instalar un componente final que falta:un backend de base de datos RDBMS.

Instalar MariaDB

En este tutorial, instalaremos Pydio con el servidor de base de datos MariaDB como backend. En la base de datos MariaDB, la aplicación Pydio almacenará usuarios, configuraciones de sitios web y otros datos diversos. Para instalar el servidor y el cliente de la base de datos MariaDB y la extensión PHP MySQL en Debian 9, emita el siguiente comando.

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

De forma predeterminada, se puede acceder a la cuenta raíz de la base de datos proporcionando una contraseña en Debian 9. Para superar este problema de seguridad y asegurar el servidor de la base de datos, primero inicie sesión en la consola MySQL y ejecute los siguientes comandos para proteger la cuenta raíz de MariaDB.

mysql -h localhost

Bienvenido al monitor de MariaDB. Los comandos terminan en; o \g.

Tu ID de conexión de MariaDB es 2

Versión del servidor:10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab y otros.

Escriba 'ayuda;' o '\h' para obtener ayuda. Escriba '\c' para borrar la instrucción de entrada actual.

MariaDB [(none)]> use mysql;

Lectura de información de tablas para completar los nombres de tablas y columnas

Puede desactivar esta función para obtener un inicio más rápido con -A

Base de datos modificada

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

Consulta OK, 1 fila afectada (0.00 seg)

Filas coincidentes:1  Cambiadas:1  Advertencias:0

MariaDB [mysql]> flush privileges;

Consulta OK, 0 filas afectadas (0.00 seg)

MariaDB [mysql]> exit

En el siguiente paso, comience a asegurar el servidor MariaDB ejecutando el script mysql_secure_installation . Este script hará una serie de preguntas diseñadas para proteger la base de datos MariaDB. Responda "sí" a todas las preguntas:elimine usuarios anónimos, deshabilite el inicio de sesión raíz remoto y elimine la base de datos de prueba. Además, asegúrese de configurar una contraseña segura para la cuenta raíz de la base de datos, como se muestra en el siguiente extracto.

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!
======================================================================================

Después de que se complete el script, intente iniciar sesión en la base de datos desde la consola sin contraseña de root. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, como se ilustra en el siguiente extracto del comando:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Si se proporciona la contraseña, el proceso de inicio de sesión debe otorgarse a la consola de MySQL, como se muestra en el ejemplo de comando. Escriba exit para salir de la consola de la base de datos.

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

Ajustar la configuración de PHP

A continuación, abra el archivo de configuración predeterminado de PHP para editar y cambiar las siguientes variables de PHP como se describe a continuación. Establecer la zona horaria de PHP configuración para que coincida con la ubicación geográfica de su sistema. PHP date.timezone La variable se puede encontrar consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php 

Primero, haga una copia de seguridad del archivo de configuración de PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Busque, edite y cambie las siguientes variables en el php.ini archivo de configuración:

file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
output_buffering = 0
date.timezone = Europe/London

Debería aumentar upload_max_file_size variable en el archivo de configuración de PHP para admitir archivos adjuntos de gran tamaño.

También debe agregar configuraciones del complemento OPCache para PHP7 para aumentar la velocidad de carga de la aplicación web. Edite el archivo php.ini y agregue las siguientes líneas de código en la parte inferior del archivo, debajo de [opcache] declaración, como se detalla a continuación:

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         

Una vez que haya agregado todas las líneas de código que se describen a continuación, cierre php.ini archivo de configuración y verifique si las variables de OPCache se agregaron correctamente emitiendo el siguiente comando.

grep opcache  /etc/php/7.0/apache2/php.ini

Para cifrar y proteger los archivos Pydio a través de la codificación PHP, instale el software Ioncube en su servidor Debian emitiendo los siguientes comandos:

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/

Luego, edite el archivo de configuración de ioncube y agregue la siguiente línea.

nano /etc/php/7.0/apache2/conf.d/00-ioncube.ini

00-ioncube.ini extracto del archivo:

zend_extension=ioncube_loader_lin_7.0.so

Reinicie el servidor Apache para aplicar la extensión Ioncube.

systemctl restart apache2

Como paso final en la configuración de la pila LAMP, cree un archivo de información PHP en la ruta webroot del servidor web ejecutando el siguiente comando.

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

Visite el archivo de secuencia de comandos de información de PHP desde un navegador en la siguiente URL y compruebe si Ioncube Zend se ha cargado correctamente y, también, desplácese hacia abajo hasta fecha configuración para verificar la configuración de la zona horaria de PHP. La configuración de la zona horaria debe reflejar su ubicación geográfica PHP configurada anteriormente.

https://dominio.tld/info.php

Descargar e Instalar Pydio

Ahora que se han cumplido todos los requisitos del sistema para instalar el software de la comunidad de Pydio, abra un navegador y vaya a la página de descarga oficial de Pydio en https://pydio.com/en/community y copie el enlace de descarga para obtener el último archivo zip en su sistema a través de la utilidad wget.

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

Después de que finalice la descarga del archivo zip de Pydio, extraiga el archivo zip en su directorio de trabajo actual y enumere los archivos extraídos con el comando ls.

unzip pydio-core-8.0.2.zip
ls

A continuación, elimine el archivo index.html predeterminado instalado por el servidor web Apache en la ruta webroot y también elimine el archivo info.php creado anteriormente.

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

Copie los archivos de instalación de Pydio ubicados en su directorio de trabajo actual en pydio-core-8.0.2/ directorio. Problema ls Comando para enumerar los archivos de este directorio para archivos ocultos. Copie todo el contenido del directorio extraído en la ruta raíz del documento de su servidor web emitiendo el siguiente comando. Además, asegúrese de copiar el archivo oculto .htaccess a la ruta webroot.

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/

A continuación, otorgue al usuario de tiempo de ejecución de Apache permisos de escritura completos para la ruta raíz del documento ejecutando el siguiente comando. Usa el ls Comando para enumerar los permisos para los archivos instalados de la aplicación en el directorio /var/www/html/.

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

A continuación, abra Pydio bootstrap_conf.php archivo de configuración ubicado en la ruta webroot y modifique las siguientes líneas, como se muestra en el siguiente extracto del archivo:

nano /var/www/html/conf/bootstrap_conf.php

 bootstrap_conf.php muestra de archivo:

setlocale(LC_ALL, "en_US.UTF-8");
define("AJXP_LOCALE", "en_EN.UTF-8");

En el siguiente paso, inicie sesión en la consola de la base de datos MariaDB y cree la base de datos de la aplicación Pydio. Además, agregue un nuevo usuario de MySQL para administrar la base de datos de Pydio y configure una contraseña segura para este usuario. Ejecute los siguientes comandos para crear una base de datos y un usuario y asegúrese de reemplazar el nombre de la base de datos, el usuario y la contraseña utilizados en esta guía con su propia configuración.

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

Una vez que haya creado la base de datos, abra un navegador y navegue hasta la dirección IP o el nombre de dominio de su servidor a través del protocolo HTTPS para comenzar con el proceso de instalación web de Pydio. En la primera pantalla de instalación, seleccione su idioma y presione el botón Iniciar asistente para iniciar el proceso de instalación.

En la siguiente pantalla de instalación, agregue un Título de la aplicación y el Mensaje de bienvenida para la aplicación Pydio y presione el botón Siguiente para pasar a la siguiente pantalla de configuración.

A continuación, agregue su nombre de administrador de la aplicación Pydio y su nombre completo. Proporcione y confirme una contraseña segura para la cuenta de administrador y presione el botón Siguiente para pasar a la siguiente pantalla de configuración.

En la siguiente pantalla, configure los ajustes de conexión de la base de datos. Seleccione MySQL como tipo de base de datos, use localhost como host de la base de datos y agregue el nombre de la base de datos de Pydio, el usuario y la contraseña creados anteriormente para conectarse a la base de datos. Presiona el botón Test DB Connection para iniciar sesión en la base de datos de Pydio y continuar con el proceso de instalación.

En la pantalla de opciones avanzadas, cambie el conjunto de datos de codificación de la aplicación y la dirección URL del servidor si no se detectaron correctamente, habilite la configuración de caché, agregue su dirección de correo electrónico y el idioma predeterminado y presione el botón Instalar Pydio para comenzar la instalación.

Una vez que se completa el proceso de instalación, el asistente de instalación lo redirigirá automáticamente al formulario de la página de inicio de sesión de Pydio. Proporcione el nombre de usuario y la contraseña del administrador de la aplicación configurados durante el proceso de instalación para iniciar sesión en el panel de control de Pydio.

También puede iniciar sesión en la aplicación de uso compartido web de Pydio visitando su nombre de dominio o la dirección IP del servidor a través del protocolo HTTPS.

https://www.tudominio.tld

Después de iniciar sesión en el panel de administración de Pydio, puede seguir el recorrido del asistente que aparecerá para aprender rápidamente cómo administrar la aplicación a través del panel de administración web.

Algunos visitantes pueden navegar por la aplicación Pydio de forma no segura a través del protocolo HTTP. Para obligar a todos los visitantes a navegar de forma segura en la interfaz de Pydio a través del protocolo HTTPS, vuelva a la consola de su servidor y edite el .htaccess archivo ubicado en el directorio raíz web emitiendo el siguiente comando.

nano /var/www/html/public/.htaccess

Una vez que se abre el archivo .htaccess para editarlo, busque la línea que comienza con RewriteEngine on y agregue las siguientes reglas de redirección debajo de esta línea.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Además, si desea cambiar la configuración del servidor PHP, para que pueda aumentar el tamaño de carga de archivos u otras variables PHP, agregue las siguientes líneas al final del archivo .htaccess, como se muestra en el extracto a continuación.

php_value upload_max_filesize 50M
php_value post_max_size 50M

¡Felicidades! Ha instalado con éxito la aplicación de sincronización y uso compartido de archivos Pydio en el servidor Debian 9. Para otros tipos especiales de procedimientos de instalación y configuraciones con respecto a la aplicación, visite la página de documentación de Pydio en la siguiente dirección:https://pydio.com/en/docs/administration-guides 


Debian
  1. Cómo instalar el servidor Redis en Debian 11

  2. Cómo instalar PHP 7.4/7.3/7.2/7.1 en Debian 10/Debian 9

  3. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  4. Cómo instalar ProFTPD en Debian 8

  5. Cómo instalar el servidor MySQL en Debian 9

Cómo instalar MySQL 8 en Debian 10

Cómo instalar Todoman en el servidor Debian 11

Cómo instalar y configurar el servidor web Apache en Debian 11

Cómo instalar FastPanel en Debian 11

Cómo instalar I2P en el servidor Debian:

Cómo instalar el servidor web Apache en Debian 11