NextCloud is a Dropbox-like solution for self-hosted file sharing and syncing. Installing NextCloud 12 on Ubuntu is trivial. Whether you want to
backup, have file-syncing or just have a Google Calendar alternative, this guide is for you.
What is NextCloud? Is it like a “cloud”?
If you stumbled here by chance and don’t know what NextCloud is, here is
an article explaining its principal features and
advantages/disadvantages. In this other
article you can find NextCloud 12 new features. To tell you the truth, NextCloud is a SaaS cloud, if you want to know more about cloud types you can
read this article.
In this article we will cover the installation of the server (not the client).
Step1: Install software
Important
I take absolutely NO responsibility of what you do with your machine; use this tutorial as a guide and remember you can possibly cause data loss if you touch things carelessly.
The first step in order to install NextCloud 12 is to install a
web server and
PHP. Although you can adapt this guide for many Ubuntu versions I suggest you to stick with
Ubuntu 16.04 or higher since
PHP7 is included. PHP7 brings many improvements over the past versions and will boost NextCloud too, as a matter of fact PHP7 is required since NextCloud 11. You will need
root access during this procedure. The following procedure will install
apache as webserver. Input the commands one by one to avoid errors!
Ubuntu 16.04Ubuntu 16.10Ubuntu 17.04Ubuntu 17.10
Open a terminal and input the following commands:
|
# apt-get install apache2 libapache2-mod-php7.0 bzip2
# apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
# apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip
|
Step2: Database selection
Now that you have set up the environment, all that is left is to choose a database that will support the installation. You have three choices:
- SQLite: is a single-file database. It is suggested only for small installations since it will slow NextCloud down sensibly.
- MariaDB/MySQL: are popular open source databases especially amongst web developers. It is the suggested choice.
- PostgreSQL: a popular enterprise-class database. More complicated than MySQL/MariaDB.
Now, this choice won’t really alter the functionality of NextCloud (except if you use SQLite), so pick whatever you know best. If you’re unsure pick MariaDB/MySQL.
SQLiteMySQL/MariaDBPostgreSQL
Install the software:
|
# apt-get install sqlite3 php-sqlite3
|
Step 3: Install NextCloud
The last step is to actually get the software, configure it and run it.
Ubuntu
With these step we download the software and extract it:
|
# cd /var/www
# wget https://download.nextcloud.com/server/releases/latest-12.tar.bz2 -O nextcloud-12-latest.tar.bz2
# tar -xvjf nextcloud-12-latest.tar.bz2
# chown -R www-data:www-data nextcloud
# rm nextcloud-12-latest.tar.bz2
|
Now we need to create a new file in /etc/apache2/sites-available/nextcloud.conf . Feel free to use whatever editor you feel comfortable with and add the following lines:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
|
Once done it’s time to enable the new site and enable apache modsthat are needed by NextCloud:
|
# a2ensite nextcloud
# a2enmod rewrite headers env dir mime
# systemctl restart apache2
|
Step 4: Configuring firewall
This step is essential when your firewall is enabled. If your firewall is enabled you won’t be able to access your NextCloud 12 instance; on the other hand if it isn’t enabled you shouldn’t have any problems and you can simply skip this step.
Tip!
Keep in mind having a firewall enabled is a good security practiceand you should already have one enabled.
In order for the firewall to work, it must be enabled. This guide
will not include this part. When you enable a firewall many things can go wrong, e.g. you’re using
SSH, you enable the firewall and your connection is cut and can’t connect otherwise, hence you should carefully
review the documentation from your distribution.
To open the ports needed by NextCloud 12 follow these steps:
UFWIPtables
UFW is the default firewall in Ubuntu, if you’re using one, you’re probably using UFW.
|
# ufw allow http
# ufw allow https
|
Step 5: Install
Once you’re done with selecting the database, it’s time to install everything. Head to http://YOUR_IP_ADDRESS/nextcloud/ and you will be facing the following screen:
Nextcloud 12 installation
Select an administrator username and password, then you can select the data folder, but if you don’t know what you’re doing it’s best if you leave it with the default value. Then click on “Storage & Database” to select the database you chose during step 2. Fill everything and if you’ve followed all the steps correctly you should be seeing the Files app:
Nextcloud 12 Files App