This can be a very complicated process. Trust me, I am a system administrator for a website hosting firm. If you need a host, then you can use www.crynetservers.com or contact us for better deals.
The first thing you need to do is install a web server. The best type of web server in my opinion is Microsoft IIS (Internet Information Services) but that is only with Windows Server and a limited version comes on Windows XP Professional, Windows Vista, and Windows 7 (certain versions). Check how to do this.
Now if you are into a little less user friendly but simpler and more straight forward setup, then I suggest using Apache HTTP server found at their website (http://httpd.apache.org/). You can run the install, install the extensions you want for PHP or password support et cetra, and then finish the install. I also suggest a WAMP stack or LAMP stack if you are on Windows/Linux respectively. These stand for Windows or Linux/Apache/MySQL/PHP. This is to provide you Apache web server, My SQL database support if you will use it, and PHP for hosting portals/forums/code that uses this server-side scripting language.
Essentially, you need a functional web server software program. They will allow you to run independent sites like www.example.com, or even multiple sites on one server instance if you set up what is called Virtual Hosting on one IP address. To find your IP which is vital to this, go to www.crynetservers.com/ip.html to find it.
Once that is running, place your files in the root of where the web server is installed. Verify that they work by going to http://localhost (or http://localhost:port if you are using a port other than port 80). Port 80 is the software port that web servers use. It is a TCP port. Localhost is the local address of your computer on the scale of only the computer itself.
If that is running, then unblock your laptop's internal IP address (such as 192.168.X.X) - find this by running a command prompt window and typing ipconfig - in your router. It helps if the IP address that your local network is giving to your laptop is static, or has a DHCP lease time of forever. This can be found in your router's settings and documentation. Unblock this IP of your laptop in your router for port 80.
Make sure port 80 is also unblocked on your computer's firewall or virus/security program so that others can connect over this. If this is working, people can access your website/files through your EXTERNAL IP which is the one that can be found at like whatismyip,org.
Then you need to set up your domain name. I suggest No-IP.org for FREE domain names that aren't premium but very good. Or, a free .co.cc website domain which is like your www.myname.com. Create an "A" record for your domain in its control panel that points to your external IP address. You should now be able to access your website. You can also purchase a domain and use the same steps to set it up.
There are a few VERY important things to note here. First of all, if you are doing this on your laptop, then you are likely a home user using a residential internet line. Most ISPs in select areas block port 80 or do not allow servers on their networks. Once you unblock the port on your router and firewall you can use canyouseeme.org to find if your ISP is blocking port 80, or call them and ask - if it isn't a high traffic site you will usually be okay. If there is no way around this, you can use No-IP.org to set up a website over another port like 8080. This will forward your domain name example.com for instance to an alternate port. There are some restrictions with this but it is doable through No-IP and DynDNS, which also update your IP address so if it changes people can still access your site and it is automatic.
The final note here is that if you can't access your website at first through going to www.example.com in YOUR house and web browser, don't panic! It could be that your router does not support loopback and therefore you cannot loop and see your own site. Use a proxy or ask a friend over another line to verify that it works.
I really hope this helps. Hit me up if you get stuck or have any questions.