Practical Linux, Windows Server and cloud guides for IT pros.

How to Install and Configure Nextcloud on Ubuntu

Nextcloud is a free, open-source, and most widely used file share and collaboration platform that allows you to host your own private cloud for documents, photos, etc. This guide will demonstrate how to install this on your very own Ubuntu server Nextcloud requires a LAMP stack to run.

Filed under

Published

Written by

Nextcloud Admin Account Setup Page

Nextcloud is a free, open-source, and most widely used file share and collaboration platform that allows you to host your own private cloud for documents, photos, etc. This guide will demonstrate how to install this on your very own Ubuntu server

Quick Answer

  1. Install prerequisites: Apache, PHP 8.x, and MariaDB (or MySQL)
  2. Download Nextcloud and extract to /var/www/html/nextcloud
  3. Create a MariaDB database and user for Nextcloud
  4. Configure Apache with a virtual host pointing to the Nextcloud directory
  5. Complete the web-based setup wizard at http://your-server/nextcloud

Requirements:

  • Server with Ubuntu installed
  • A valid domain name pointed with your server IP

Step 1 – Prepare your Server

Log into the server as root, run the following command to update your base system with the latest available packages.

apt-get update -y

Step 2 – Configure Ubuntu as a LAMP Server

Nextcloud requires a LAMP stack to run. LAMP stands for Linux, Apache, MySQL and PHP.

Run the following command to install:

apt-get install apache2 mariadb-server libapache2-mod-php php php-gmp php-bcmath php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip bzip2 -y

Once all the packages are installed, edit the php.ini file and change these values.

nano /etc/php/7.4/apache2/php.ini

Change the following lines:

memory_limit = 512M

date.timezone = Europe/London

Save and close the file when you are finished. Then, restart the Apache service to apply the changes:

systemctl restart apache2

Step 3 – Create a Nextcloud Database

NextCloud uses MariaDB for all data storage. Lets configure MariaDB.

mysql

create a database and user with the following command:

create database nextclouddb;
grant all on nextclouddb.* to 'nextcloud'@'localhost' identified by 'mysupersafepassword';

Next, flush the privileges and exit:

flush privileges;
exit;

Step 4 – Download and Install NextCloud

NextCloud is available from the following page, at the time of writing the latest version was :

wget https://download.nextcloud.com/server/releases/nextcloud-23.0.1.tar.bz2

Now Extract Nextcloud:

tar -jxvf nextcloud-23.0.1.tar.bz2

Now move folder to the Apache web root directory

mv nextcloud /var/www/html/

Fix the permissions so the apache service can read the directory

chown -R www-data:www-data /var/www/html/nextcloud
chmod -R 775 /var/www/html/nextcloud

Once you are done, you can proceed to configure the Apache server.

Step 5 – Configure Apache for Nextcloud

Next, you will need to create an Apache virtual host configuration file to serve Nextcloud.

You can create it with the following command:

nano /etc/apache2/sites-available/nextcloud.conf

Add the following lines:

<VirtualHost *:80>
        DocumentRoot "/var/www/html/nextcloud"
        ServerName mynextcloud.turbogeek.co.uk

        ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
        CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined

        <Directory /var/www/html/nextcloud/>
            Require all granted
            Options FollowSymlinks MultiViews
            AllowOverride All

           <IfModule mod_dav.c>
               Dav off
           </IfModule>

        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
        Satisfy Any

       </Directory>

</VirtualHost>

Now enable the Apache virtual host plugin

a2ensite nextcloud.conf
a2enmod rewrite headers env dir mime setenvif ssl
systemctl reload apache2

Step 6 – Point your DNS at your Server

I use Cloudflare for my DNS, update your domain DNS to point at this server.

Now, open your web browser and access the Nextcloud using the URL, my example is http://mynextcloud.turbogeek.co.uk. You should see the following page:

Create your own admin account password and make sure you scroll down and add the database settings we configured in step 3.

Next Steps

Next you will want to get content into Nextcloud. This can be done via Windows, Linux or Mobile. Simply download the client from the nextcloud website and can start sharing your files. https://nextcloud.com/install/#install-clients

Elsewhere On TurboGeek:  How to Enable Remote Access on Ubuntu: SSH vs XRDP vs VNC

Find more on the site

Keep reading by topic.

If this post was useful, the fastest way to keep going is to pick the topic you work in most often.

Want another useful post?

Browse the latest posts, or support TurboGeek if the site saves you time regularly.

Translate ยป