How to Install OwnCloud to Create Own Cloud Storage in Linux

Cloud storage stands for a virtualized pool of network storage most commonly hosted by third parties. Cloud storage is a network-based service that physically does not exist but remains somewhere in the cloud. To be more clear, cloud storage means sharing data over a network, rather than having local servers or personal devices.

Cloud storage is all around us in our smartphones, on desktops and servers, etc. The Dropbox application which is now available on smartphones is nothing but a cloud storage application. Google Drive is another cloud storage application that lets you store and access your stored data from anywhere and anytime.

[ You might also like: 16 Open Source Cloud Storage Software for Linux ]

This article aims at – Building your personal cloud storage using your ownCloud application. But what is the need of building a personal cloud when there is third-party hosting? Well, all the third-party hosting limits you to work with the given configuration and storage limit.

The ever-expanding list of photos, videos, mp3’s of storage is not sufficient, moreover, cloud storage is a relatively new concept and there are not many third-party cloud storage hosts and the available one is too much costly.

OwnCloud Community has recently released their special release ownCloud 10. They have come up with incredible changes in terms of quality, performance, and innovations to provide an excellent cloud experience with “ownCloud“. If you are already working with its older version, you’ll definitely experience significant improvements in Document handling.

What is ownCloud

ownCloud is a free, open-source, and powerful web application for data synchronization, file sharing, and remote storage of files. ownCloud is written in PHP/JavaScript languages, which is designed to work with several database management systems, including MySQL, MariaDB, SQLite, Oracle Database, and PostgreSQL.

Moreover, owncloud can be deployed on all known platforms viz., Linux, Macintosh, Windows, and Android. In short, it’s a robust, platform Independent, flexible in terms of configuration and usability, easy-to-use open-source Application.

Features of owncloud

  • Store files, folders, contacts, photo galleries, calendars, etc on the server of your choice, Later you can access it from mobile, desktop, or web browser.
  • In the world of gadgets, a normal person has a tablet, smartphone, laptop, etc. Own cloud lets you sync all your files, contacts, photo, calendar, etc synced with the devices.
  • In the era of sharing aka Facebook, Twitter, Google+, etc, owncloud lets you share your data with others and share them publicly or privately as per your needs.
  • The easy user interface lets you manage, upload, create users, etc in a very easy fashion.
  • A special feature is that even users can undelete the accidentally deleted data from Trash, is not it easy to handle and maintain.
  • The search feature in owncloud is very responsive which is done in the background and lets users search by name as well as the file type.
  • Contacts are organized into categories/groups hence easy to access contacts on the basis of friends, co-workers, families, etc.
  • You can now access external storage be it Dropbox, FTP, or anything else by mounting.
  • Easy to migrate to/from another owncloud server.

What’s New in ownCloud 10

  • Accessibility Improvement for app’s management page, updater app, and search.
  • Additional notification and direct download supported.
  • The storage configuration file can be tuned to a higher level in this release.
  • Apps management is now intelligent enough to store App’s dependency in XML files from where Apps container can solve the dependencies automatically.
  • Documentation improved to the next level, PDF viewer improved with the implementation of a new version of PDF.js.
  • Improved user management and structured settings and admin page improved.
  • Link sharing has now gone better by shortening.
  • Overall performance improved as compared to the previous version.
  • Contacts importing improved.
  • Federated (United) cloud sharing which means setting up shared folders across servers is a cakewalk. This feature makes it possible to collaborate with organizations with the control at the local owncloud deployment server.
  • Apps now feature ratings and are category-based.
  • Set favorite icon to files and folders so that it is easy to sort and edit.
  • Add files to favorites so that it is easy to find them later.
  • Admin can edit email addresses of users, sort and select users as well as rename groups.
  • Basic feature includes – connecting to owncloud over HTTP(s), browse for files/folder in explorer, automatic sync, sharing files with other users, sync folders from PC, Pause and resume downloads and uploads and configure the proxy.

System Requirements

