How to install ownCloud 10 on Ubuntu 16.04

how-to-install-owncloud-10-on-ubuntu-16-04-1-6841387

ownCloud is a popular open source enterprise 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 to the popular Google Drive, Dropbox, iCloud, etc. cloud platforms. ownCloud is a cross-platform application and supports all popular operating systems, but this tutorial was written especially for Ubuntu 16.04. At the time of writing the latest ownCloud version is 10.0.7.

1. Prerequisites

  • PHP >= 5.6 (PHP 7.0 or above is recommended), with the following PHP extensions enabled: 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 is recommended), MariaDB 5.5+, PostgreSQL, or SQLite installed on your Linux virtual server.

2. Update the system

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

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

3. Install ownCloud

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

# wget -qO- https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add -
OK

Make sure apt-transport-https is installed as we are going to 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:
  apt-transport-https
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 http://archive.ubuntu.com/ubuntu 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 we can add the ownCloud repository to the server:

# echo 'deb https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' | sudo tee /etc/apt/sources.list.d/owncloud.list
deb https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /

Now update the system packages again so we can install the ownCloud packages:

# sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://archive.canonical.com/ubuntu xenial InRelease
Hit:4 http://security.ubuntu.com/ubuntu xenial-security InRelease
Ign:5 https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  InRelease
Get:6 https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release [986 B]
Get:7 https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Release.gpg [481 B]
Get:8 https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04  Packages [736 B]
Fetched 2203 B in 2s (1030 B/s)
Reading package lists... Done

Install ownCloud by executing 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:
  owncloud-files
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 proceed to the next step now.

4. Create a MySQL database for ownCloud

Log into MySQL with the root account:

# mysql -u root -p

Now we will create a MySQL database for ownCloud using the following query:

mysql> CREATE DATABASE owncloud;

Then execute 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';

Execute the following command to apply the privileges we set:

mysql> FLUSH PRIVILEGES;

Now we can exit the MySQL session:

mysql> exit;

5. Configure ownCloud

First make sure the following packages are installed as they are needed 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. Configure Apache to server ownCloud

Now we will have to setup the Apache configuration so it can serve the ownCloud directory, add the following contents below to the /etc/apache2/sites-available/owncloud.conf file with 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
</IfModule>

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

</Directory>

Enable the following Apache modules:

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

Enable the Apache ownCloud configuration:

# sudo a2ensite owncloud.conf

Now restart the Apache web server:

# sudo systemctl restart apache2

Open your web browser and type in the following URL to access the ownCloud web interface:

http://your_server_ip_address_or_domain_name/owncloud

From here you can finish the setup by following the steps below:

  • Enter a username and password for the admin account.
  • Click on the Storage & database link.
  • Leave the default data folder setting.
  • Click the MySQL/MariaDB button.
  • Populate the fields with the database information we set above.
  • Click Finish Setup.

That’s it, now you should have successfully installed ownCloud 10 on your server.

Original Article