To operate correctly, a site built with Joomla! needs to correctly identify the site name. Something like https://black-sheep-research.com.

The installation process does not ask for the site name, and the administrator configuration editor does not provide for setting it either. There is a variable in the configuration file (configuration.php in the rooot directory of the site) called $live_site but it is set to a null string by default. Yet in a default installation of Apache, Joomla will not work correctly unless this value is set.

There are numerous articles around the web explaining how to set $live_site by editing the configuration file. Yet Joomla itself is doggedly refuses to support the editing of this field.

In fact, the problem arises because of the way server values are set in a PHP and Apache environment. In most cases, it can be solved by adding the Apache directive “UseCanonicalName on”. This can be added in the main Apache configuration file, or in individual virtual host specifications.

In a typical setup, there are a number of individual virtual hosts on a single host. Each one has an Apache VirtualHost section, which contains a line specifying e.g. “ServerName black-sheep-research.com”. In this situation, with “UseCanonicalName on” specified, Joomla should receive the correct server name without the need to set $live_site.

Unfortunately, there seems to be more to it than this. In a current environment of Debian 10, Apache 2.4.38 and PHP 7.3 my test site only partially works. Seems more investigation is needed.