Is it possible to as a developer using a shared hosting site such as bluehost, hostgator, and the like, to view your site without making it public. Or do the files you upload always go live immediately?

Is the best way to test a site (if using shared hosting) to just set up some apache/mysql/php service on my machine?

I am considering putting together a site with shared hosting, and trying to see what all my options are.

Thanks.