Several things:
1) What version of calibre are you running? In the past, people have posted that they are running versions in the 08.nn range, which are years old. Unfortunately it seems to be hard to get newer versions onto a raspberry pi machine. For more information see
https://www.mobileread.com/forums/sho...d.php?t=206783 and
https://www.mobileread.com/forums/sho...d.php?t=235424.
2) If you are running calibre's native server then you should not need to use the prefix. If you can browse the library using
http://IP_ADDRESS:PORT/ but cannot download books then I suspect that the library has letter case problems. Does the original library come from windows? Windows is case-insensitive (letter case doesn't matter) but linux is case sensitive (letter case does matter).
3) You say you can start the content server and see content using your browser. How are you starting the content server? Are you running calibre in GUI mode, or are you using the calibre-server command?
4) You say that you are getting an "internal server error". The calibre server's logs might tell you the cause of the error. If you are running calbre's gui then you can see the logs easily by going to preferences, sharing over the net, and clicking the button to view the logs.
5) If you are running calibre's gui then what happens when you click the "test server" button in preferences, sharing over the net?
6) The only reasons to use apache is to add more complex authentication or to allow access to several web programs on a single port. If I were you I would forget about apache until you have the calibre server running correctly.