So if you've updated to macOS Catalina and are now racking your brains and trawling Stack Overflow for a way to make Apache just WORK again, I'm here for you friend. I'm here for you.
After two days of fruitless searching, I stumbled upon a solution, at least for my issues, and I thought I would share them with the internet, as it were.
So, for me, the crux of the problem is that starting in Catalina, every program, and I mean every program, must be given explicit permission to access or interact with the file system, which includes our old friend Apache.
After some digging, I was able to find a workable solution, which is as follows. First, we need to open up System Preferences and select the Security Privacy option (Figure 1).
On the left, you'll see a list of permissions you can grant to a program. We want Full Disk Access. Once you select that you'll be presented with a list of applications that currently have access (Figure 2).
Click the [+] button, then hold down [shift] + [command] + [.] to show hidden files. Now you need to find the httpd daemon and add it. The httpd daemon is located at
/usr/sbin/httpd. Simply select httpd and you should be done.
You might need to do a few other things, like make the permissions on all your web files are correct, but this was the big one for me. I hope this helps someone out there!