Pre-installed Linux for Web Developers?

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)

Background:

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.

Bounty

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.

19547 次浏览

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.

Try searching in the VMWare appliances directory. Choose 'Operating Systems' and search for 'LAMP'

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)
  • XDebug
  • NetBeans 6.5
  • Subversion with Nautilus integration
  • Firefox 3.0.7 with some great extensions (Firebug, Web Developer Toolbar, Greasemonkey)
  • gFTP
  • GIMP 2.6

Any distribution with a decent package manager should take care of a lot of the grunt work for you though.

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 VMware.

Use a well known distro and "strip it down"


Install a minimal Debian system and strip down some features, or create a small live image and use it.

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 maintain).

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.

Final advice


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 development environments.

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 environments.

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.

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.

C.

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.

There is one that I know of called Excelixis 1.0 (previously Workbench linux). Check it here:- http://excelixis.wordpress.com/excelixis-details/

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:-

Development

* 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

Development Utilities

* SVN WorkBench
* Geany
* PoEdit
* HexEditor
* ManEdit
* Umbrello UML Modeler
* regExxer (advanced search & replace tool)

Graphics

* GIMP
* Inkscape

Network

* Firefox Web Browser
* Thunderbird Mail/News Client
* Filezilla FTP Client
* Transmission Bittorrent Client
* Wireshark Packet Sniffer
* Pidgin Instant Messenger

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..

Take a look at eBox and it's features

You said you were looking for virtual machines so I looked around the VMWare appliances and found two you might be interested in

http://www.vmware.com/appliances/directory/289

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.

http://www.vmware.com/appliances/directory/134

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.

http://www.kickasstorrents.com/ubuntu-php-ruby-on-rails-django-web-development-vmware-appliance-t3040351.html

Hope this helps

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. )

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).

http://bitnami.org/stack/

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.

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

alt text

Turnkey linux is a solution ;)

http://www.turnkeylinux.org/

SuseStudio.com

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.

How to setup a (or multiple) server/LAMP-stack inside a virtual machine for local development with Vagrant and PuPHPet

Clinker

It touches every aspect of software development and they call themselves a Software Development Ecosystem.

It includes;

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.

Handy: https://puphpet.com/