This page explains how to install ownCLoud on Ubuntu 20.04. The following guide has been tested with the following versions:
First step, check that your system is up to date :
sudo apt update
sudo apt upgrade
After updating your system, reboot if necessary.
OwnCLoud needs a web server for first configuration and for the web interface. The simplest option is to install LAMP to get Apache, MySQL and PHP. Install the LAMP package:
sudo apt install lamp-server^ -y
Once the installation is completed, start and enable Apache service:
sudo systemctl start apache2
sudo systemctl enable apache2
At this stage, your Apache web server should be working. Check it in your browser by entering http://localhost in the url bar. You should get the following page:
Install PHP and the required package with the following command:
sudo apt-get install php php-opcache php-gd php-curl php-mysqlnd php-intl php-json php-ldap php-mbstring php-mysqlnd php-xml php-zip -y
Restart Apache to enable changes:
sudo systemctl restart apache2
Start and enable the MySQL service:
sudo systemctl start mysql
sudo systemctl enable mysql
We strongly recommand to improve the security of the MySQL database with the following command: mysql_secure_installation:
sudo mysql_secure_installation
When prompt for the following, we recommend the following answers:
We now need to create the ownCLoud database from the MySQL console:
sudo mysql --user=root -p
Create the MySQL ownCloud database:
CREATE DATABASE ownclouddb;
Create a new user. Replace password by the appropriate value:
CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY 'password';
Grant the new user with the necessary privileges:
GRANT ALL ON ownclouddb.* TO 'ownclouduser'@'localhost' WITH GRANT OPTION;
Enable changes by flushing the privileges:
FLUSH PRIVILEGES;
Finally, exit the MySQL console:
exit
Download the last ownCLoud version, 10.7.0 as the time of writing:
wget https://download.owncloud.org/community/owncloud-latest.zip
Unzip the downloaded file:
unzip owncloud-latest.zip
A new directory owncloud
is created after unziping the file. Move the directory
into the Apache default directory:
sudo mv owncloud /var/www/
Change the ownership of the directory for the user www-data
:
sudo chown -R www-data: /var/www/owncloud
Activate mod_ssl with the following command:
sudo a2enmod ssl
Restart Apache to enable changes:
sudo systemctl restart apache2
In order to get secured HTTPS access, let's create a SSL certificate:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/owncloud.key -out /etc/ssl/certs/owncloud.crt
Answer the questions. The last command should generate two files :
/etc/ssl/private/owncloud.key
is the private key ;/etc/ssl/certs/owncloud.crt
is the certificate.Create and edit an Apache configuration file:
sudo gedit /etc/apache2/sites-available/owncloud.conf
or use nano if you are in command line:
sudo nano /etc/apache2/sites-available/owncloud.conf
Fill the text file with the following and adapt it to your needs:
localhost
by your domain or IP address.<VirtualHost *:443>
ServerName localhost
DocumentRoot /var/www/owncloud
SSLEngine on
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key
</VirtualHost>
Enable your new configuration file:
sudo a2ensite owncloud.conf
Enable the rewrite
, mime
, and unique_id
Apache modules:
sudo a2enmod rewrite mime unique_id
Restart Apache to enable changes:
sudo systemctl restart apache2
In your brower, enter the url https://localhost, you should reach a page like the following:
Select advanced and proceed (you can trust this certificate since this is yours).
If you want an automatic redirection of http to https, edit the following file:
sudo gedit /etc/apache2/sites-available/000-default.conf
Add the following line in the file:
Redirect / localhost/
Once Apache, PHP, MySQl and ownCloud are installed, the last step is to set up ownCloud. This is done by the web interface. If everything is properly configured, you can access the ownCloud web interface at one of the following address:
The fist time you access the ownCloud web interface, you should get the first time configuration page. Let's detail each parameter:
Choose a user name and password for the main administrator account.
Set the data folder. The user's files and folders stored in ownCloud will be stored here:
The default value is /var/www/owncloud/data
, but you can change according to your
needs. If you select another folder, add the www-data
user to the folder:
sudo chown -R www-data: /path/to/my/folder/
Connect ownCLoud to the MySQL database previously configured:
Click on Finish setup. You should be able to log in to your freshly installed ownCloud instance:
If you do not use the web server, neuther redict HTTP to HTTPS, I recommand to remove the default HTML page. Edit the default page:
sudo gedit /var/www/html/index.html
Replace the content with:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Access denied</title>
</head>
<body>
<h1>HTTP Status 403 - Access is denied</h1> </body>
</html>
When conneting to your server root directory, you should get something like: