I will soon start my project, but before that I need to set up my server my project is shopping website so I will need web server and database server for the custoerms information. I have couple of question:
1- Can I setup my server in the same computer that I will be working on and can I setup two server in one PC
2- Which will be better
3- What about security how can I make sure that my customers informations are securied
4- as this will be my final project will it be better to have the servers on my PC or will it be better to use cloud server

Thank you

  1. You didn't reveal much about your computer OS and such so for Windows, try a WAMP. (Windows Apache MySQL PHP). For Linux, that's a LAMP.
  2. Better can be a trap. You can always debate if option 1 is better than option 2.
  3. Since this is likely to be a school project, simple https will do. As to database security, there are tomes about it but for now, concentrate on your big project and make the connections secure.
  4. As it's your final project, you need to be bullet proof. If you went with the cloud you don't own, imagine your grade if the cloud is offlined by its owner or something. You must deliver a working system so the cloud is only an option if it's your cloud.

I'll give you my two cents.

1a. Can I setup my server in the same computer that I will be working on?
Yes, you can.

1b. Can I setup two servers in one PC?
Of course, you can. There's no problem with a web server and database server running in the same computer. However, scaling horizontally can be problematic if you it this way.

2. Which will be better?
Depends really on you and your use case. To help you decide, here's a list of "characteristics" of each setup.

Server in the same computer

  • Easier deployment. No need to transfer code from one machine to another. Instant results.
  • You won't really be worried much about dependencies compared to a server on a different machine.
  • You can easily ruin your website. One mistake in the code and the website can come crashing down.

Server in another PC

  • Harder to deploy compared to the previous setup. You have to transfer code from one machine to another.
  • Dependencies can be a problem. Wrong version of a library in the server machine and your website won't probably be able to run.
  • Less chances of your website going down. This is assuming that the version of the website you upload to the server machine is stable.

3. What about security? How can I make sure that my customers informations are secured?
Going for an HTTPS connection is thumbs up. However, do not forget about basic web security. Never store passwords in plainmtext. Never forget to sanitize your user input. And the list just goes on.

4. As this will be my final project, will it be better to have the servers on my PC or will it be better to use cloud server?
I would suggest going for the cloud in order for you to focus more on your code than on handling the servers. Just make sure your cloud service has at least 99.9% uptime.

I hope that helps. :)

Hello,

The original poster did not comment on the delivery for grading: does the professor need to see it 24 x 7, or just fire it up, run the demo in the office, and then leave?

I have had to do various things similar to this in the past, and as a result, have a Mac laptop with lots of RAM, and simulated the machines with Virtual Machines. Not worried about security in this case as VM Hypervisors like Virtual Box or Parallels can create networks that live inside the machines with virtual interfaces. The VM can see each other, but not the real world.

Anyways, I generally use Linux for the backend, and either Mac or Windows for the front. Couple of Virtual Machines, and can backup the hard disks if desired if you want to keep snapshots of code or whatnot.

My latest project involves FreePBX and a telephone server running on a Virtual Machine, and working with the phones to demonstrate to a customer how the real thing will work.

Christian

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.