Install Config Wiki

All about installing, configuring and troubleshooting

User Tools

Site Tools


configure_ubuntu_server_20_04_host_nextcloud_hub_21

Configure Ubuntu Server 20.04 to Host NextCloud Hub 21

First, Install OpenSSH on Linux Ubuntu Server to Gain Remote Access

After there is a fresh installation of Ubuntu 20.04.2 on RAID-1, then SSH should be installed to provide the ability to access the server to install additional prerequisites to hosting NextCloud Hub.

sudo apt install openssh-server

Check the status of the ssh service after it is installed.

sudo systemctl status ssh

Allow ssh through the Ubuntu firewall.

sudo ufw allow ssh

Check the local network IP address of the server in order to be able to login using ssh from a command line of a Windows OS on the same local network.

ip a

Example Result:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether d4:ae:52:c5:7b:a9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.123/24 brd 192.168.2.255 scope global dynamic eno1
       valid_lft 84114sec preferred_lft 84114sec
    inet6 fe80::d6ae:52ff:fec5:7ba9/64 scope link
       valid_lft forever preferred_lft forever

The above example results show that the version-4 IP address that has been assigned to the Ubuntu Linux server's network interface card is 192.168.2.123 which is the address to log into the Ubuntu server remotely using SSH from a command prompt of a Windows system, as follows:

C:\WINDOWS\system32>ssh ourusername@192.168.2.123

On the first remote login from each Windows system, the user will need to accept the ECDSA key offered by OpenSSH from the Ubuntu Server. The key will be stored on the Windows device for future access. Notice that the correct answer is 'yes' and not merely 'y' when asked to accept the key fingerprint.

The authenticity of host '192.168.2.123 (192.168.2.123)' can't be established.
ECDSA key fingerprint is SHA256:mBjFCbKnDahVeVkYaqY7Le2eFiZ+GimRGj7D4vCH/i0.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.2.123' (ECDSA) to the list of known hosts.
ourusername@192.168.2.123's password:
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-72-generic x86_64)

ourusername@servername:~$

Install Apache Web Server

If you have not done so already, install Apache webserver.

sudo apt update

sudo apt install apache2

The process begins:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjansson4 liblua5.2-0 ssl-cert
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,865 kB of archives.
After this operation, 8,080 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

The installation of Apache2 continues and concludes:

