Welcome to our guide on how to install Nextcloud 23 on Ubuntu 22.04|20.04|18.04 Linux system. Nextcloud is an open-source file-sharing service that is self-hosted. It is a fork of Owncloud and it gives you collaboration features similar to what you get on Dropbox. Some of the collaborative features of Nextcloud are:
- Has Media Player for playing shared media content
- Has contact management feature
- File sync and sharing – With notes to shares, searching in comments, recovery of files
- Video calls with chat and MCU, SIP-Bridge, ext. Signaling backend integration
- Online document editor/reader
- Calendar Management e.t.c.
You can extend Nextcloud functionalities via add-on applications. For Desktop and Android users, applications are available to install and connect to Nextcloud server.
Install Nextcloud on Ubuntu
Install Nextcloud 23 on Ubuntu 22.04|20.04|18.04
Nextcloud dependencies are:
- PHP
- Apache / Nginx web server
- MySQL / MariaDB Database server
Here are the steps for installing Nextcloud on Ubuntu 22.04|20.04|18.04
Step 1: Install PHP and Apache Web Server
PHP is a basic requirement for Nextcloud code. Install it on Ubuntu 22.04|20.04|18.04 by running the following command:
sudo apt update
sudo apt install -y php-cli php-fpm php-json php-intl php-imagick php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath apache2 libapache2-mod-php
The version of PHP installed on Ubuntu 22.04 is 8.0, 20.04 is 7.4, 18.04 is 7.2:
Set PHP variables to suit your use.
$ sudo vim /etc/php/*/apache2/php.ini
date.timezone = Africa/Nairobi
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300
Restart apache2 service:
sudo systemctl restart apache2
Step 2: Install MySQL / MariaDB Database Server.
NextCloud can use MySQL, MariaDB, PostgreSQL or SQLite database to store its data. In this guide, we will use MariaDB or MySQL database server.
sudo apt -y install mariadb-server
Secure MariaDB database server:
sudo mysql_secure_installation
Change authentication plugin to allow use of root password.
$ sudo mysql -u root
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
FLUSH PRIVILEGES;
QUIT;
After the installation of the database server, you need to create a database and user for Nextcloud
$ mysql -uroot -p
CREATE USER 'nextcloud'@'localhost' identified by 'StrongPassword';
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; FLUSH PRIVILEGES;
QUIT;
Don’t forget to replace StrongPassword
with your database user password.
Confirm if the user can connect to the database with the provided password:
$ mysql -u nextcloud -p
Enter password: <ENTER PASSWORD>
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 34
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> QUIT
Bye
Step 3: Download and Install Nextcloud
Nextcloud is distributed as a zip file. Check for the latest release from Nextcloud download page before pulling the archive.
Download Nextcloud zip package:
sudo apt install -y wget unzip
wget https://download.nextcloud.com/server/releases/latest-23.zip
Once the file is downloaded, extract it:
unzip latest-23.zip
Move the resulting folder to /srv
sudo mv nextcloud/ /srv
Change directory permissions to the www-data
user
sudo chown -R www-data:www-data /srv/nextcloud/
Step 4: Configure Apache Web Server
Create a VirtualHost file for Nextcloud:
sudo vim /etc/apache2/conf-enabled/nextcloud.conf
Paste the following content into the file:
<VirtualHost *:80>
ServerAdmin [email protected]example.com
DocumentRoot /srv/nextcloud/
ServerName example.com
ServerAlias www.example.com
ErrorLog /var/log/apache2/nextcloud-error.log
CustomLog /var/log/apache2/nextcloud-access.log combined
<Directory /srv/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
SetEnv HOME /srv/nextcloud
SetEnv HTTP_HOME /srv/nextcloud
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Enable required Apache modules and restart the service:
sudo a2enmod rewrite dir mime env headers
sudo systemctl restart apache2
Visit the pagehttp://example.com
to finish the setup.
1.
Create an admin user account
2.
Specify data directory – The owner should be userwww-data
and group.
3.
Provide database connection settings as created in Step 2
Click “Finish Setup” butto to complete installation of Nextcloud on Ubuntu
Thanks for using our tutorial to Install Nextcloud on Ubuntu 22.04|20.04|18.04. I hope this was helpful.