For higher performance, stability, support, and full functionality we recommend the following things:

  1. Minimum 128MB RAM, recommend 512MB.
  2. RHEL/CentOS 7/8, Fedora 29+, Ubuntu 16.04, 18.04 and Ubuntu 20.04, Debian 8/9 and 10.
  3. MySQL/MariaDB 5.5+.
  4. PHP 5.4 +
  5. Apache 2.4 with mod_php

Step 1: Install ownCloud Storage in Linux

In order to set up your own personal cloud storage (ownCloud), you must have the LAMP (Linux, Apache, MySQL/MariaDB, PHP) stack installed. Other than the LAMP stack you might need Perl and Python-based upon your use.

On Debian/Ubuntu/Linux Mint
---------------------- For MySQL Server ----------------------
$ sudo apt install -y apache2 libapache2-mod-php mysql-server openssl php-imagick php-common php-curl php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis redis-server wget

---------------------- For MariaDB Server ----------------------
$ sudo apt install -y apache2 libapache2-mod-php mariadb-server openssl php-imagick php-common php-curl php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis redis-server wget
On RedHat/CentOS/Fedora
---------------------- For MySQL Server ----------------------
$ sudo yum install -y httpd mysql-server openssl php-imagick php-common php-curl php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis redis-server wget


---------------------- For MariaDB Server ----------------------
$ sudo yum install -y httpd mariadb-server openssl php-imagick php-common php-curl php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis redis-server wget

Once you set up the LAMP stack on your personal box, next you need to enable and start the Apache and MariaDB service.

--------- On Debian based Systems ---------
$ sudo systemctl enable apache2 mariadb
$ sudo systemctl start apache2 mariadb

--------- On RedHat based Systems ---------
$ sudo systemctl enable httpd mariadb
$ sudo systemctl start httpd mariadb

The default MariaDB settings are not secure enough, so you need to run the security script to set a strong root password, remove anonymous users, disable remote root login, remove the test database, and finally save the changes made.

$ sudo mysql_secure_installation
Secure MariaDB Installation
Secure MariaDB Installation

Step 2: Create ownCloud Database

Now login to the database server using the password that you recently set.

sudo mysql -u root -p

Now we will be creating a database (say owncloud) with a new user.

MariaDB [(none)]> create database owncloud;
MariaDB [(none)]> grant all on owncloud.* to tecmint@localhost identified by 'tecmint';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> Quit;

Step 3: Download and Install ownCloud Application

Now it’s time to Download the latest ownCloud (i.e version 10.7.0) application using the wget command to download the source tarball package.

$ cd /var/www/html
$ sudo wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
$ sudo tar -xjf owncloud-latest.tar.bz2
$ sudo chown -R www-data. owncloud

Step 4: Configuring Apache for ownCloud

For security purposes, ownCloud uses Apache‘s .htaccess files, in order to use them. We need to enable two Apache modules mod_rewrite and mod_headers for our ownCloud to function properly. Type the following command to enable these modules under Debian-based systems only, for RedHat systems they are enabled by default.

$ sudo a2enmod rewrite
$ sudo a2enmod headers

Additionally, we need to enable mod_rewrite rules to work properly under Apache‘s main configuration file. Open the Apache global configuration file.

# vi /etc/httpd/conf/httpd.conf			[For RedHat based Systems]

There, find “AllowOverride None” and change this to “AllowOverride All” as shown.

AllowOverride None

Change this to:

AllowOverride All

Now we need to restart Apache to reload new changes.

# service apache2 restart			[For Debian based Systems]
# service httpd restart				[For RedHat based Systems]

Step 5: Access ownCloud Application

Now you can access your very personal cloud storage at:

http://localhost/owncloud
OR
http://your-ip-address/owncloud

Once you get the Owncloud page, you need to create an admin account and a Data folder location, where all files/folders will be stored (or leave default location i.e. /var/www/owncloud/data or /var/www/html/owncloud/data). Next, you need to enter mysql database username, password, and database name, refer to the screenshot below.

