Can be a lot of things!
But to get you started, have you made sure that the port forwarding is setup correctly? So that it forwards the packages to the IP of your windows 7 machine?
It could also be that Apache isn't allowing requests from IP-addresses outside of the range of your LAN. (I'm not super familiar with Apache, but I know some other server software does this, like the PostgreSQL)
Are you sure that you have allowed incoming requests on port 80 on your router? And not outgoing requests?
Note: I wouldn't recommend that you run an old Windows 7 machine as an server on the internet. Since the support for it ended on January 14, 2020 as stated on Microsofts own website. Which would mean that not only are you running a server on an operating system that isn't meant to be run as a server. But you're also running it on an operating system that hasn't been patched for over one and a half year... Which would meant that you're opening a huge security hole in your network. And while you might argue that your not a big target for hackers, there are automated bots attacking randomly on the internet all the time. Which is why you have a firewall to begin with!
I would however recommend that you look into running your server on Linux! And if you don't have a spare machine to run it on at the moment I would recommend that you virtualize this machine through something like virtualbox. If you set this up correctly you will at least close down a lot of the security holes.