ownCloud is a file sharing server that permits you to store your personal content, like documents and pictures, in a centralized location, much like Dropbox. The difference with ownCloud is that it is free and open-source, which allows anyone to use and examine it. It also returns the control and security of your sensitive data back to you, thus eliminating the utilization of a third-party cloud hosting service.
In this tutorial, we will install and configure an ownCloud instance on an Ubuntu 16.04 server.
In order to complete the steps in this guide, you will need the following:
php-bz2
, php-curl
, php-gd
, php-imagick
, php-intl
, php-mbstring
, php-xml
, and php-zip
.The ownCloud server package does not exist within the default repositories for Ubuntu. However, ownCloud maintains a dedicated repository for the distro.
To begin, download their release key using the curl
command and import it with the apt-key
utility with the add
command:
Output. . .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1358 100 1358 0 0 2057 0 --:--:-- --:--:-- --:--:-- 2057
OK
The ‘Release.key’ file contains a PGP (Pretty Good Privacy) public key which apt
will use to verify that the ownCloud package is authentic.
In addition to importing the key, create a file called owncloud.list
in the sources.list.d
directory for apt
. The file will contain the address to the ownCloud repository.
Outputdeb https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /
After adding a new source, use the apt-get
utility and the update
command to make apt
aware of the change:
Output. . .
W: https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.gpg: Signature by key DDA2C105C4B73A6649AD2BBD47AE7F72479BC94B uses weak digest algorithm (SHA1)
Finally, perform the installation of ownCloud using the apt-get
utility and the install
command:
When prompted with the Do you want to continue? [Y/n]
message, press the ENTER
key to confirm the installation.
OutputSetting up owncloud-deps-php7.0 (9.1.1-1.2) ...
Enabling conf owncloud.
To activate the new configuration, you need to run:
service apache2 reload
apache2_invoke: Enable module rewrite
apache2_invoke owncloud: already enabled
Setting up owncloud (9.1.1-1.2) ...
Processing triggers for libc-bin (2.23-0ubuntu4) ...
Processing triggers for libapache2-mod-php7.0 (7.0.8-0ubuntu0.16.04.3) ...
As you can see by the output, the installation created a new configuration for Apache. Use the systemctl
utility with the reload
command to make the Apache daemon aware of the change:
With the ownCloud server installed, we will move on to setting up a database for it to use.
To get started, log into MySQL with the administrative account:
Enter the password you set for the MySQL root user when you installed the database server.
ownCloud requires a separate database for storing administrative data. While you can call this database whatever you prefer, we decided on the name owncloud
to keep things simple.
Note: Every MySQL statement must end with a semi-colon (;). Be sure to check that this is present if you are experiencing an issue.
Next, create a separate MySQL user account that will interact with the newly created database. Creating one-function databases and accounts is a good idea from a management and security standpoint. As with the naming of the database, choose a username that you prefer. We elected to go with the name owncloud
in this guide.
Warning: Be sure to put an actual password where the command states: set_database_password
With the user assigned access to the database, perform the flush-privileges operation to ensure that the running instance of MySQL knows about the recent privilege assignment:
This concludes the configuration of MySQL, therefore we will quit the session by typing:
With the ownCloud server installed and the database set up, we are ready to turn our attention to configuring the ownCloud application.
To access the ownCloud web interface, open a web browser and navigate to the following address:
https://server_domain_or_IP/owncloud
If a self-signed certificate is being used, you will likely be presented with a warning because the certificate is not signed by one of your browser’s trusted authorities. This is expected and normal. We are only interested in the encryption aspect of the certificate, not the third-party validation of our host’s authenticity. Click the appropriate button or link to proceed to the ownCloud admin page.
You should see something like this:
Create an admin account by choosing a username and a password. For security purposes it is not recommended to use something like “admin” for the username.
Before clicking the Finish setup button, click on the Storage & database link:
Leave the Data folder setting as-is and click the MySQL/MariaDB button in the Configure the database section.
Enter the database information that you configured in the previous step. Below is an example, which matches the database credentials that we used in this guide:
Click the Finish setup button to sign into ownCloud. A safe home for all your data splash screen should appear:
Click the x in the top-right corner of the splash screen to access the main interface:
Here, you can create or upload files to your personal cloud.
ownCloud can replicate the capabilities of popular third-party cloud storage services. Content can be shared between users or externally with public URLs. The advantage of ownCloud is that the information is stored securely in a place that you control.
Explore the interface and for additional functionality, install plugins using ownCloud’s app store.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Great tutorial!
Isn’t it working with Nginx?
@RamphisReyes: Thanks for the feedback and question.
ownCloud’s system requirements recommend using Apache 2.4 with mod_php. Although it is possible to use NGiNX, it is not officially supported. ownCloud has a community-maintained NGiNX Example Configurations article, which provides assistance for running an ownCloud server with NGiNX.
I hope that you find that resource useful.
@mlenardson: Thank you for this information. I opted for creating a new droplet for only owncloud with apache2 this time. I did everything you did on this tutorial, and I am still having a few warnings. Hope you can help me out to solve this, step by step if possible.
These are the warnings:
Thank you in advance for your help.
When I run:
sudo systemctl restart apache2.service
The output is:
sudo: systemctl: command not found
Please help!
@rjs04615: The tutorial is designed around running an ownCloud server on Ubuntu 16.04, which uses
systemd
as its initialization system. The command not found error indicates that a different initialization system is being used. If you are running a different version of Ubuntu or Linux distro entirely, the initialization command for your environment is needed in order to restart Apache.I hope that helps.
I’m very interested in trying out NextCloud – any assistance there would be much appreciated. Either way, thanks for the OneCloud manual install instructions.
I’ve been waiting for this! I will be following along tonight. Thanks :)
You’re very welcome!
I followed the directions but I cannot access my Owncloud at all. I followed the directions to make a SSL certificate and all went fine. I don’t know what I’m missing here.
Hello @joelstitch,
I am sorry to hear that you are experiencing difficulties when attempting to install ownCloud. When you say, “I cannot access my ownCloud at all”, what specific step are you performing? Are you attempting to browse to the ownCloud web interface? Are you receiving an error and if so, what is the error?
When I try to access it trough the web browser I get this message:
I followed the directions to set it up with https but am missing something. I think the tutorial explains how to do it by transfering all http request to https but I only want to do that with owncloud and not every single web app I have on my server.
I was trying to install one of those comodo certs sold by namecheap. Cause i wanted Owncloud to run on https. So, i was kind of struggling here following your instructions to install the comercial certificate, but then saw your let`s encrypt link, and gladly found out they have an automated tool called CERTBOT which made my day, by ****installing and configuring a total valid and trusted certificate in about 1 minute. ****
Now i am running OwnCloud under https with automatic redirect from port 80 to 443 and everything.
So thanks for all your clear explanations. I might learn more about this wonderful encryption tech in the future.
If you’re using ownCloud with DO’s block storage, you’ll want to check out this tutorial too:
https://www.digitalocean.com/community/tutorials/how-to-move-the-data-directory-for-owncloud-on-ubuntu-16-04
Hi, Could you explain how to use sub.domain.com instead of domain.com/owncloud ? Thank you for all your great tutorials !
Hey there when I tried to make account in OwnCloud, it returns this error.
I thought I input the password wrong. However, I can login via SSH to “user_test” profile in MySQL. What is the problem?
Try using a password without special characters (!@#$%^[], etc.). That fixed the issue for me. Owncloud won’t be able to parse the database password correctly in the login webpage if special characters are used.
I am now not in my working computer. I do not have experience using MySQL in the first place but I used MongoDB for several project in the past.
mongod
in MongoDB)? Or does MySQL server automatically starts? I suspect that when I was trying to register for admin in OwnCloud I have not yet started the MySQL server.There are many things that can cause this error. The most common is an incorrect password. However, since you’re able to log into MySQL via an interactive shell that eliminates the use of an incorrect password. Is MySQL running on the same server as the ownCloud instance?
Everything in the same droplets. But the thing is that I am not sure if the MySQL server is running when I tried to register. Does MySQL server start automatically or do I need to start it manually?
I am away from my computer at this moment, so I cannot try stuff yet.
This comment has been deleted
Hi everyone, I am having trouble with this tutorial right at the start. When I type the the line: sudo curl https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add -
It fails to work. My server comes back with: curl: command not found gpg: no valid OpenPGP data found.
I have tripled checked my typing and even copied and paste into the console, to no avail. Am I missing something? Or this a problem beyond my control? Regards, gundulf.
thanks a lot, really a nice article. Again thanks!
Please write another tutorial on “Installation of OpenStack on ubuntu 16.04”
Hi and thank you for this nice guide!
I have these warnings:
Security & setup warnings
I had no errors that i can remember when following this guide, and the LAMP stack guide. I had my Ubuntu server installed before I came across this guide.
I did have to edit the /var/www/owncloud/config/config.php and add my external IP to make it work from internet.
I also cant get the pdf-reader-app to work. If I click on a pdf it just shows a blank page in both Chrome and Firefox.
I also have another question regarding setting IP. when following the LAMP guide it says I should set my Server domain_or_IP. To find out that there are two choices which gives two different results:
This gives me the IP I got on my LAN (behind my router 192.168.1.xxx)
This gives me the IP my ISP gives me (82.209.xxx.xxx):
Should I set my LAN IP or the IP from my ISP. I have set my LAN IP except for adding the IP my ISP gave me in /var/www/owncloud/config/config.php and this work
About the Security warnings, I answer myself. The headers are set twice. One time in /etc/apache2/conf-available/security.conf and one time in /etc/apache2/conf-available/ssl-params.conf.
In /etc/apache2/conf-available/ssl-params.conf. I commented out:
Then I made sure that it was not commented out in /etc/apache2/conf-available/security.conf
Finally got it right with the IP’s. In config.php I did only set my external IP. Then after a restart my local IP was added automaticly like this:
I also edited this line:
Hope it helps someone.
Great Guide, worked very well for me except one issue. I followed it exactly, except I am using Ubuntu 16.04 Desktop vice Server.
My issue has to do with the redirect everything from http to https
I took a hard drive of files (~2TB) I wanted to upload onto the owncloud and plugged it into the server, so I could transfer them on the same computer that the owncloud server was running. I then proceeded to enter the address of “localhost/owncloud” which automatically redirected to https://myserverdomainDDNS/owncloud. The issue there is when I transfer files via the website from the disk plugged into the same computer the owncloud server is running, it will actually put all the data through my network!!! Any way to fix this?
Thank you!
Tim
the best tutorials ever
You’re Awesome
Why not push people toward NextCloud? The setup is more or less the same, and it’s not been abandoned…
This is an excellent and quick tutorial. I have followed it on two servers. The first worked without issues. I have run in to a snag on the second one. I am running Ubuntu 16.04 with Apache, MySQL, and PHP. I had a regular website running, a Wordpress site, and another simple site. All working just as virtual hosts on port 80. Now, after running the install part of owncloud I only get
" You don’t have permission to access / on this server."
With each of my websites I had hosted on this server. Could you point me in the right direction of where I went wrong? Or even just how to undo the install. Thanks.
Hi, great tutorial! Everything worked fine before installing openvpn… I use ubuntu server 16.04, and since the installation of openvpn I have no longer access to owncloud, but it worked fine previously. Do you know where this can come from or how can I check if everything’s fine for owncloud? (Already restart Apache and eowncloud on the server, no changes at all - still unreachable)
Hi, excellent tutorial! Thx for your work! My OC is up and running perfect on my ESXi Host!
I’ve been using a few of your tutorials, and they are awsome. I have an issue with the ownCloud installation though! I think the issue is within the repository as it is not up to date. I got another one though which worked, but the output is a bit different. So now, when I try to reach my cloud (‘…/owncloud’), it gives me a 404, but I can reach the server.
Desperate for help. Tahnks!
Installation worked first time, thank you!
Thanks! This tutorial worked for me the first time. I’ve been searching for a long time for a tutorial to set this up and either my server did not act right or the other tutorials I found the commands wouldn’t work for my server. Either way, I tried to relocate my data DB using your tutorial [https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04]
However, now I get this when I try logging in at the web browser:
*Internal Server Error
The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.*
Versions: PHP 7.0.18 OwnCloud 9.1.6-1.1 owncloud-deps-php7.0 Apache2 2.4.18-2 MYSQL 5.7.18
Awesome tutorial! Very user friendly and easy to follow. Thank you Digital Ocean for making such great tutorials. Some of the best I’ve seen online.
Is there any chance to figure out this issue ? trying to : sudo apt-get install owncloud and get this output Please advise .
~$ sudo apt-get install owncloud Reading package lists… Done Building dependency tree
Reading state information… Done Package owncloud is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: owncloud-files
After a “sudo apt-get update”
I should have seen this output :
Output . . . W: https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.gpg: Signature by key DDA2C105C4B73A6649AD2BBD47AE7F72479BC94B uses weak digest algorithm (SHA1)
Unfortunately Instead I get this :
sudo apt-get update Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB] Hit:2 http://ppa.launchpad.net/certbot/certbot/ubuntu xenial InRelease
Hit:3 http://nyc2.mirrors.digitalocean.com/ubuntu xenial InRelease
Ign:4 https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04 InRelease Hit:5 http://nyc2.mirrors.digitalocean.com/ubuntu xenial-updates 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 [833 B] Hit:9 http://nyc2.mirrors.digitalocean.com/ubuntu xenial-backports InRelease Fetched 104 kB in 1s (95.6 kB/s) Reading package lists… Done
Then when I continue :
sudo apt-get install owncloud
I get this :
Reading package lists… Done Building dependency tree
Reading state information… Done Package owncloud is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: owncloud-files E: Package ‘owncloud’ has no installation candidate
Is there something needs to be updated or something I am doing wrong ? Please advise ?
Please let me know what should i do having this error
E:package owncloud has no installation candidate?
Regarding the recent inability to load opencloud: I ran into that as well, but found an older version that works here: https://download.owncloud.org/download/repositories/9.0/owncloud/
Follow the instructions for “Ubuntu_16.04 owncloud-9.0.11-1.1” in place of the commands above for step 1. of installing opencloud.
Hope this helps. I was beating my head against the wall trying to get the newer versions of opencloud to work (but could not). Thanks Michael for the original great article!