I'm looking to host a personal website from home. I have a good computer/software background but only a basic idea of how to properly host a site. The goal for the web hosting is to make the site(s) public on the www.The site is built, using PHP/MySql, and I'm familiar with how to get that to run in a LAMP environment, what I'm not familiar with is making it accessible to the world and the correct/safe/reliable ways to do so.I've got a box that is running FreeNAS right now but I'd like to convert it to a Linux server flavour, I was thinking Ubuntu with the GUI so that I could still run some of the same software I have running on the FreeNAS now for the household, and have the web hosting services on it as well.So my question(s) are as follows:Which server OS would do what I want, but not be too complicated for a beginnerWhat additional software, or services should I install (i.e. Apache, Mysql, PHP etc...)What would be best practices to ensure home network security, and home server section security?Should I be running a VPN for additional security? I'm aware of the myriad of benefits of the VPN in general, I'm wondering about specifically in relation to web hosting from home.I'm not looking for any hand holding by any means, but if anyone could point me in the right direction that would be much appreciated.
Hosting my website from home
webserver
First thing you'll need to make the website accessible is either your external IP address, or a domain name that points to your external IP Address.  If your external IP address is a dynamic IP address then you'll need to go for a domain name provider that supports a dynamic dns client that will update your domain name each time your external IP address changes.Second thing you'll need is to forward port 80 from external to your server that is on your network.Security wise, you'll want to keep Apache/MySQL/PHP patched up to keep up with security flaws.If you want to get fancier, there are a myriad of log processing tools out there than can alert you to irregularities that are occuring, e.g. buffer overflow attempts.For a home server though, as long as your code is good and SQL injection isn't a possibility, that should do you just fine.