I would like to practice setting up a PHP / Apache web server from (almost) scratch, i.e.:

  1. Start with an Ubuntu OS.
  2. Install Apache
  3. Install any PHP packages I need

Along with any hurdles I cross on the way. I could do this by setting up a DigitalOcean Ubuntu droplet, but I thought I could also do it using VirtualBox (on Windows 8.1). But the instructions I've seen so far involve downloading the Ubuntu Desktop ISO image and using that as a base in VirtualBox. Do I really need that?

I have no need to use Ubuntu as a desktop operating system. Probably a stupid question, but is there a more stripped down image I should use, or am I thinking about it all wrong?


For practicing on an Ubuntu Server, use the Ubuntu Server image. It is precisely the stripped-down image you are thinking of.

Simply put the Ubuntu Server .iso in your VM's virtual CD drive (it's part of the Host's Vbox Application settings), and start installing.

Installing VMs into VirtualBox is a learned skill like any other. Many folks make lots of mistakes on their first Guest VM install - learn from it, and don't be afraid to throw it away and start over.

| improve this answer | |
  • Thanks. I guess I was a bit confused re. terminology. If Ubuntu is an OS, and Apache is a server, where in the hierarchy does an Ubuntu Server lie? – tibubuntu Jul 19 '19 at 22:33
  • 1
    Apache is a webserver - it servers web pages. There are many, many other server applications. Ubuntu Server contains a fully-functioning system in a headless environment, exactly what most folks who run servers want. – user535733 Jul 20 '19 at 2:16
  • Also, use snapshots after each important step. – Eric Duminil Jul 20 '19 at 9:58

There is a "server" edition of Ubuntu (which is what you get in a DO droplet). This can of course run in a smaller machine (I did run a forum on DO with just a 512MB machine). Of course you have to be more proficient in Linux and have the basics of file management and editing from the command line (or use SSH-aware tools on the Windows host: WinSCP, Putty...).

Now, DevOps is not Apache and PHP, DevOps is about being able to build/deploy/monitor/upgrade code quickly and efficiently in complicated environments, so you have to become familiar with continuous integration and its tools (Git, Jenkins, Travis), Docker containers, possibly Ansible and Vagrant... To run these tools you have three ways:

  • run native versions on Windows (when they exist)
  • run Linux versions in a Linux host (VM on your Windows, or server in the cloud (DO or else)
  • run Docker container images (on your Windows or in a Linux VM/server) which is the preferred and usual technique (easier to install, no runtime cross-dependencies...)
| improve this answer | |
  • 1
    That correction re. dev ops is useful. Thank you. – tibubuntu Jul 19 '19 at 22:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.