NextCloud is an open-source, self-hosted cloud storage solution used for creating and using file hosting services. It offers on-premise access and sync service that allows you to sync and share files in a secure way. NextCloud is very similar to other cloud storage solutions such as Dropbox, Google Drive, and One Drive. It provides a client for all major operating systems including Linux, macOS, Windows, iOS, and Android. If you are looking for a free cloud storage solution, then NextCloud is the best option for you.
In this post, we will show you how to install NextCloud on Oracle Linux 8.
Also Read
Real-World Case Study for HIPAA Storage and Sharing: Nextcloud & HIPAA Compliance
Step 1 – Install LAMP Stack
Before starting, you will need to install Apache, MariaDB, and PHP on your server. First, install the Apache and MariaDB server using the following command:
dnf install httpd mariadb-server -y
NextCloud latest version supports only PHP version 7.4. By default, the PHP version is set to PHP 7.2 in Oracle Linux 8 default repo. In order to install the latest PHP 7.4, you will need to reset the default PHP streams.
Run the following command to reset the default PHP:
dnf module reset php
Next, enable PHP version 7.4 using the following command:
dnf module enable php:7.4
Next, install PHP 7.4 with other extensions using the following command:
dnf install php php-fpm php-curl php-gd php-intl php-json php-ldap php-mbstring php-mysqlnd php-xml php-zip php-opcache unzip curl -y
After the successful installation, start the Apache, php-fpm, and MariaDB services and enable them to start after the system reboot:
systemctl start httpd systemctl enable httpd systemctl start mariadb systemctl enable mariadb systemctl start php-fpm systemctl enable php-fpm
Also Read
How to Install LAMP Server on Oracle Linux 8
Step 2 – Configure MariaDB Database for NextCloud
NextCloud uses MariaDB or MySQL to store its data, so you will need to create a database and user for NextCloud. First, log in to MariaDB with the following command:
mysql -u root -p
Once you are logged in, create a database and user with the following command:
CREATE DATABASE nextclouddb; CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'securepassword';
Next, grant all the privileges to the NextCloud database using the following command:
GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextclouduser'@'localhost';
Next, flush the privileges and exit from the MariaDB shell using the command below:
FLUSH PRIVILEGES; EXIT;
Step 3 – Install NextCloud
At the time of writing this tutorial, the latest version of NextCloud is 24. You can download it from their official download page using the following command:
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.0.zip
Once the download is completed, extract the downloaded file to the Apache web root directory with the following command:
unzip nextcloud-24.0.0.zip -d /var/www/html/
Next, create a data directory for NextCloud with the following command:
mkdir -p /var/www/html/nextcloud/data
Next, change the ownership of NextCloud directory to Apache:
chown -R apache:apache /var/www/html/nextcloud/
Step 4 – Configure Apache for NextCloud
Next, you will need to create an Apache virtual host configuration file to host NextCloud using the Apache webserver.
nano /etc/httpd/conf.d/nextcloud.conf
Add the following code:
<VirtualHost *:80> ServerName nextcloud.example.com DocumentRoot /var/www/html/nextcloud ErrorLog /var/log/httpd/nextcloud_error.log CustomLog /var/log/httpd/nextcloud_access.log combined </VirtualHost>
Save the file when you are finished, then restart the Apache service to apply the changes:
systemctl restart httpd
You can check the status of Apache using the following command;
systemctl status httpd
You should get the following output:
● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2022-05-18 12:23:29 EDT; 6s ago Docs: man:httpd.service(8) Main PID: 4189 (httpd) Status: "Started, listening on: port 80" Tasks: 213 (limit: 23694) Memory: 26.4M CGroup: /system.slice/httpd.service ├─4189 /usr/sbin/httpd -DFOREGROUND ├─4190 /usr/sbin/httpd -DFOREGROUND ├─4191 /usr/sbin/httpd -DFOREGROUND ├─4192 /usr/sbin/httpd -DFOREGROUND └─4193 /usr/sbin/httpd -DFOREGROUND May 18 12:23:28 oraclelinux systemd[1]: httpd.service: Succeeded. May 18 12:23:28 oraclelinux systemd[1]: Stopped The Apache HTTP Server. May 18 12:23:28 oraclelinux systemd[1]: Starting The Apache HTTP Server...
Step 5 – Configure Firewall
If firewalld is installed and running on your server, then you will need to allow port 80 through firewall. You can allow it using the following command:
firewall-cmd --add-port=80/tcp --zone=public --permanent
Next, reload the firewall to apply the changes:
firewall-cmd --reload
Step 6 – Access NextCloud Dashboard
To access NextCloud, open your web browser and type the URL http://nextcloud.example.com. You should see the following screen:
Provide your administrator account name and password, define your data directory and database credentials, and click on the Finish setup button. You will be redirected to the Recommended apps installation login page:
Click on the Install recommended apps. You should see the NextCloud dashboard:
Conclusion
In this post, you learned how to install NextCloud on Oracle Linux 8. You can now easily create and share documents, calendars, etc with your friends and family. Get started on dedicated hosting from Atlantic.Net.