OwnCloud 9 Installation Wizard
OwnCloud Installation Wizard

Once all the correct values are entered, click Finish and your private cloud storage is ready, you are greeted with the working interface:

OwnCloud 9 Admin Dashboard
OwnCloud Admin Dashboard

Notice the Favorites, edit, share, download, upload, and new file options available for a file.

Upload Files to OwnCloud Storage
Upload Files to OwnCloud Storage

Activities log of oneself and others.

Owncloud Activity Log
Owncloud Activity Log

Pictures library.

My Owncloud Picture Library
My Owncloud Picture Library

Apps enable and disable interface as well as a recommendation with a brief introduction.

Enabled Application
Enabled Application

Inbuilt PDF reader.

PDF Reader
PDF Reader

From this admin panel, you can view security and setup warnings, Federated cloud sharing, Mail Templates,
Updater, Cron, sharing, Security, Email Server, Log, etc.

Security Setup Warning
Security Setup Warning

User and Group information with quota.

User Group Quota
User Group Quota

Note: You can add users or imports user account, change password, assign user role and allocate space by clicking the Gear icon on the left bottom of the page.

You may now add folders, sync media files are its pictures, images, and videos from the mobile application. Owncloud lets you add new users, and sync calendars, contacts, Media files, etc.

It also has a built-in MP3 Player, PDF Viewer, Document Viewer, and a lot many which is worth a try and explore. So what are you waiting for? Become a proud owner of private cloud storage, give it a try!

Upgrading to Owncloud 10 from Older Versions

To update the earlier version of your own cloud to 10, you need to first update the old own cloud to the latest point release of the same version.

For example, if you’re using owncloud 8.0.xy (where ‘xy‘ is the version number), you need to first update to 9.0.x of the same series, and then you are able to upgrade to owncloud 10 using the following instructions.

Updating to Owncloud 10 form Older Versions

  1. Making a proper backup of everything is always suggested.
  2. Enable the updater plugin (if it is disabled).
  3. Go to Admin Panel and fire update.
  4. Refresh page using ‘Ctrl+F5‘, you’re done.

If the above procedure doesn’t work, you can do a full upgrade to update to the newest point release (see ‘Upgrade‘ instructions below).

Else, if you’re already using Owncloud 7, 8, or 9 and want to update to Owncloud 10, you can follow the below same ‘Upgrade‘ instructions to get the latest version of Owncloud.

Upgrading Old OwnCloud to OwnCloud 10 Latest Release

  1. Update your owncloud version to the latest point release of your version.
  2. Not to Mention, Make a full backup before upgrading.
  3. Download the latest tarball using the wget command.
# wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
  1. Deactivate all native and third-party applications and plugins.
  2. Delete Everything from the owncloud Directory except DATA and CONFIG directory.
  3. Untar the tarball and copy everything to the root of your owncloud directory within your working directory.
  4. Grant required permissions and run Upgrade from the Next page and it’s done!.
  5. Don’t forget to install and enable Third-party Applications and plug-ins only after checking the compatibility with the current version.

So what are you waiting for? Install the latest owncloud project or upgrade your last version to the latest and start using it.

That’s all for now. Don’t forget to provide us with your valuable feedback in the comments. I’ll soon be here with another interesting article, you people will love to read. Till then Stay tuned, connected to tecmint, and healthy. Like and share us, help us get spread.

If you read this far, tweet to the author to show them you care. Tweet a thanks
Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

88 thoughts on “How to Install OwnCloud to Create Own Cloud Storage in Linux”

  1. It is one thing to install another is to make it secure. Very few have the skills needed to securely interface it to the internet ie outside your own LAN.

    Reply
  2. For anybody reading this, just save yourself some time and find another set of instructions if you’re using Ubuntu. If you’re using something else, hey maybe the instructions are right for that, but I highly doubt it. Thank me later.

    Reply
  3. These instructions are not correct. Apache’s global configuration file is definitely not called ‘default’ for one, there are many more mistakes…

    Reply

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.