UPDATE: Jan 2024.
The Pi has been performing flawlessly for nearly 3 years now. In fact, it has one distinct advantage over a standard server:- it powers itself back up after a power cut! We had a cut last year and everything else had to be manually rebooted.
A new Pi5 has now gone live with a commercial website and it is delivering better performance than our web hosting company used to provide. The improved speed means that we are getting more traffic!
This is a brief description of how to set up a server like this one. Please bear in mind that I am not an expert at all, and this is the first time that I have done anything like this.
Apache2: - This is the web server itself. It doesn't need much setting up apart from adding PHP support.
PHP: This is the stuff that fetches data from a database and presents it to Apache2. You don't need to understand this apart from the fact that the Raspberry doesn't have official support for PHP 7.4. This means that it was difficult to install Drupal 9. I wasn't aware of this little problem until it was too late. See comments below.
You will have to install some additional PHP stuff, but you should get prompted if you need to do this. Generally you will have to do something like "apt-get install php-xml", but the error messages should make it clear.
MySql. This is the backend database that stores all the text, data and configuration of your website. Apart from images, PDF and other "files", everything will be stored here.
Joomla/Wordpress/Drupal or whatever Open Source website software that you decide to use. I think that Wordpress is the only one that will work with the standard PHP that runs on the Pi. Drupal 7 probably runs fine. You would need to check Joomla's "system requirements" to see what version it needs. If this paragraph is all gobbledyegook, then just get Wordpress. Good info can be found here...