Get:1 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libapr1 amd64 1.6.5-1ubuntu1 [91.4 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libaprutil1 amd64 1.6.1-4ubuntu2 [84.7 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-4ubuntu2 [10.5 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libaprutil1-ldap amd64 1.6.1-4ubuntu2 [8,736 B]
Get:5 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libjansson4 amd64 2.12-1build1 [28.9 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal/main amd64 liblua5.2-0 amd64 5.2.4-1.1build3 [106 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2-bin amd64 2.4.41-4ubuntu3.1 [1,180 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2-data all 2.4.41-4ubuntu3.1 [158 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2-utils amd64 2.4.41-4ubuntu3.1 [83.8 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 apache2 amd64 2.4.41-4ubuntu3.1 [95.5 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal/main amd64 ssl-cert all 1.0.39 [17.0 kB]
Fetched 1,865 kB in 1s (2,070 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libapr1:amd64.
(Reading database ... 71318 files and directories currently installed.)
Preparing to unpack .../00-libapr1_1.6.5-1ubuntu1_amd64.deb ...
Unpacking libapr1:amd64 (1.6.5-1ubuntu1) ...
Selecting previously unselected package libaprutil1:amd64.
Preparing to unpack .../01-libaprutil1_1.6.1-4ubuntu2_amd64.deb ...
Unpacking libaprutil1:amd64 (1.6.1-4ubuntu2) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.
Preparing to unpack .../02-libaprutil1-dbd-sqlite3_1.6.1-4ubuntu2_amd64.deb ...
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2) ...
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack .../03-libaprutil1-ldap_1.6.1-4ubuntu2_amd64.deb ...
Unpacking libaprutil1-ldap:amd64 (1.6.1-4ubuntu2) ...
Selecting previously unselected package libjansson4:amd64.
Preparing to unpack .../04-libjansson4_2.12-1build1_amd64.deb ...
Unpacking libjansson4:amd64 (2.12-1build1) ...
Selecting previously unselected package liblua5.2-0:amd64.
Preparing to unpack .../05-liblua5.2-0_5.2.4-1.1build3_amd64.deb ...
Unpacking liblua5.2-0:amd64 (5.2.4-1.1build3) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../06-apache2-bin_2.4.41-4ubuntu3.1_amd64.deb ...
Unpacking apache2-bin (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../07-apache2-data_2.4.41-4ubuntu3.1_all.deb ...
Unpacking apache2-data (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../08-apache2-utils_2.4.41-4ubuntu3.1_amd64.deb ...
Unpacking apache2-utils (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package apache2.
Preparing to unpack .../09-apache2_2.4.41-4ubuntu3.1_amd64.deb ...
Unpacking apache2 (2.4.41-4ubuntu3.1) ...
Selecting previously unselected package ssl-cert.
Preparing to unpack .../10-ssl-cert_1.0.39_all.deb ...
Unpacking ssl-cert (1.0.39) ...
Setting up libapr1:amd64 (1.6.5-1ubuntu1) ...
Setting up libjansson4:amd64 (2.12-1build1) ...
Setting up ssl-cert (1.0.39) ...
Setting up liblua5.2-0:amd64 (5.2.4-1.1build3) ...
Setting up apache2-data (2.4.41-4ubuntu3.1) ...
Setting up libaprutil1:amd64 (1.6.1-4ubuntu2) ...
Setting up libaprutil1-ldap:amd64 (1.6.1-4ubuntu2) ...
Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-4ubuntu2) ...
Setting up apache2-utils (2.4.41-4ubuntu3.1) ...
Setting up apache2-bin (2.4.41-4ubuntu3.1) ...
Setting up apache2 (2.4.41-4ubuntu3.1) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
Processing triggers for ufw (0.36-6) ...
Processing triggers for systemd (245.4-4ubuntu3.6) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...

ourusername@servername:~$

Test the Apache Installation

In order to access the Apache2 Ubuntu Default Page to see if the web server is working, open a web browser (user agent) which has access to the local network and type the IP address of the Ubuntu server in the address bar of the web browser, and press the enter key.

192.168.2.123

Install PHP

Install the latest stable version of PHP for production use that is available in the Ubuntu repositories and which is compatible with your applications; and, in particular, which is compatible with Nextcloud Hub 21.

The Nextcloud Hub 21 blog infers that Nextcloud Hub 21 is compatible with PHP 8. A quote from the blog says, “PHP 8 compatibility can bring an additional performance boost to Nextcloud deployments.”

As to whether we need to add a new repository in order to obtain and install PHP 8, we will now see. First try installing PHP 8.0.

sudo apt install php8.0

[sudo] password for username:

The following indicates that PHP 8.0 is not yet in the Ubuntu 20.04 repositories as of today, 4-26-2021.

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php8.0
E: Couldn't find any package by glob 'php8.0'

If the Ubuntu repositories don't yet contain PHP 8, then the Debian packages for are available at the repository maintained by Ondřej Surý, a Debian developer. His repository contains multiple versions of PHP.

To enable the repository:

If Ubuntu server 20.04 happens to be missing the command “add-apt-repository” it may need to be added before adding the repository. You should skip this step, since I believe it is already installed.

sudo apt install software-properties-common

I believe that Ubuntu 20.04 as installed already has the command “add-apt-repository” So, just run this to install Ondre's PHP repository:

sudo add-apt-repository ppa:ondrej/php

If an error occurs stating: WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround, then we may need to install a fix for oerdnj's php repository.

To install the English language pack with UTF-8 locales, run:

apt install -y language-pack-en-base

Here is the resulting echo from Ubuntu terminal:

The following additional packages will be installed:
  language-pack-en
  
  * * *

Generating locales (this might take a while)...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IL.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

Then run the following to install the Ondrej/php repository and avoid the UTF-8 error.

LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt update
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:4 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-security InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
11 packages can be upgraded. Run 'apt list --upgradable' to see them.
sudo apt list --upgradable

sudo apt upgrade

After this PPA is enable, then PHP 8 can be installed. In addition, PHP 8 can be installed and configured as an Apache module. Php-FPM is a FastCGI process manager for PHP and requires the installation of some extra packages. By default, Php-FPM is not enabled in Apache.

Install PHP 8 as well as some required libraries for Nextcloud

sudo apt install php8.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libapache2-mod-php8.0 php-common php8.0-cli php8.0-common php8.0-opcache php8.0-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php8.0 php-common php8.0 php8.0-cli php8.0-common php8.0-opcache php8.0-readline
0 upgraded, 7 newly installed, 0 to remove and 11 not upgraded.
Need to get 4,424 kB of archives.
After this operation, 20.1 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Now let's try some Required libraries (extensions) that were previously necessary for Nextcloud under PHP 7.4.

sudo apt install php8.0-gd php8.0-mysql php8.0-curl php8.0-mbstring
sudo apt install php8.0-intl php8.0-gmp php8.0-bcmath php8.0-xml
sudo apt install libapache2-mod-php8.0 php8.0-zip php-imagick php-apcu

Configure PHP as Apache Module

It may be that php8.0 libapache2-mod-php8.0 is already installed at this point. If or when you may try to do so, you may find that the newest version is already installed. Give it a try.

sudo apt update
sudo apt list --upgradable
sudo apt upgrade

sudo apt install php8.0 libapache2-mod-php8.0

Once the packages are installed, restart Apache for the PHP module to get loaded:

sudo systemctl restart apache2

Configure Apache with PHP-FPM Php-FPM is a FastCGI process manager for PHP. Run the following command to install the necessary packages:

sudo apt update
sudo apt install php8.0-fpm libapache2-mod-fcgid

By default, PHP-FPM is not enabled in Apache. To try to enable PHP-FPM, run the following:

sudo a2enmod proxy_fcgi setenvif

Again, this may already be enabled, and you will see the follow echo in terminal:

Considering dependency proxy for proxy_fcgi:
Enabling module proxy.
Enabling module proxy_fcgi.
Module setenvif already enabled
To activate the new configuration, you need to run:
  systemctl restart apache2
sudo systemctl restart apache2
sudo a2enconf php8.0-fpm

ERROR: Conf php8.0-fpm does not exist!

To activate the changes, restart Apache:

sudo systemctl restart apache2

Let's try again (possibly this was a missed step on my part)

sudo apt install php8.0-fpm libapache2-mod-fcgid

HERE IS some housekeeping after again running sudo apt install php8.0-fpm libapache2-mod-fcgid

Creating config file /etc/php/8.0/fpm/php.ini with new version
NOTICE: Not enabling PHP 8.0 FPM by default.
NOTICE: To enable PHP 8.0 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.0-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Created symlink /etc/systemd/system/multi-user.target.wants/php8.0-fpm.service → /lib/systemd/system/php8.0-fpm.service.
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for systemd (245.4-4ubuntu3.6) ...
Processing triggers for php8.0-fpm (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...
NOTICE: Not enabling PHP 8.0 FPM by default.
NOTICE: To enable PHP 8.0 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.0-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
sudo a2enmod proxy_fcgi setenvif

sudo a2enconf php8.0-fpm
Enabling conf php8.0-fpm.
To activate the new configuration, you need to run: 
sudo systemctl reload apache2 
sudo systemctl reload apache2

Install MySQL Database Server

As of 04-26-2021, MySQL Server version 8.0.24 or 8.0.3 is the most recent version available for installation on Ubuntu 20.04 LTS.

sudo apt update
sudo apt install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
  mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0
Suggested packages:
  libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
  mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0 mysql-server-core-8.0
0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded.
Need to get 30.9 MB of archives.
After this operation, 250 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

NOTE: It should not be necessary to again install the php-mysql package to use MySQL support using PHP, since it is already installed. If it was not installed, then install with the following; but skip this since php8.0-mysql package was already installed above.

SKIP THIS-

sudo apt install mysql-server php8.0-mysql

MySQL Server is installed but must be secured.

Secure the MySQL Database Server

sudo mysql_secure_installation

VALIDATE PASSWORD COMPONENT: n

Please set the password for the root here.

New root password: <YOUR MYSQL PASSWORD>

Re-enter new password: <YOUR MYSQL PASSWORD>

Remove anonymous user: y

Normally, root should only be allowed to connect from 'localhost' and this ensures that someone cannot guess at the root password from the network.

Disallow root login remotely: n

Remove test database and access to it: y

Reload privileges tables now: y

Success.

All done!

Installing phpMyAdmin

phpMyAdmin is a web interface to manage MySQL databases and user privileges. Install phpMyAdmin on Ubuntu 20.04 LTS as follows:

sudo apt install phpmyadmin

When prompted during installation, select “Apache” as the web server running phpMyAdmin.

When prompted to create the phpMyAdmin database, provide your admin user access details and take the remaining steps to complete the installation.

Echo of Terminal During Install of PhpMyAdmin

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  dbconfig-common dbconfig-mysql icc-profiles-free javascript-common libjs-jquery libjs-openlayers libjs-sphinxdoc
  libjs-underscore libmcrypt4 php-bz2 php-google-recaptcha php-json php-mcrypt php-mysql php-phpmyadmin-motranslator
  php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log
  php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts
  php-symfony-var-exporter php-tcpdf php-twig php-twig-extensions php8.0-bz2 php8.0-mcrypt
Suggested packages:
  libmcrypt-dev mcrypt php-dbase php-libsodium php-symfony-service-implementation php-twig-doc php-symfony-translation
  www-browser php-recode php-gd2 php-pragmarx-google2fa php-bacon-qr-code php-samyoul-u2f-php-server
The following NEW packages will be installed:
  dbconfig-common dbconfig-mysql icc-profiles-free javascript-common libjs-jquery libjs-openlayers libjs-sphinxdoc
  libjs-underscore libmcrypt4 php-bz2 php-google-recaptcha php-json php-mcrypt php-mysql php-phpmyadmin-motranslator
  php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log
  php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts
  php-symfony-var-exporter php-tcpdf php-twig php-twig-extensions php8.0-bz2 php8.0-mcrypt phpmyadmin
0 upgraded, 32 newly installed, 0 to remove and 0 not upgraded.
Need to get 15.2 MB of archives.
After this operation, 68.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 libmcrypt4 amd64 2.5.8-3.4 [64.6 kB]
Get:2 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php8.0-mcrypt amd64 3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1 [16.2 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 dbconfig-common all 2.0.13 [586 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 dbconfig-mysql all 2.0.13 [1,136 B]
Get:5 http://us.archive.ubuntu.com/ubuntu focal/main amd64 icc-profiles-free all 2.0.1+dfsg-1 [549 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal/main amd64 javascript-common all 11 [6,066 B]
Get:7 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libjs-jquery all 3.3.1~dfsg-3 [329 kB]
Get:8 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php-mcrypt amd64 3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1 [3,264 B]
Get:9 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libjs-underscore all 1.9.1~dfsg-1ubuntu0.20.04.1 [99.5 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu focal/main amd64 libjs-sphinxdoc all 1.8.5-7ubuntu3 [97.1 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-google-recaptcha all 1.2.3-1 [8,500 B]
Get:12 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-psr-cache all 1.0.1-2 [5,300 B]
Get:13 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-psr-log all 1.1.2-1 [8,268 B]
Get:14 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-symfony-cache-contracts all 1.1.8-1 [6,504 B]
Get:15 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-psr-container all 1.0.0-2 [3,352 B]
Get:16 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-symfony-service-contracts all 1.1.8-1 [7,192 B]
Get:17 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-symfony-var-exporter all 4.3.8+dfsg-1ubuntu1 [18.4 kB]
Get:18 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-symfony-cache all 4.3.8+dfsg-1ubuntu1 [50.1 kB]
Get:19 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-symfony-expression-language all 4.3.8+dfsg-1ubuntu1 [20.3 kB]
Get:20 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-phpmyadmin-motranslator all 5.0.0-1 [12.2 kB]
Get:21 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-phpmyadmin-shapefile all 2.1-3 [10.6 kB]
Get:22 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-phpmyadmin-sql-parser all 4.6.1-2 [70.4 kB]
Get:23 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-phpseclib all 2.0.23-2 [182 kB]
Get:24 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-tcpdf all 6.3.5+dfsg1-1 [7,791 kB]
Get:25 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php8.0-bz2 amd64 8.0.3-1+ubuntu20.04.1+deb.sury.org+1 [10.5 kB]
Get:26 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php-bz2 all 2:8.0+82+ubuntu20.04.1+deb.sury.org+1 [6,984 B]
Get:27 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php-json all 2:8.0+82+ubuntu20.04.1+deb.sury.org+1 [6,988 B]
Get:28 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 php-mysql all 2:8.0+82+ubuntu20.04.1+deb.sury.org+1 [6,984 B]
Get:29 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-twig all 2.12.5-1 [98.8 kB]
Get:30 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 php-twig-extensions all 1.5.4-1 [10.6 kB]
Get:31 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 libjs-openlayers all 2.13.1+ds2-7 [715 kB]
Get:32 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 phpmyadmin all 4:4.9.5+dfsg1-2 [4,426 kB]
Fetched 15.2 MB in 5s (2,982 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
Selecting previously unselected package libmcrypt4.
(Reading database ... 75395 files and directories currently installed.)
Preparing to unpack .../00-libmcrypt4_2.5.8-3.4_amd64.deb ...
Unpacking libmcrypt4 (2.5.8-3.4) ...
Selecting previously unselected package php8.0-mcrypt.
Preparing to unpack .../01-php8.0-mcrypt_3%3a1.0.4-5+ubuntu20.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php8.0-mcrypt (3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package php-mcrypt.
Preparing to unpack .../02-php-mcrypt_3%3a1.0.4-5+ubuntu20.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php-mcrypt (3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package dbconfig-common.
Preparing to unpack .../03-dbconfig-common_2.0.13_all.deb ...
Unpacking dbconfig-common (2.0.13) ...
Selecting previously unselected package dbconfig-mysql.
Preparing to unpack .../04-dbconfig-mysql_2.0.13_all.deb ...
Unpacking dbconfig-mysql (2.0.13) ...
Selecting previously unselected package icc-profiles-free.
Preparing to unpack .../05-icc-profiles-free_2.0.1+dfsg-1_all.deb ...
Unpacking icc-profiles-free (2.0.1+dfsg-1) ...
Selecting previously unselected package javascript-common.
Preparing to unpack .../06-javascript-common_11_all.deb ...
Unpacking javascript-common (11) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../07-libjs-jquery_3.3.1~dfsg-3_all.deb ...
Unpacking libjs-jquery (3.3.1~dfsg-3) ...
Selecting previously unselected package libjs-underscore.
Preparing to unpack .../08-libjs-underscore_1.9.1~dfsg-1ubuntu0.20.04.1_all.deb ...
Unpacking libjs-underscore (1.9.1~dfsg-1ubuntu0.20.04.1) ...
Selecting previously unselected package libjs-sphinxdoc.
Preparing to unpack .../09-libjs-sphinxdoc_1.8.5-7ubuntu3_all.deb ...
Unpacking libjs-sphinxdoc (1.8.5-7ubuntu3) ...
Selecting previously unselected package php8.0-bz2.
Preparing to unpack .../10-php8.0-bz2_8.0.3-1+ubuntu20.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php8.0-bz2 (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package php-bz2.
Preparing to unpack .../11-php-bz2_2%3a8.0+82+ubuntu20.04.1+deb.sury.org+1_all.deb ...
Unpacking php-bz2 (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package php-google-recaptcha.
Preparing to unpack .../12-php-google-recaptcha_1.2.3-1_all.deb ...
Unpacking php-google-recaptcha (1.2.3-1) ...
Selecting previously unselected package php-json.
Preparing to unpack .../13-php-json_2%3a8.0+82+ubuntu20.04.1+deb.sury.org+1_all.deb ...
Unpacking php-json (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package php-mysql.
Preparing to unpack .../14-php-mysql_2%3a8.0+82+ubuntu20.04.1+deb.sury.org+1_all.deb ...
Unpacking php-mysql (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Selecting previously unselected package php-psr-cache.
Preparing to unpack .../15-php-psr-cache_1.0.1-2_all.deb ...
Unpacking php-psr-cache (1.0.1-2) ...
Selecting previously unselected package php-psr-log.
Preparing to unpack .../16-php-psr-log_1.1.2-1_all.deb ...
Unpacking php-psr-log (1.1.2-1) ...
Selecting previously unselected package php-symfony-cache-contracts.
Preparing to unpack .../17-php-symfony-cache-contracts_1.1.8-1_all.deb ...
Unpacking php-symfony-cache-contracts (1.1.8-1) ...
Selecting previously unselected package php-psr-container.
Preparing to unpack .../18-php-psr-container_1.0.0-2_all.deb ...
Unpacking php-psr-container (1.0.0-2) ...
Selecting previously unselected package php-symfony-service-contracts.
Preparing to unpack .../19-php-symfony-service-contracts_1.1.8-1_all.deb ...
Unpacking php-symfony-service-contracts (1.1.8-1) ...
Selecting previously unselected package php-symfony-var-exporter.
Preparing to unpack .../20-php-symfony-var-exporter_4.3.8+dfsg-1ubuntu1_all.deb ...
Unpacking php-symfony-var-exporter (4.3.8+dfsg-1ubuntu1) ...
Selecting previously unselected package php-symfony-cache.
Preparing to unpack .../21-php-symfony-cache_4.3.8+dfsg-1ubuntu1_all.deb ...
Unpacking php-symfony-cache (4.3.8+dfsg-1ubuntu1) ...
Selecting previously unselected package php-symfony-expression-language.
Preparing to unpack .../22-php-symfony-expression-language_4.3.8+dfsg-1ubuntu1_all.deb ...
Unpacking php-symfony-expression-language (4.3.8+dfsg-1ubuntu1) ...
Selecting previously unselected package php-phpmyadmin-motranslator.
Preparing to unpack .../23-php-phpmyadmin-motranslator_5.0.0-1_all.deb ...
Unpacking php-phpmyadmin-motranslator (5.0.0-1) ...
Selecting previously unselected package php-phpmyadmin-shapefile.
Preparing to unpack .../24-php-phpmyadmin-shapefile_2.1-3_all.deb ...
Unpacking php-phpmyadmin-shapefile (2.1-3) ...
Selecting previously unselected package php-phpmyadmin-sql-parser.
Preparing to unpack .../25-php-phpmyadmin-sql-parser_4.6.1-2_all.deb ...
Unpacking php-phpmyadmin-sql-parser (4.6.1-2) ...
Selecting previously unselected package php-phpseclib.
Preparing to unpack .../26-php-phpseclib_2.0.23-2_all.deb ...
Unpacking php-phpseclib (2.0.23-2) ...
Selecting previously unselected package php-tcpdf.
Preparing to unpack .../27-php-tcpdf_6.3.5+dfsg1-1_all.deb ...
Unpacking php-tcpdf (6.3.5+dfsg1-1) ...
Selecting previously unselected package php-twig.
Preparing to unpack .../28-php-twig_2.12.5-1_all.deb ...
Unpacking php-twig (2.12.5-1) ...
Selecting previously unselected package php-twig-extensions.
Preparing to unpack .../29-php-twig-extensions_1.5.4-1_all.deb ...
Unpacking php-twig-extensions (1.5.4-1) ...
Selecting previously unselected package libjs-openlayers.
Preparing to unpack .../30-libjs-openlayers_2.13.1+ds2-7_all.deb ...
Unpacking libjs-openlayers (2.13.1+ds2-7) ...
Selecting previously unselected package phpmyadmin.
Preparing to unpack .../31-phpmyadmin_4%3a4.9.5+dfsg1-2_all.deb ...
Unpacking phpmyadmin (4:4.9.5+dfsg1-2) ...
Setting up javascript-common (11) ...
apache2_invoke: Enable configuration javascript-common
Setting up php-mysql (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Setting up php-json (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Setting up php-phpmyadmin-shapefile (2.1-3) ...
Setting up php-psr-container (1.0.0-2) ...
Setting up php-symfony-service-contracts (1.1.8-1) ...
Setting up php8.0-bz2 (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...

Creating config file /etc/php/8.0/mods-available/bz2.ini with new version
Setting up dbconfig-common (2.0.13) ...

Creating config file /etc/dbconfig-common/config with new version
Setting up php-phpseclib (2.0.23-2) ...
Setting up icc-profiles-free (2.0.1+dfsg-1) ...
Setting up php-psr-cache (1.0.1-2) ...
Setting up php-phpmyadmin-sql-parser (4.6.1-2) ...
Setting up php-twig (2.12.5-1) ...
Setting up php-psr-log (1.1.2-1) ...
Setting up php-twig-extensions (1.5.4-1) ...
Setting up libjs-openlayers (2.13.1+ds2-7) ...
Setting up php-google-recaptcha (1.2.3-1) ...
Setting up php-symfony-var-exporter (4.3.8+dfsg-1ubuntu1) ...
Setting up libjs-jquery (3.3.1~dfsg-3) ...
Setting up libmcrypt4 (2.5.8-3.4) ...
Setting up libjs-underscore (1.9.1~dfsg-1ubuntu0.20.04.1) ...
Setting up php-symfony-cache-contracts (1.1.8-1) ...
Setting up php-tcpdf (6.3.5+dfsg1-1) ...
Setting up php-bz2 (2:8.0+82+ubuntu20.04.1+deb.sury.org+1) ...
Setting up dbconfig-mysql (2.0.13) ...
Setting up php-symfony-cache (4.3.8+dfsg-1ubuntu1) ...
Setting up php-symfony-expression-language (4.3.8+dfsg-1ubuntu1) ...
Setting up php8.0-mcrypt (3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1) ...
Setting up libjs-sphinxdoc (1.8.5-7ubuntu3) ...
Setting up php-mcrypt (3:1.0.4-5+ubuntu20.04.1+deb.sury.org+1) ...
Setting up php-phpmyadmin-motranslator (5.0.0-1) ...
Setting up phpmyadmin (4:4.9.5+dfsg1-2) ...
Determining localhost credentials from /etc/mysql/debian.cnf: Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf

Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config-db.php with new version
checking privileges on database phpmyadmin for phpmyadmin@localhost: user creation needed.
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql...  done.
dbconfig-common: flushing administrative password
Processing triggers for php8.0-fpm (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...
NOTICE: Not enabling PHP 8.0 FPM by default.
NOTICE: To enable PHP 8.0 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.0-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Processing triggers for libapache2-mod-php8.0 (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.3) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for php8.0-cli (8.0.3-1+ubuntu20.04.1+deb.sury.org+1) ...

Where to Find PhpMyAdmin from a Web Browser

By default, PhpMyAdmin is installed in the subdirectory /usr/share/phpmyadmin/

The Apache2 Default Page on localhost (i.e. the index.html page) is in the subdirectory /var/www/html

You will need to create a symlink to access PhpMyAdmin from the default website located on localhost. As an insecure example (but don't do this), you could create the symlink as follows:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Or, you could be a little more creative and create a symlink that would insert one or more randomly-named subdirectories into the default web path address. For Example:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/mysql/phpmyadmin
Then, try to access PhpMyAdmin at http://<server.local.ip.address>/mysql/phpmyadmin

Errors

You may receive the following error messages from the webpage interface when you attempt login to PhpMyAdmin:

Welcome to phpMyAdmin

Cannot log in to the MySQL server 

Username:  root

Password: 

mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'

PhpMyAdmin remote root access error Workaround. Create a new PhpMyAdmin root user and password having PhpMyAdmin access from any IP remotely

Using SSH access to the Ubuntu Server, log into the mysql console using as the MySQL user 'root' and with the password for the user root that was established when installing MySQL database server on Ubuntu. This will put you/us into the prompt for the console mysql>

sudo mysql -u root -p

Enter password:

The SSH prompt should change to the MySQL console prompt that looks like this:

mysql>

Now, create a new MySQL admin/root user with all privileges including GRANT privileges and make sure that the user can login from any IP remotely rather than only having privileges from @localhost. There are 3 choices of commands in the code block below for creating a new user from the MySQL console prompt; however, only the third choice may actually allow for logging into PhpMyAdmin as a root user from any remote IP.

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

CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

So, for example, this should work (and ensure that you are logged into the console prompt at mysql>

CREATE USER 'rootuser'@'%' IDENTIFIED BY 'YourComplex#54321Pwd!';

Now, let's grant the new user named 'rootuser' all privileges including the Grant Option, like this:

GRANT ALL PRIVILEGES ON *.* TO 'rootuser'@'%' WITH GRANT OPTION;

And lastly, run this command:

FLUSH PRIVILEGES;

Exit the MySQL console and return to the SSH user prompt, with the exit command:

mysql> exit

Now, open your web browser and log into PhpMyAdmin through a webpage on a remote device with the username 'rootuser' and the password you installed for rootuser. You should have success now.

Add Repository to Upgrade to the Latest Version of PhpMyAdmin

After successfully logging into PhpMyAdmin, there were error notices regarding deprecated items whenever clicking on the Databases tab of PhpMyAdmin – Version information: 4.9.5deb2 – Apache/2.4.41 (Ubuntu) – Database client version: libmysql - mysqlnd 8.0.3 – PHP extension: mysqliDocumentation curlDocumentation mbstringDocumentation – PHP version: 8.0.3

Deprecation Notice in ./libraries/classes/Di/ReflectorItem.php#82
 Method ReflectionParameter::getClass() is deprecated

Backtrace

./libraries/classes/Di/ReflectorItem.php#50: PhpMyAdmin\Di\ReflectorItem->_resolveArgs(
array,
array,
)
./libraries/classes/Di/FactoryItem.php#27: PhpMyAdmin\Di\ReflectorItem->invoke(array)
./libraries/classes/Di/Container.php#62: PhpMyAdmin\Di\FactoryItem->get(array)
./libraries/classes/Di/AliasItem.php#44: PhpMyAdmin\Di\Container->get(
string 'PhpMyAdmin\\Controllers\\Server\\ServerDatabasesController',
array,
)
./libraries/classes/Di/Container.php#62: PhpMyAdmin\Di\AliasItem->get(array)
./server_databases.php#28: PhpMyAdmin\Di\Container->get(
string 'ServerDatabasesController',
array,
)

https://launchpad.net/~phpmyadmin/+archive/ubuntu/ppa

PPA for phpMyAdmin

Adding this PPA to your system You can update your system with unsupported packages from this untrusted PPA by adding ppa:phpmyadmin/ppa to your system's Software Sources. (Read about installing) https://launchpad.net/+help-soyuz/ppa-sources-list.html

sudo add-apt-repository ppa:phpmyadmin/ppa

sudo apt update

sudo apt list --upgradable

sudo apt upgrade

sudo systemctl reload apache2

Access PhpMyAdmin from your web browser and login as rootuser. Then select the Databases Tab. No more deprecation error messages.

Check the Home Icon of PhpMyAdmin and see the current version.

phpMyAdmin

Version information: 5.0.4deb2~bpo10+1+focal1

One final matter. During upgrade, the following message was echoed in the terminal.

The following package was automatically installed and is no longer required:
  php-twig-extensions
Use 'sudo apt autoremove' to remove it.

Running Autoremove as recommended:

sudo apt autoremove

Response to running apt autoremove:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  php-twig-extensions
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 78.8 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 80340 files and directories currently installed.)
Removing php-twig-extensions (1.5.4-1) ...

Installing NextCloud 21.0.1 on Linux Ubuntu 20.04 LTS with Apache2 Webserver

Open PhpMyAdmin and Create a Database:

Example:

database name: yourusername_nextcloud

Select the Database from the left panel

Create Username - yourusername - and Grant All Privileges for the username on the database.

db username: yourusername

on: localhost

db Password: $Pwd#4646116 (Something that meets complexity requirements)

Download the NextCloud 21.0.1 Zip File to the Server

SSH to login to the server and obtain a command line prompt. Make a directory names downloads.

sudo mkdir /downloads/

Change directory to the downloads directory:

cd /downloads/ 

Download the nextcloud-21.0.1.zip file using the option to change the target filename to nextcloud.zip in the /downloads/ directory.

 
sudo wget -O nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip

Extract the Downloaded nextcloud.zip file to the root directory of the Website virtual directory

Example Extract Folder to the path of the root directory of the website:

/var/www/exampledomain/public_html/examledomain_com/nextcloud/

First, Install the Unzip utility

sudo apt install unzip 

Unzip the freshly downloaded nextcloud.zip file into the directory one step in the path before the root 'nextcloud' sub-directory of your website virtual directory, which will extract the files into the nextcloud sub-directory. So the target subdirectory should terminate at /exampledomain_com/ because /nextcloud/ will be the sub-directory where the nextcloud files will be extracted per the structure within the Zip file. Change 'exampledomain' to your secondary domain name where it appears in the unzip path below. You must adjust the path based on where you set up the virtual directory in your website.conf file in the /etc/apache2/sites-available/ directory, and ultimately, as the path of your website.conf file enabled in you /sites-enabled/ directory.

You can make the directory path first, or just properly extract the nextcloud.zip file to create the path. For example, run the following and substitute your fully qualified secondary domain name instead of domain_org in the following new web path.

cd /var/www/

sudo mkdir /var/www/domain_org/

cd /var/www/domain_org

sudo mkdir /var/www/domain_org/public_html/

cd /var/www/domain_org/public_html

sudo mkdir /var/www/domain_org/public_html/domain_org/
cd /downloads/

sudo unzip nextcloud.zip -d /var/www/domain_org/public_html/domain_org/

Make the Apache web-user the owner of the nextcloud directory so that the Apache server has access to the website root and all subdirectories.

sudo chown www-data:www-data /var/www/domain_org/public_html/domain_org/nextcloud/ -R

Setup a MySQL Database for the Nextcloud Installation using PhpMyAdmin

Login as rootuser in PhpMyAdmin from a Web Browser on the local network and Create a Database for the Nextcloud Installation:

Select the Database Tab, and where it says New Database Name, provide the following information.

Example:

database name: yourusername_nextcloud Create it.

Select that new empty Database from the left panel.

Select the Privileges tab.

Create the Username - yourusername - and select 'Grant All Privileges' for the username on the new Database.

db username: yourusername

on: localhost

db Password: $Pwd#4646116 (Something that meets the applicable complexity requirements)

Configure Apache for Nextcloud

Enable a few Apache modifications for Nextcloud to properly run. I believe that this enables the URL Rewrite Module.

sudo a2enmod headers env dir mime rewrite

sudo service apache2 restart

Configure an Apache Virtual Host File for the Fully Qualified Domain and Local IP

Change directories to the sites available virtual host subdirectory.

cd /etc/apache2/sites-available/

ls
sudo cp 000-default.conf yourdomain-org.conf
sudo vim yourdomain-org.conf
<VirtualHost *:80>

    ServerName yourdomain.org  www.yourdomain.org
    DocumentRoot /var/www/yourdomain_org/public_html/yourdomain_org/nextcloud

    <Directory /var/www/domain_org/public_html/domain_org/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews

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

        RewriteEngine On
        RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L]
        RewriteRule ^/\.well-known/host-meta\.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L]
        RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L]

    </Directory>

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

</VirtualHost>

Enable the Virtual Host

cd /etc/apache2/sites-available

sudo a2ensite yourdomain-org.conf

sudo systemctl reload apache2
configure_ubuntu_server_20_04_host_nextcloud_hub_21.txt · Last modified: 2021/04/29 03:56 by wikiadmin