Pydio: cree su propio portal de sincronización y uso compartido de archivos como Dropbox en Linux


Pydio es una solución de software de sincronización y uso compartido de archivos en línea de código abierto, segura y potente que puede ser una alternativa a muchos sistemas de almacenamiento en la nube en línea. Se puede acceder desde la web, escritorio o plataformas móviles y el alojamiento es privado por lo que puede implementar sus propias medidas de seguridad.

Pydio ofrece las siguientes características:

  1. Secure links with passwords with an expiration date.
  2. Integration with LDAP/AD server for user authentication.
  3. Monitor user activities in real time on the system.
  4. Creation of workspace from shared folders among different users.
  5. Notify users of file or folder modifications.
  6. Supports SSO with many Content Management Systems (CMS) such as WordPress, Joomla, Drupal, Xibo and many others including custom designed CMS.
  7. Preview user files such as audio, video and documents such as Office documents, PDFs and many more.

En este tutorial, lo guiaré a través del proceso de configuración del portal de sincronización y uso compartido de archivos de Pydio en RHEL/CentOS y Fedora.

Paso 1: instalación del servidor web y las dependencias

1. Pydio solo requiere un servidor web (Apache, Nginx o Lighttpd) con PHP 5.1 o superior junto con algunas dependencias como GD, MCrypt, Mbstring, DomXML, etc. En la mayoría de las distribuciones actuales, estas bibliotecas están preinstaladas en instalación estándar de PHP. Si no, instalémoslos usando la siguiente serie de comandos.

Antes de instalar las dependencias, primero debe habilitar el repositorio EPEL en su sistema Linux y actualizar la base de datos del repositorio usando el administrador de paquetes yum:

# yum install epel-release
# yum update

Una vez que se ha habilitado el repositorio, ahora puede instalar el servidor web Apache y las bibliotecas php como se muestra:

# yum -y install httpd
# yum -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql

--------------- On Fedora 22+ ---------------
# dnf -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql

2. Una vez que todas las extensiones PHP requeridas están instaladas correctamente, es hora de abrir los puertos Apache HTTP y HTTPS en el firewall.

--------------- On FirewallD for CentOS 7 and Fedora 22+ ---------------
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload
--------------- On IPtables for CentOS 6 and Fedora ---------------
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# /etc/init.d/iptables save

Paso 2: Cree la base de datos de Pydio

3. Para crear una base de datos pydio, debe tener el servidor MySQL/MariaDB instalado en el sistema, si no, instalemos.

# yum install mysql mysql-server            [On CentOS/RHEL 6 and Fedora]                 
# yum install mariadb mariadb-server        [On CentOS 7]
# dnf install mariadb mariadb-server        [On Fedora 22+]

Siguiente instalación segura de mysql usando el comando mysql_secure_installation y siga las instrucciones en pantalla como se muestra.

Ahora conéctese a MySQL y cree un nuevo usuario de pydio y configure los privilegios de concesión como se muestra:

create database pydio;
create user [email protected] identified by 'tecmint';
grant all privileges on pydio.* to [email protected]'localhost' identified by 'tecmint';

Paso 3: Instalación del servidor de alojamiento de archivos Pydio

4. Aquí, usaremos el repositorio oficial de Pydio para instalar la versión más reciente del paquete Pydio con la ayuda de la siguiente serie de comandos.

# rpm -Uvh http://dl.ajaxplorer.info/repos/pydio-release-1-1.noarch.rpm
# yum update
# yum --disablerepo=pydio-testing install pydio

Paso 4: Configurar el servidor de alojamiento de archivos Pydio

5. A continuación, abra y agregue la siguiente configuración al archivo .htaccess para habilitar el acceso de Pydio a través de la web como se muestra:

# vi /var/lib/pydio/public/.htaccess

Agregue la siguiente configuración.

Order Deny,Allow
Allow from all
<Files ".ajxp_*">
deny from all

RewriteEngine on
RewriteBase pydio_public
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)\.php$ share.php?hash=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)--([a-z]+)$ share.php?hash=$1&lang=$2 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ share.php?hash=$1 [QSA]

En las distribuciones CentOS 7.xy Fedora 22+, necesita modificar y agregar las siguientes líneas al archivo pydio.conf .

Alias /pydio /usr/share/pydio
Alias /pydio_public /var/lib/pydio/public

<Directory "/usr/share/pydio">
        Options FollowSymLinks
        AllowOverride Limit FileInfo
	Require all granted
      	php_value error_reporting 2
</Directory>


<Directory "/var/lib/pydio/public">
        AllowOverride Limit FileInfo
	Require all granted
      	php_value error_reporting 2
</Directory>

6. A continuación, configure php.ini para permitir la carga máxima de archivos, deshabilite el búfer de salida de php y aumente el límite de memoria para aumentar el rendimiento de Pydio como se muestra:

# vi /etc/php.ini
post_max_size = 1G
upload_max_filesize = 1G
output_buffering = Off
memory_limit = 1024M

7. Ahora configure la codificación correcta del juego de caracteres en su definición de configuración regional en la forma: en_us.UTF-8 . Primero averigüe el idioma actual del juego de caracteres del sistema ejecutando el siguiente comando.

# echo $LANG

A continuación, abra el archivo /etc/pydio/bootstrap_conf.php y agregue la siguiente línea.

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

8. Se recomienda utilizar cifrado SSL para proteger todas las conexiones de datos de Pydio a través de una red HTTPS segura. Para hacer esto, primero instale el paquete mod_ssl y abra el siguiente archivo y modifíquelo como se muestra:

# yum install mod_ssl
# vi /etc/pydio/bootstrap_conf.php

Ahora descomente la siguiente línea en la parte inferior del archivo. Esto redirigirá automáticamente todas las conexiones a través de HTTPS.

define("AJXP_FORCE_SSL_REDIRECT", true);

9. Finalmente reinicie el servidor web Apache para que los nuevos cambios entren en vigor.

# systemctl restart httpd.service       [On CentOS 7 and Fedora 22+]
# service httpd restart                 [On CentOS 6 and Fedora]

Paso 5: Inicie el asistente del instalador web de Pydio

10. Ahora abra su navegador web y escriba la URL para cargar el instalador web.

http://localhost/pydio/
OR
http://ip-address/pydio/

Haga clic en "Iniciar asistente" y siga las instrucciones del instalador en pantalla….

Concluyendo

El almacenamiento en la nube está en aumento y muchas empresas se están embarcando en el diseño de soluciones de software para compartir archivos web como Pydio. Espero que este tutorial le resulte útil y si conoce algún otro software que haya utilizado, o si tiene problemas durante la instalación o configuración, háganoslo saber dejando un comentario. Gracias por leer y mantente conectado a Tecmint.

Referencia: https://pyd.io/