So I'm working on a website (Beauty Salon website for my aunt)but I want to know if I can make my home computer a server. Is this a good idea or not? What are the requirements and will my computer have to be on all the time.
For a small business in this case, this is extreemly practical. I don't think the site be doing any of the following: 1.Accepting payements 2.Being viewed by more than 10 people in a day 3.having lots and lots of data being updated, maintained etc.
You can get a crappy old computer and install LAMP on it, leave it connected on and forget about it.
This way you will have full control of everything while you are still developing etc.
You can move the files etc. to a webhost later if it is needed. You will also learn more about website maintenance issues by trying it yourself.
Just keep a back up copy of files / databases needed to make the site, but you have to do the same even if you were hosting somewhere else.
You should ask about the requirements and how to do it in a separate question. But the basic requirements are not much. If you are doing this to learn about web development then you must try it, you will learn much more.
A "server" is just any computer that serves client requests. Any computer can be made into a server simply by running a server daemon/service on it (e.g. a web server, FTP server, or just having file sharing enables and used as a file server; you could run StarCraft or Counter-Strike and host a multiplayer game and make your home computer a server). There are no requirements besides that. And it's neither good nor bad. It's just a choice. A lot of web developers run test servers locally.
Whether running a production server off a home computer/connection is a good idea or not is a different matter. The fact that nearly all businesses, either subscribe to professional web hosting, or lease a business connection to host their own dedicated servers off of should tell you what the answer is.
Likewise, whether a web server has to be on all the time is pretty easy to answer. If it's hosting your aunt's business website, then how will anyone access the website when the server is off? What good is a website that can't be reliably accessed at all times? Is your aunt alright with her business looking unprofessional from the site being frequently down? Is this worth the $8/month you save on web hosting?
Speaking of which, standard shared hosting provides:
- over half a TB of storage
- over 5 TB/month of bandwidth
- experienced system admins
- experienced network admins
- professional support
- 99.9%+ uptime guarantees
- professional business-grade DNS management
- professional e-mail hosting
- standard web hosting features
- popular db servers (unlimited DBs)
- popular server-side languages (php, ruby, perl, java, python, asp, etc.)
- regular backups
- regular system scans
- regular software updates/upgrades
- web hosting security best practices
- one-click installs of dozens of common web apps
- SVN hosting
- HTTPS availability
- a professional admin panel
- more upstream than your residential broadband connection could ever match
A typical web host has teams of people maintaining and supporting their web servers 24/7. This isn't something you're likely to be able to provide. It's just not economical or practical. They can do it because they have thousands of servers in their data center(s) hosting tens of thousands of clients. They also use specialist people & tools to automate the systematic management of large arrays of uniformly configured servers.
Even for a medium-sized business, it's generally not practical or efficient to be your own web host. The chances of someone hosting a business site from home as a side project or hobby being successful is even slimmer.