You ask a lot of questions: this is good.
1. What distro? Some are easier to set up these things on than others.
2. Fedora for example will install apache/php already configured to work out of the box.
(some other distro's do this also, but not all) Sometimes these are configured to run
on localhost, but they are not bound to your external IP address.
3. Generally you will have a local firewall blocking ports 80 and 443 to your server.
You will likely have to allow these ports through your firewall. (It's possibly your ISP
router will have it's own firewall as well).
4. Do you want SSL encryption? Are you going to generate your own certs or go with
something like letsencrypt.org. Or full blown commercial like godaddy, digicert or globalsign.
5. Are you going to use DNS to access your site? Without DNS, people can likely still access
your site, but will have to type in the IP address ( i.e.
http://212.132.99.104 )
6. If you use DNS you will have to register a domain (that isn't already taken) like patriotaki.com
or something similar. Then you will either have to run your own DNS server, or have someone else
run one for you.
When you ask "how can I secure the php connections".. this is a loaded question, but I will assume
you mean the web pages, this is normally done with ssl certs. It's possible you could also be taking
about something like a backend database, this often done via SSL keys as well.
You don't absolutely need cPanel or Plesk, they are added complexity and more security risk
beyond the scope of the original question. I think that should be answered separately.
As far as VPN access. There aren't really any cheap solutions. (Although some cost quite a bit
more than others). This is a pretty good starter page.
This How TO guide provides step-by-step instructions for configuration and set up of OpenVPN 2.x client/server VPN.
openvpn.net
It usually comes down to cost vs security. You can go straight SSH without VPN, then it's free,
the downside is anyone who can reach your IP, can attempt to SSH in.
If you really want to have a shared dev environment, it might be cheaper just to have a hosted
server (i.e Azure or AWS) .