What is the difference between conf-enabled and sites-enabled (or conf-available and sites-available if you want to think of it that way)?
When should a file go in one but not the other?
Are they read into apache2 differently or at different times?
conf-enabled
is for global configuration excerpts that affect all vhosts.sites-enabled
should only contain complete vhost definitions.Of course, you can also include
conf-enabled/*
in your vhost definition if that makes sense in your setup.This entire concept does not exist if you install Apache from sources. It has been introduced by Debian/Ubuntu/... as a more structured way of organizing your files. The idea is that each virtual host stanza is put in a separate file and save in the folder sites_available. Next for the sites you actually want to enable a symbolic is created in the sites_enabled folder.
The same structure exists with conf_* directories in which you can put other configurations that you may want to enabled or disable, e.g. modules. I've never really used that part.
In the end you can do it however you want as long as you know what, where, and why. All files in the *_enabled directories are included in the apache configuration.
Edit: It's also explained in the documentation (though briefly): https://ubuntu.com/server/docs/web-servers-apache