In this How we are going to setup our very own working NextCloud. So without wasting our time , lets start. We need a working CentOs 8 Linux distro. If you don’t know how to install it, Follow my youtube video [ https://youtu.be/I2dS_pCPhKw ] Once we have our working CentOs 8, perform the following task: Install Epel- Repo [root@docserver ~]# yum -y install epel-release Update the Server [root@docserver ~]# yum -y update Install Apache & some important tools & utilities. [root@docserver ~]# yum -y install httpd yum-utils unzip policycoreutils-python-utils mlocate bzip2 tar vim wget [root@docserver ~]# httpd -v Server version: Apache/2.4.37 (centos) Server built: Sep 15 2020 15:41:16 Start and enable Apache [root@docserver ~]# systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. [root@docserver ~]# systemctl start httpd Create a Virtual host [root@docserver ~]# vim /etc/httpd/conf.d/nextcloud.conf <VirtualHost *:80> DocumentRoot /var/www/html/nextcloud/ ServerName docserver.itpings.com <Directory> Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost> :wq save and quit Install mod_ssl [root@docserver ~]# yum -y install mod_ssl Adding firewall rules for port 80 and 443 [root@docserver ~]# firewall-cmd –add-port=80/tcp –permanent [root@docserver ~]# firewall-cmd –add-port=443/tcp –permanent [root@docserver ~]# firewall-cmd –reload Add User for NextCloud Server [root@docserver ~]# useradd nextcloud [root@docserver ~]# passwd nextcloud ********* ********* [root@docserver ~]# usermod -a nextcloud -G wheel [root@docserver ~]# id nextcloud uid=1001(nextcloud) gid=1001(nextcloud) groups=1001(nextcloud),10(wheel) Download NextCloud in zip or tar format [root@docserver opt]# wget https://download.nextcloud.com/server/releases/nextcloud-20.0.1.zip Create Directory nextcloud inside /var/www/html [root@docserver opt]# mkdir /var/www/html/nextcloud [root@docserver opt]# cd /var/www/html/nextcloud [root@docserver nextcloud]# pwd /var/www/html/nextcloud Here Create data directory [root@docserver nextcloud]# mkdir data Uncompress nextcloud-20.0.1.zip [root@docserver opt]# unzip nextcloud-20.0.1.zip copy the content of nexcloud folder to /var/www/html/nextcloud Now Make sure you set the permission properly [root@docserver var]# chown apache:apache -R www/ [root@docserver var]# chmod 775 -R www/ [root@docserver var]# systmectl restart httpd Installing PHP 7.4 Downoading rpm from Remi Repo [root@docserver ~]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm Enable Remi Repo [root@docserver ~]# yum module reset php [root@docserver ~]# yum -y module install php:remi-7.4 Now install required php modules [root@docserver ~]# yum -y install php-mbstring php php-gd php-intl php-pecl-apcu php-opcache php-json php-pecl-zip php-pear php-pecl-imagick php-fpm php-pecl-redis5 php-pgsql php-common php-pdo php-xml php-lz4 php-pecl-crypto php-pecl-rar php-pecl-pq php-pecl-lzf php-cli php-pecl-apcu-bc Installing REDIS [ Opensource Cache ] [root@docserver ~]# yum -y install redis [root@docserver ~]# systemctl enable redis Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service. [root@docserver ~]# systemctl start redis Installing PostgreSQl **Note: [ All details of how to install Available on postgresql.org/download/linux/redhat page ] Downloading postgresql rpm from external repo [root@docserver ~]# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm Now Disable PostgreSQL from CentOS repository [root@docserver ~]# yum module disable postgresql Failed to set locale, defaulting to C.UTF-8 PostgreSQL common RPMs for RHEL/CentOS 8 – x86_ 840 kB/s | 476 kB 00:00 PostgreSQL 13 for RHEL/CentOS 8 – x86_64 446 kB/s | 184 kB 00:00 PostgreSQL 12 for RHEL/CentOS 8 – x86_64 895 kB/s | 408 kB 00:00 PostgreSQL 11 for RHEL/CentOS 8 – x86_64 1.2 MB/s | 598 kB 00:00 PostgreSQL 10 for RHEL/CentOS 8 – x86_64 865 kB/s | 403 kB 00:00 PostgreSQL 9.6 for RHEL/CentOS 8 – x86_64 869 kB/s | 392 kB 00:00 PostgreSQL 9.5 for RHEL/CentOS 8 – x86_64 707 kB/s | 346 kB 00:00 Dependencies resolved. Package Architecture Version Repository Size Disabling modules: postgresql Transaction Summary Is this ok [y/N]: y Complete! Now Installing Postgresql from External Repo [root@docserver ~]# yum install -y postgresql13-server Initialize the database and enabling it [root@docserver ~]# /usr/pgsql-13/bin/postgresql-13-setup initdb Initializing database … OK [root@docserver ~]# systemctl enable postgresql-13 Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-13.service → /usr/lib/systemd/system/postgresql-13.service. [root@docserver ~]# systemctl start postgresql-13 Setup password and switching user [root@docserver ~]# passwd postgres Now switch to postgres user [root@docserver ~]# su -l postgres Entering Database [postgres@docserver ~]$ psql psql (13.1) Type “help” for help. postgres=# Creating Database user and Database for NextCloud postgres=# create user nextclouduser with password ‘abc123’; CREATE ROLE Create a database postgres=# create database nextclouddb; CREATE DATABASEne Give NextCloud user rights to access the database. postgres=# grant all privileges on database nextclouddb to nextclouduser; GRANT Now exit postgres=# \q [postgres@docserver ~]$ exit logout Make sure the following is enabled in PostgreSql Config Now we need to enable connection [root@docserver ~]# vim /var/lib/pgsql/13/data/pg_hba.conf IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 [ we can check with md5 as well ] [root@docserver ~]# systemctl restart postgresql-13 Now we would install Lets Encrypt for SSL [root@docserver nextcloud]# yum install snapd [root@docserver nextcloud]# snap install core [root@docserver nextcloud]# systemctl start snapd [root@docserver nextcloud]# systemctl enable snapd [root@docserver nextcloud]# ln -s /var/lib/snapd/snap /snap [root@docserver nextcloud]# snap install –classic certbot [root@docserver nextcloud]# certbot –apache Follow the instructions and thats it ! Open your Browser and type the ip address https://<youripaddress.com> of your machine and give details and complete the setup. You will see Screen like this to login Congratulations ! Thank you Salman A. Francis https://www.youtube.com/linuxkinghttps://www.tekco.net