How To Install Nextcloud on Debian 10

Install the Required Packages

Nextcloud is a PHP web application. It requires PHP, a web server (Apache), and a database (MariaDB).

apt install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip


root@my:~# apt install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip
Reading package lists... Done
Building dependency tree
Reading state information... Done
mariadb-server is already the newest version (1:10.3.18-0+deb10u1).
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapache2-mod-php7.3 libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4
libjansson4 liblua5.2-0 libzip4 php7.3-cgi php7.3-curl php7.3-gd
php7.3-mbstring php7.3-xml php7.3-zip ssl-cert
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser
    php-pear openssl-blacklist
    The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php 
libapache2-mod-php7.3 libapr1 libaprutil1 libaprutil1-dbd-sqlite3

After that's finished, restart Apache and check the status.

systemctl restart apache2.service

systemctl status apache2.service


root@my:~# systemctl restart apache2.service
root@my:~# systemctl status apache2.service
● apache2.service - The Apache HTTP Server
 Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
 Active: active (running) since Sat 2019-12-14 14:57:29 EST; 4s ago
Process: 27276 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCC
Main PID: 27280 (apache2)
    Tasks: 6 (limit: 2359)
 Memory: 14.6M

Set Up Your Database

Set up a new root password when asked. You can accept the defaults for everything.


Sign in to MariaDB using the root password that you just set.

mysql -u root -p

Create a new database to use with Nextcloud.


Set up a new database user to access your Nextcloud database.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';

Grant the permissions for the nextclouduser to access the database.

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost';

Flush the privileges and exit MariaDB.


Download Nextcloud



root@my# wget
--2019-12-14 15:11:53--
Resolving (, 2a01:4f8:130:32f1::52
Connecting to (||:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 121671144 (116M) [application/zip]
Saving to: ‘’
nextcloud-16.0.1.zi 100%[===================>] 116.03M  94.3MB/s    in 1.2s 
2019-12-14 15:11:54 (94.3 MB/s) - ‘’ saved [121671144/121671144]

Install Nextcloud

Unzip the Nextcloud zip file where it is.

unzip nextcloud-*.zip

Copy the extracted folder into your web root directory.

cp -r /home/user/nextcloud /var/www/html/nextcloud   

Change the ownership of nextcloud to www-data, the same user running Apache.

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

Open the browser, and navigate to your Nextcloud server: http://Server_IP/nextcloud.