How to install OwnCloud 10 on Ubuntu 16.04

OwnCloud is a popular web application used for data synchronization and file sharing. It allows users to easily manage their files, contacts, calendars, to-do lists and more, making it a great alternative to the popular Google Drive, Dropbox, iCloud and other cloud platforms. OwnCloud is cross-platform and supports all popular operating systems, but this article was written specifically for Ubuntu 16.04. At the time of writing, the latest version of OwnCloud is 10.0.7.

1. Prerequisites

  • PHP> = 5.6 (PHP 7.0 or higher recommended), with the following extensions included in PHP: XML (Expat), curl, PDO, Phar, GD Graphics Library version 2.0.x +, DOM, ctype, JSON, iconv, intl, mcrypt, openssl, bz2, Zlib and Zip.
  • Apache Web Server> = 2.0 compiled with mod_rewrite module
  • MySQL> = 5.x (MySQL 5.5 or later), MariaDB 5.5+, PostgreSQL, or SQLite installed on your Linux virtual server.

2. System update

As usual, before installing system packages on the server, first update the system:

# sudo apt-get update && apt-get upgrade

3. Installing OwnCloud

Download the repository key using the wget command and import it with the apt-key command:

# wget -qO- | sudo apt-key add -

Make sure apt-transport-https is installed as we will need it for the next step:

# sudo apt-get install apt-transport-https
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  aspell aspell-en dictionaries-common emacsen-common libaspell15 libexttextcat-2.0-0 libexttextcat-data liblua5.1-0 libyajl2
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 54 not upgraded.
Need to get 26.1 kB of archives.
After this operation, 215 kB of additional disk space will be used.
Get:1 xenial-updates/main amd64 apt-transport-https amd64 1.2.26 [26.1 kB]
Fetched 26.1 kB in 0s (60.8 kB/s)
Selecting previously unselected package apt-transport-https.
(Reading database ... 35616 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_1.2.26_amd64.deb ...
Unpacking apt-transport-https (1.2.26) ...
Setting up apt-transport-https (1.2.26) ...

Create a owncloud.list file in /etc/apt/sources.list.d so that we can add the OwnCloud repository to the server:

# echo 'deb /' | sudo tee /etc/apt/sources.list.d/owncloud.list
deb /

Now update the system packages again so that we can install the OwnCloud packages:

# sudo apt-get update
Hit:1 xenial InRelease
Hit:2 xenial-updates InRelease
Hit:3 xenial InRelease
Hit:4 xenial-security InRelease
Ign:5  InRelease
Get:6  Release [986 B]
Get:7  Release.gpg [481 B]
Get:8  Packages [736 B]
Fetched 2203 B in 2s (1030 B/s)
Reading package lists... Done

Install OwnCloud by running the following command:

# sudo apt-get install owncloud-files
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 51 not upgraded.
Need to get 0 B/35.1 MB of archives.
After this operation, 118 MB of additional disk space will be used.
Selecting previously unselected package owncloud-files.
(Reading database ... 35869 files and directories currently installed.)
Preparing to unpack .../owncloud-files_10.0.7-1.1_all.deb ...
Unpacking owncloud-files (10.0.7-1.1) ...
Setting up owncloud-files (10.0.7-1.1) ...

We can now move on to the next step.

4. Creating a MySQL database for OwnCloud

Login to MySQL with root account:

# mysql -u root -p

We will now create a MySQL database for OwnCloud using the following query:

mysql> CREATE DATABASE owncloud;

Then run the following query to add a separate user for OwnCloud that will interact with the database:

mysql> GRANT ALL PRIVILEGES ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'enter_username_password_here';

Run the following command to apply the privileges we have set:


We can now log out of the MySQL session:

mysql> exit;

5. Setting up OwnCloud

First, make sure the following packages are installed as they are required by OwnCloud:

# sudo apt-get install libapache2-mod-php7.0 
    openssl php-imagick php7.0-common php7.0-curl php7.0-gd 
    php7.0-imap php7.0-intl php7.0-json php7.0-ldap php7.0-mbstring 
    php7.0-mcrypt php7.0-mysql php7.0-pgsql php-smbclient php-ssh2 
    php7.0-sqlite3 php7.0-xml php7.0-zip

6. Configuring Apache for the OwnCloud server

Now we will need to configure Apache so that it can serve the ownCloud directory, add the following content below to the /etc/apache2/sites-available/owncloud.conf file using nano or your favorite editor:

# sudo nano /etc/apache2/sites-available/owncloud.conf

Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off

SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud


Enable the following Apache modules:

# sudo a2enmod rewrite
# sudo a2enmod headers
# sudo a2enmod env
# sudo a2enmod dir
# sudo a2enmod mime

Enable Apache OwnCloud configuration:

# sudo a2ensite owncloud.conf

Now restart the Apache web server:

# sudo systemctl restart apache2

Open your web browser and enter the following URL to access the OwnCloud web interface:


From here, you can complete the installation by following the steps outlined below:

  • Enter the username and password for the administrator account.
  • Click the Storage & database link.
  • Leave the default for the data folder.
  • Click on the MySQL / MariaDB button.
  • We fill in the fields with the database information that we installed above.
  • Click Finish.

Now you should have successfully installed OwnCloud 10 on the server.

Please disable your ad blocker or whitelist this site!