Does anybody know an ISO image of a up-to-date Linux distribution aimed at web developers with one, some or all of the following features:
LAMP stack readily set up (Readily installed Apache 2, virtual sites directory structure (hosting), PHP installed, mySQL installed)
Ruby/RoR set up for a beginner to start with
Subversion set up for multiple repositories
Firewall configured for functioning as a web server (Port 80 open, not much else)
Python and Trac installed and integrated with Apache (Multi-environment capable)
I have a powerful new workstation and would like to set up a number of virtual machines for testing, development and version control, preferably on Linux. The machines will not be exposed to the public.
I would like to save as much installation and set up work as possible – setting up everything from the above list would cost me weeks if I’d do it alone.
I have had to put this on the shelf for the time being due to other, more pressing projects. The suggestions made are already a brilliant list; I’m putting a bounty on the question to try and gather as much input as possible, so this can be the reference question on the issue for future generations.
I will be awarding the bounty either based on popular vote or on a whim, from what looks the best solution to me.
Here is Solutions:
We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.
Seriously, I think the best thing to do is create your own. Some people for example use Redmine instead of Trac. Finding a pre-configured VM with these specific installations is going to be difficult.
So, having the "create your own" as a precondition, I believe you have the following options:
Use a a "VM Aware" distro
Ubuntu Server comes to mind: it has an option to install a minimal installation specific to VMs.
Download the server ISO image, boot from it, press F4 on the first screen and select "Install a minimal virtual machine".
- Less than 380MB installed footprint
- Specialized server Kernel (-virtual)
- Optimised for VMWare ESX, VMWare Server and KVM Intel or AMD x86 architecture
- Minimum memory 128MB
- No graphical environment preloaded as it is aimed at server virtual appliance
IMHO, you’re going to spend at most a day configuring your VM to your tastes, not weeks. Using apt-get is going to save you some time in almost all packages in your feature list.
…and if you want even more customization, you can even try to use vmbuilder.
vmbuilder is a script that automates
the process of creating a ready to use
VM based on Ubuntu. There is no need
for a JeOS CD image. The currently
supported hypervisors are KVM, Xen and
Use a well known distro and "strip it down"
Use Linux From Scratch (LFS) and build a system only with essential software
This is the most difficult one and you’re going to spend a lot of time.
But you’ll be able to have a really small distribution and understand how a Linux system really works. Understanding how everything works you can install just what is needed in your setup, and use lighter binaries like Busybox.
There’s an old project called Debian From Scratch (last update is from 2006, so I don’t know if it’s reliable) that aims to do the same LFS does but using Debian.
(…) is a unique distribution that
allows you to install a Debian system
with almost the same level of control
as what you would get with a Linux
From Scratch installation but with the
Debian advantages (easy to update and
You just want a Damn Small Linux out-of-box solution
Well, you can try Damn Small Linux, it’s only 50mb and Debian Based and I believe it’s the most famous minimal distribution (you can check more distros in this list). I just don’t know how it would perform in a Web Server Development scenario.
To all situations above, after configuring, save your VM as a default one for future use. Or better, use snapshots, each one with minor differences you may have with your installation (beware though that controlling too many snapshots may be a little cumbersome).
"I don’t want to configure my own"
If for some reason you didn’t like my approaches or don’t have too much time to follow my advice ("create your own VM") you can check this question on ServerFault. There’s a list for a bunch of appliances from different distros.
…but if you’re going to test a bunch of them, to see if they fit your needs, why not just use the time spent with them creating your own?
Icing on the cake: use Vagrant to manage your vms.
Vagrant is a tool for building and distributing virtualized
By providing automated creation and provisioning of virtual machines
using Oracle’s VirtualBox, Vagrant provides the tools to create and
configure lightweight, reproducible, and portable virtual
This means Vagrant helps you automating a lot of things you usually do when creating a new VM (these features are from the official website):
- Automated virtual machine creation using Oracle’s VirtualBox
- Automated provisioning of virtual environments using Chef, Puppet, or just shell scripts!
- Full SSH access to created environments
- Assign a static IP to your VM, accessible from your machine
- Forward ports to the host machine
- Shared folders allows you to continue using your own editor
- Package environments into distributable boxes
- Completely tear down environment when you’re done
- Easily rebuild a complete environment with a single command
I would create a vm with the same configuration (well, almost the same) as my production server, so some platform problems would not appear just when deploying.
Set up a Debian or Ubuntu Server Edition. Easy to set up, and it takes one day to install/configure everything that you listed above with tutorials, even if you are beginner, and nothing is buggy.
That’s a very specific list! A quick exercising of my Google-fu leads me to Noys, which has the following software pre-installed.
- Apache 2.2
- MySQL 5.0
- MySQL Administrator
- MySQL Query Browser
- PHP 5.2 with some important extensions (PDO, MySQL, PEAR)
- NetBeans 6.5
- Subversion with Nautilus integration
- Firefox 3.0.7 with some great extensions (Firebug, Web Developer Toolbar, Greasemonkey)
- GIMP 2.6
Any distribution with a decent package manager should take care of a lot of the grunt work for you though.
Try searching in the VMWare appliances directory. Choose ‘Operating Systems’ and search for ‘LAMP’
I don’t know of one. I would suggest building your own distribution or image. If you do, please distribute it.
You may want to try turnkeylinux. They have all the images you need from LAMP stack to ROR.
Why don’t you use one of the BitNami stacks depending on the specs of the project? It seems to be a waste of resources to install everything on one VM (unless you really need everything all the time).
Personally, I would create a VM with an Ubuntu (or Debian) server install, and just apt-get the necessary packages needed for the project. If you have problems installing a full LAMP stack have a look at the tutorials on HowToForge. Installing most projects – with standard configs – is really not that hard.
BTW “Subversion setup for multiple repositories” – you can create as much repositories as you want using svnadmin, the only thing you have to do is install subversion itself (
apt-get install subversion), and configure your repo’s once you created them.
There is one that I know of called Excelixis 1.0 (previously Workbench linux). Check it here:-
It is based on Ubuntu 8.04, and the ISO developer seems to suggest that with the next Ubuntu LTS (10.04), there could be an update for it.
It has the following preinstalled:-
* GCC, G77, Sun JDK, FPC, Python * Eclipse (+ All Callisto Repository Plugins) * NetBeans 6 * Monodevelop * Anjuta * Glade * Gambas 2 * Lazarus * wxGlade
Web Design & Development
* Apache, PHP, MySQL Servers (XAMPP) * Kompozer * Bluefish * gPHPEdit * Cssed Editor
* SVN WorkBench * Geany * PoEdit * HexEditor * ManEdit * Umbrello UML Modeler * regExxer (advanced search & replace tool)
* GIMP * Inkscape
* Firefox Web Browser * Thunderbird Mail/News Client * Filezilla FTP Client * Transmission Bittorrent Client * Wireshark Packet Sniffer * Pidgin Instant Messenger
Turnkey linux is a solution 😉
As I know no bounds there, I just bugged my provider. He sent me his servers apt.list and package selection (Debian Linux). Additionally I got a stripped down Apache httpd.conf, so I could set up a near-100% emulation of my actual webserver.
That’s not a turnkey solution, but quite useful if you want to test deploy things. Though I used that rarely, and ooops IIRC it was on the stolen laptop..
You may want to checkout our project, BitNami You can get either individual virtual machines or installers for Trac, LAMP, MySQL, Rails, etc. The beauty of it (apart from being free) is that you can mix and match the installers via the module system and build your perfect environment (aka “stack”). The stacks are self-contained, so when you don’t need them you can simply uninstall them. You can keep multiple stacks around simultaneously and they won’t interfere with each other
I’m not aware of one which specifically meets these requirements, however I have experimented with PCLinux OS bootable CDs where you can extensively customize the system after starting it up (installing direct from the internet with easy to use tools) – I’m not sure if it directly supports saving the resulting image, but if you were to run it within vmware then snapshotting the system is a no-brainer.
If you wanted to create your own image (e’g’ if you needed to redistribute a natively bootable image) then I’d suggest you have a look at puppy linux – which is very easy to customize.
Am not aware of whether it is available !
Actually as per the above answers, most probably it is not available. A team can be formed to do this..
The requirement has to improvised, and team can work on that, and release it as a open source..
What do you guys feel ? ( i would be happy to be a part of that team. )
You said you were looking for virtual machines so I looked around the VMWare appliances and found two you might be interested in
Trac Python Subversion (Client and server components) Apache web server PostgreSQL MySQL SQLite The underlying operating system is OpenBSD. ruby18-base-1.8.4nb1 Ruby 1.8 based release minimum package ruby18-subversion-1.3.0nb3 Ruby bindings for Subversion
Only thing this is missing is PHP and Ruby on Rails which shouldn’t be to hard to install on your own.
Apache2 (2.0.54) PHP (4.4.0) MySQL (4.1.12) PostgreSQL (8.1.2-1) phpPgAdmin (3.5.6) Ruby 1.8.4 Ruby on Rails (1.1.2)
They both seem to contain most but not all of what your looking for.
This last link seems to have Ruby and php but I’m not sure what else. Not going to check a torrent site a work lol.
Hope this helps
How about this one?
Build an appliance — or your own custom Linux distro — with a few mouse clicks. Customize it to your heart’s content, and share it with the world!
SUSE Studio is an online Linux image
creation tool by Novell. Users can
develop their own Linux OS, software
appliance or virtual appliance, mainly
choosing which applications and
packages they want on their “custom”
Linux and how it looks. In addition,
they can choose between openSUSE, SUSE
Linux Enterprise Server and SUSE Linux
Enterprise Desktop bases, GNOME and
KDE desktops, and a plethora of other
features. The user can create a fully
functional system with Firefox, 3D
graphics, and whatever apps he or she
can find installed. SUSE Studio is
what powered the fan-made “Chrome OS”,
which was a semi-stripped-down system
loaded with the developers’ version of
Google Chrome, Google web application
links, and OpenOffice.
Not exactly fitting your question, but maybe still what you were asking for:
You can create linux servers that perfectly fit your needs with a graphical user interface called PuPHPet.com. This let’s you choose everything, from PHP version to mysql password, phpmyadmin, packages, etc.
The resulting config file can be used to setup a real server (see the page) within minutes and one click or create a local virtual machine with exactly these settings automatically via Vagrant (which is a technology that creates virtual machines from little config files that you create for example with puphpet.com).
I’ve written an extremely detailed tutorial on this.
Even if you are totally new to PuPHPet and Vagrant, you’ll be able to setup professional (!) linux servers.
It touches every aspect of software development and they call themselves a Software Development Ecosystem.
Repositories (Git + SVN)
Continous Integration (Jenkins)
Source Code Inspection (Sonar)
Repository Management (Nexus)
Project Management (Trac + Redmine)
Deployment Environment (Jelastic + Engine Yard + Heroku)
They have both a hosted solution and a free of charge installation package.
Use Puphet Gui tool its perfect for linux web developers with customization settings you can just select the packages ,it creates bundle on ur environment and u can just execute it .It creates virtual machine and install all the packages into this machine.
Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