{"id":12783,"date":"2019-03-28T19:56:19","date_gmt":"2019-03-28T19:56:19","guid":{"rendered":"http:\/\/www.appservgrid.com\/paw92\/?p=12783"},"modified":"2019-03-28T19:56:19","modified_gmt":"2019-03-28T19:56:19","slug":"pydio-create-own-file-sharing-and-synchronization-portal-like-dropbox-in-linux","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/03\/28\/pydio-create-own-file-sharing-and-synchronization-portal-like-dropbox-in-linux\/","title":{"rendered":"Pydio \u2013 Create Own File Sharing and Synchronization Portal like Dropbox in Linux"},"content":{"rendered":"<div id=\"attachment_17895\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-File-Hosting-Server.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17895\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-File-Hosting-Server.png\" alt=\"Pydio File Sharing and Synchronization\" width=\"720\" height=\"345\" aria-describedby=\"caption-attachment-17895\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17895\" class=\"wp-caption-text\">Pydio \u2013 Create Own File Sharing and Synchronization Platform<\/p>\n<\/div>\n<p><strong>Pydio<\/strong>\u00a0is an Open source, secure and powerful online file sharing and synchronization software solution that can be an alternative to many online cloud storage systems. It can be accessed from the web, desktop or mobile platforms and hosting is private therefore you can implement your own security measures.<\/p>\n<p><i class=\"fa fa-check\"><\/i>\u00a0<a href=\"https:\/\/www.tecmint.com\/free-open-source-cloud-storage-tools-for-linux\/\" target=\"_blank\" rel=\"noopener\">12 Open Source Cloud Storage Solutions to Sync Your Data Safely<\/a><\/p>\n<h4>Pydio Features<\/h4>\n<p>Pydio offers the following features:<\/p>\n<ol>\n<li>Secure links with passwords with an expiration date.<\/li>\n<li>Integration with\u00a0<a href=\"https:\/\/www.tecmint.com\/setup-ldap-server-and-configure-client-authentication\/\" target=\"_blank\" rel=\"noopener\">LDAP\/AD server for user authentication<\/a>.<\/li>\n<li><a href=\"https:\/\/www.tecmint.com\/how-to-monitor-user-activity-with-psacct-or-acct-tools\/\" target=\"_blank\" rel=\"noopener\">Monitor user activities<\/a>\u00a0in real time on the system.<\/li>\n<li>Creation of workspace from shared folders among different users.<\/li>\n<li>Notify users of file or folder modifications.<\/li>\n<li>Supports SSO with many Content Management Systems (CMS) such as WordPress, Joomla, Drupal, Xibo and many others including custom designed CMS.<\/li>\n<li>Preview user files such as audio, video and documents such as Office documents, PDFs and many more.<\/li>\n<\/ol>\n<p>In this tutorial, I am going to take you through the process of setting up Pydio file sharing and synchronization portal on\u00a0<strong>RHEL<\/strong>\/<strong>CentOS<\/strong>\u00a0and\u00a0<strong>Fedora<\/strong>.<\/p>\n<h3>Step 1: Installing Web Server and Dependencies<\/h3>\n<p><strong>1.<\/strong>\u00a0Pydio only requires a web server (Apache, Nginx or Lighttpd) with PHP 5.1 or higher along with some dependencies such as GD, MCrypt, Mbstring, DomXML, etc. In most of the today\u2019s distributions, these libraries are pre-installed on standard PHP installation. If not, let\u2019s install them using following series of commands.<\/p>\n<p>Before installing dependencies, first you need to enable EPEL repository under your Linux system and update the repository database using\u00a0<a href=\"https:\/\/www.tecmint.com\/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement\/\" target=\"_blank\" rel=\"noopener\">yum package manager<\/a>:<\/p>\n<pre># yum install epel-release\r\n# yum update\r\n<\/pre>\n<p>Once the repository has been enabled, you can now install the Apache web server and php libraries as shown:<\/p>\n<pre># yum -y install httpd\r\n# yum -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql\r\n\r\n--------------- <strong>On Fedora 22+<\/strong> ---------------\r\n# dnf -y install php php-gd php-ldap php-pear php-xml php-xmlrpc php-mbstring curl php-mcrypt* php-mysql\r\n<\/pre>\n<p><strong>2.<\/strong>\u00a0Once all the required PHP extensions are installed properly, it\u2019s time to open Apache\u00a0<strong>HTTP<\/strong>\u00a0and\u00a0<strong>HTTPS<\/strong>\u00a0ports on firewall.<\/p>\n<pre>--------------- <strong>On FirewallD for CentOS 7 and Fedora 22+<\/strong> ---------------\r\n# firewall-cmd --permanent --zone=public --add-service=http\r\n# firewall-cmd --permanent --zone=public --add-service=https\r\n# firewall-cmd --reload\r\n<\/pre>\n<pre>--------------- <strong>On IPtables for CentOS 6 and Fedora<\/strong> ---------------\r\n# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT\r\n# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT\r\n# \/etc\/init.d\/iptables save\r\n<\/pre>\n<h3>Step 2: Create Pydio Database<\/h3>\n<p><strong>3.<\/strong>\u00a0To create pydio database, you must have MySQL\/MariaDB server installed on the system, if not let\u2019s install it.<\/p>\n<pre># yum install mysql mysql-server            [On CentOS\/RHEL 6 and Fedora]                 \r\n# yum install mariadb mariadb-server        [On CentOS 7]\r\n# dnf install mariadb mariadb-server        [On Fedora 22+]\r\n<\/pre>\n<p>Next secure mysql installation using command\u00a0<code>mysql_secure_installation<\/code>\u00a0and follow on screen instructions as shown.<\/p>\n<div id=\"attachment_17009\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/11\/MySQL-Secure-Installation.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17009\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/11\/MySQL-Secure-Installation.png\" alt=\"MySQL Secure Installation\" width=\"720\" height=\"400\" aria-describedby=\"caption-attachment-17009\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17009\" class=\"wp-caption-text\">MySQL Secure Installation<\/p>\n<\/div>\n<p>Now connect to MySQL and create a new pydio user and set grant privileges as shown:<\/p>\n<pre>create database pydio;\r\ncreate user pydio@localhost identified by 'tecmint';\r\ngrant all privileges on pydio.* to pydio@'localhost' identified by 'tecmint';\r\n<\/pre>\n<h3>Step 3: Installing Pydio File Hosting Server<\/h3>\n<p><strong>4.<\/strong>\u00a0Here, we will use official Pydio repository to install most recent version of Pydio package with the help of following series of commands.<\/p>\n<pre># rpm -Uvh http:\/\/dl.ajaxplorer.info\/repos\/pydio-release-1-1.noarch.rpm\r\n# yum update\r\n# yum --disablerepo=pydio-testing install pydio\r\n<\/pre>\n<h3>Step 4: Configuring Pydio File Hosting Server<\/h3>\n<p><strong>5.<\/strong>\u00a0Next open and add the following configuration to\u00a0<code>.htaccess<\/code>\u00a0file to enable Pydio access over web as shown:<\/p>\n<pre># vi \/var\/lib\/pydio\/public\/.htaccess\r\n<\/pre>\n<p>Add the following configuration.<\/p>\n<pre>Order Deny,Allow\r\nAllow from all\r\n&lt;Files \".ajxp_*\"&gt;\r\ndeny from all\r\n\r\nRewriteEngine on\r\nRewriteBase pydio_public\r\nRewriteCond %{REQUEST_FILENAME} !-f\r\nRewriteCond %{REQUEST_FILENAME} !-d\r\nRewriteRule ^([a-zA-Z0-9_-]+)\\.php$ share.php?hash=$1 [QSA]\r\nRewriteRule ^([a-zA-Z0-9_-]+)--([a-z]+)$ share.php?hash=$1&amp;lang=$2 [QSA]\r\nRewriteRule ^([a-zA-Z0-9_-]+)$ share.php?hash=$1 [QSA]\r\n<\/pre>\n<p>In\u00a0<strong>CentOS 7.x<\/strong>\u00a0and\u00a0<strong>Fedora 22+<\/strong>\u00a0distributions, you need to modify and add the following lines to\u00a0<code>pydio.conf<\/code>\u00a0file.<\/p>\n<pre>Alias \/pydio \/usr\/share\/pydio\r\nAlias \/pydio_public \/var\/lib\/pydio\/public\r\n\r\n&lt;Directory \"\/usr\/share\/pydio\"&gt;\r\n        Options FollowSymLinks\r\n        AllowOverride Limit FileInfo\r\n\tRequire all granted\r\n      \tphp_value error_reporting 2\r\n&lt;\/Directory&gt;\r\n\r\n\r\n&lt;Directory \"\/var\/lib\/pydio\/public\"&gt;\r\n        AllowOverride Limit FileInfo\r\n\tRequire all granted\r\n      \tphp_value error_reporting 2\r\n&lt;\/Directory&gt;\r\n<\/pre>\n<p><strong>6.<\/strong>\u00a0Next configure\u00a0<code>php.ini<\/code>\u00a0to allow max file upload, disable php output buffering and increase memory_limit to boost performance of Pydio as shown:<\/p>\n<pre># vi \/etc\/php.ini\r\n<\/pre>\n<pre>post_max_size = 1G\r\nupload_max_filesize = 1G\r\noutput_buffering = Off\r\nmemory_limit = 1024M\r\n<\/pre>\n<p><strong>7.<\/strong>\u00a0Now set correct charset encoding in your locale definition in the form:\u00a0<code>en_us.UTF-8<\/code>. First find out current charset lang of system by running following command.<\/p>\n<pre># echo $LANG\r\n<\/pre>\n<p>Next open\u00a0<code>\/etc\/pydio\/bootstrap_conf.php<\/code>\u00a0file and add the following line.<\/p>\n<pre>define(\"AJXP_LOCALE\", \"en_US.UTF-8\");\r\n<\/pre>\n<p><strong>8<\/strong>. It is recommended to use\u00a0<strong>SSL<\/strong>\u00a0encryption to secure all Pydio connections of data over secure\u00a0<strong>HTTPS<\/strong>\u00a0network. To do this, first install the\u00a0<strong>mod_ssl<\/strong>\u00a0package and open the following file and modify as shown:<\/p>\n<pre># yum install mod_ssl\r\n# vi \/etc\/pydio\/bootstrap_conf.php<\/pre>\n<p>Now uncomment the following line at the bottom of the file. This will automatically redirect all connection via HTTPS.<\/p>\n<pre>define(\"AJXP_FORCE_SSL_REDIRECT\", true);\r\n<\/pre>\n<p><strong>9<\/strong>. Finally restart Apache web server to take new changes into effect.<\/p>\n<pre># systemctl restart httpd.service       [On CentOS 7 and Fedora 22+]\r\n# service httpd restart                 [On CentOS 6 and Fedora]\r\n<\/pre>\n<h3>Step 5: Start Pydio Web Installer Wizard<\/h3>\n<p><strong>10<\/strong>. Now open your web browser and type the url to load the web installer.<\/p>\n<pre>http:\/\/localhost\/pydio\/\r\nOR\r\nhttp:\/\/ip-address\/pydio\/\r\n<\/pre>\n<div id=\"attachment_17842\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Installer.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17842\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Installer.png\" alt=\"Pydio Installer\" width=\"1069\" height=\"818\" aria-describedby=\"caption-attachment-17842\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17842\" class=\"wp-caption-text\">Pydio Installer<\/p>\n<\/div>\n<p>Click on the \u201c<strong>Start Wizard<\/strong>\u201d and follow on screen installer instructions\u2026.<\/p>\n<h4>Create Pydio Admin Account<\/h4>\n<div id=\"attachment_17844\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Create-Pydio-Admin-Account.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17844\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Create-Pydio-Admin-Account.png\" alt=\"Create Pydio Admin Account\" width=\"1069\" height=\"818\" aria-describedby=\"caption-attachment-17844\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17844\" class=\"wp-caption-text\">Create Pydio Admin Account<\/p>\n<\/div>\n<h4>Setup Global Options<\/h4>\n<div id=\"attachment_17845\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Set-Pydio-Global-Options.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17845\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Set-Pydio-Global-Options.png\" alt=\"Set Pydio Global Options\" width=\"1067\" height=\"852\" aria-describedby=\"caption-attachment-17845\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17845\" class=\"wp-caption-text\">Set Pydio Global Options<\/p>\n<\/div>\n<h4>Configure Pydio MySQL Database<\/h4>\n<div id=\"attachment_17846\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Configure-Pydio-MySQL-Database.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17846\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Configure-Pydio-MySQL-Database.png\" alt=\"Configure Pydio MySQL Database\" width=\"1067\" height=\"852\" aria-describedby=\"caption-attachment-17846\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17846\" class=\"wp-caption-text\">Configure Pydio MySQL Database<\/p>\n<\/div>\n<div id=\"attachment_17849\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Login.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17849\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Login.png\" alt=\"Pydio Login\" width=\"1067\" height=\"852\" aria-describedby=\"caption-attachment-17849\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17849\" class=\"wp-caption-text\">Pydio Login<\/p>\n<\/div>\n<div id=\"attachment_17850\" class=\"wp-caption aligncenter\">\n<p><a href=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Dashboard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-17850\" src=\"https:\/\/www.tecmint.com\/wp-content\/uploads\/2015\/12\/Pydio-Dashboard.png\" alt=\"Pydio Dashboard\" width=\"1067\" height=\"852\" aria-describedby=\"caption-attachment-17850\" data-lazy-loaded=\"true\" \/><\/a><\/p>\n<p id=\"caption-attachment-17850\" class=\"wp-caption-text\">Pydio Dashboard<\/p>\n<\/div>\n<h3>Concluding<\/h3>\n<p>Cloud storage is on the rise and many companies out there are embarking on designing web file sharing software solutions such as Pydio. Hope you find this tutorial helpful and if you know of any other software out there that you have used, or if you are facing problems during installation or setup, let us know of it by leaving a comment. Thanks for reading and stay connected to Tecmint.<\/p>\n<p>Reference:\u00a0<a href=\"https:\/\/pyd.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/pyd.io\/<\/a><\/p>\n<p><a href=\"https:\/\/www.tecmint.com\/pydio-create-file-sharing-and-synchronization-portal-in-linux\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pydio \u2013 Create Own File Sharing and Synchronization Platform Pydio\u00a0is an Open source, secure and powerful online file sharing and synchronization software solution that can be an alternative to many online cloud storage systems. It can be accessed from the web, desktop or mobile platforms and hosting is private therefore you can implement your own &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/03\/28\/pydio-create-own-file-sharing-and-synchronization-portal-like-dropbox-in-linux\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Pydio \u2013 Create Own File Sharing and Synchronization Portal like Dropbox in Linux&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12783","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/12783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=12783"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/12783\/revisions"}],"predecessor-version":[{"id":12784,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/12783\/revisions\/12784"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=12783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=12783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=12783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}