Slashdot Mirror


Ask Slashdot: Is There a Web Development Linux Distro?

Qbertino writes I've been a linux user for more than 15 years now and in the last ten I've done basically all my non-trivial web development on Linux. SuSE in the early days, after that either Debian or, more recently, Ubuntu, if I want something to click on. What really bugs me is, that every time I make a new setup, either as a virtual machine, on concrete hardware or a remote host, I go through 1-2 hours of getting the basics of a web-centric system up and running. That includes setting PHP config options to usable things, setting up vhosts on Apache (always an adventure), configging mod_rewrite, installing extra CLI stuff like Emacs (yeah, I'm from that camp) walking through the basic 10-15 steps of setting up MySQL or some other DB, etc. ... You get the picture.

What has me wondering is this: Since Linux is deeply entrenched in the field of server-side web, with LAMP being it's powerhouse, I was wondering if there aren't any distros that cover exactly this sort of thing. You know, automatic allocation of memory in the runtime settings, ready-made Apache http/https/sftp/ftp setup, PHP all ready to go, etc. What are your experiences and is there something that covers this? Would you think there's a need for this sort of thing and would you base it of Debian or something else? If you do web-dev, how do you do it? Prepareted scripts for setup? Anything else? ... Ideas, unkown LAMP distros and opinions please."

19 of 136 comments (clear)

  1. Probably not... by Improv · · Score: 5, Insightful

    Not everyone configures this stuff the same way, and new versions of software would mean you'd need to change this tuning all the time. Plus, you'd likely need to know all the tuning anyhow in case you need to debug or adjust it. Your best solution probably is not going to hope for a distro so much as baking yourself an image (or install script, or chef/puppet/ansible recipeset, or similar) and using it to build these systems for you. A custom distro wouldn't make sense.

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
    1. Re:Probably not... by Idimmu+Xul · · Score: 3, Insightful

      Exactly this, thread over.

      You should be developing for the platform you're deploying to, whether that's a series of company maintained servers or some random CPanel hosting you've bought for $1 a month.

      The best way is to bake yourself an image you can run from scratch each time that gets installed and configured to a known outcome, hello Puppet/Chef/Ansible/Vagrant/etc/etc

      That gives you the benefit on developing on what ever platform with whatever toolset you like the most and an extremely reliable test platform that accurately mirrors your deployment platform.

      Otherwise you open yourself and your code to all kinds of unnecessary bugs later on.

      --
      The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
    2. Re:Probably not... by Anonymous Coward · · Score: 2, Insightful

      could always just create a VM in the config he wants, then just clone it off every time he wants a new dev server then all he'd have to do is reconfigure the vhost each time.

    3. Re:Probably not... by slickwillie · · Score: 4, Informative

      Actually, Improv's answer wasn't "it can't be done" but more like "it could be done but it doesn't make sense".

      He (or she) probably wouldn't want to work for you if your reading comprehension is that low.

    4. Re:Probably not... by buchner.johannes · · Score: 2

      Many distributions have package groups now, which should fill the role of a "LAMP distribution". In Fedora you can for instance install (yum groupinstall) "Web Server", "MySQL Database", "Authoring and Publishing", "Development Tools". That should give you a basic PHP/MySQL setup.
      Gentoo has added something similar too recently, probably Debian has also somthing like that, at least in the GUI.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  2. Automation is your friend by Drewdad · · Score: 4, Informative
    1. Re: Automation is your friend by Anonymous Coward · · Score: 2, Interesting

      Yep. Learn puppet or similar

  3. Yes by Anonymous Coward · · Score: 2, Informative

    Any fucking distro you want. Pretty much every distro does this.

    1. Re:Yes by jc42 · · Score: 4, Insightful

      Any fucking distro you want. Pretty much every distro does this.

      Well, yeah, they mostly come with most of the pieces you want. But this doesn't help. I've found that trying to find where all the pieces are hidden/renamed in any given distro and then trying to figure out how they've tweaked the config stuff is far too time consuming. While someone else is beating their head against their keyboard over all the frustrations, I can beat them out by downloading the latest stable version of apache and each other package I want, and installing them from scratch. The packages in the repositories tend to not change their UI much, only when they have a good reason to do so. Also, they know that their users will be installing from scratch, so they concentrate in making this easy (which includes being mostly consistent with earlier releases, and providing forums that tend to have useful answers to questions).

      So my advice is to just scrap the servers and associated packages that come with the distro. Uninstall them if you can discover how to do that in a reasonable time, or just disable them. Copy the config files from another machine that's close to what you want. You'll get it up in much less time than you'd waste trying to figure out how the distro has tweaked everything.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    2. Re:Yes by RabidReindeer · · Score: 2

      My current setup is as follows:

      Stage 1: OS and core package installation: PXE boot to Kickstart (for CentOS).

      Stage 2: Local customizations for basic operation: Ansible. This includes installing the repo and packages for:

      Stage 3: Fine-grained provisioning and ongoing maintenance via Puppet (or, if you prefer, Chef, Salt, whatever).

      Alternatives/refinements include using Vagrant, Packer, and Docker, depending on needs. You can skip Ansible and use a "push" mode for puppet for stage 2, but I prefer to let Ansible handle the push phase.

      Debian/Ubuntu systems don't have Kickstart, but you can use their equivalent.

      Package names/contents tend to vary little between releases of a distro, although different distros do things differently. Puppet can hide a lot of those differences and there are pre-packaged recipes for that kind of stuff.

      And, of course, if you aren't interested in fine-tuned customizations, you can just make master images for VMs or physical machines and maybe use Clonezilla to do the provisioning.

      There are lots of tools out there. This is the Cloud era and one thing that clouds often demand is the ability to spin up 20 or so webapp servers with as little time and effort as possible.

  4. Have you tried Turnkey Linux? by markswims2 · · Score: 5, Informative
    It's as close to out-of-the-box as I've found.

    http://www.turnkeylinux.org/la...

    1. Re: Have you tried Turnkey Linux? by MemeRot · · Score: 2

      Bitnami rocks. Lots of different stacks to pick from: plain LAMP, different CMSs, OSQA, all kinds of goodies

  5. Roll your own? by CodeReign · · Score: 2

    Roll your own?

    Seriously. You don't sound like you want a cents with the web server packages (very good option in my opinion). You sound like you want your setup to be concrete and to meet your own specifications.

    The only way to get a distribution with your own specifications is to commission or roll your own.

    Another good option (what I do for my glassfish domain) is to setup cantos on a virtual machine with the generic install and then export the VM so I can create arbitrary copies of my perfect centos distribution.

    1. Re: Roll your own? by Lunix+Nutcase · · Score: 3, Informative

      Slashdot has never had an edit button.

    2. Re: Roll your own? by BlackPignouf · · Score: 5, Funny

      Slashdot has a well-hidden edit button.
      EDITED : 2015-02-08 18:40:02 +0100

  6. an option: configuration management by bagel2ooo · · Score: 2

    This isn't necessarily what you were asking for but I maintain a small group of configuration management modules that extend a base class just for this. This allows me to maintain a common configuration standard that I can push across a wide variety of hardware and software configurations. I can spin up an ArchLinux development instance in my VM stack and have it configured the same as production which makes things convenient, doubly so when I decide it's time to pick up a *BSD again or what have you.

    --
    ( o ) one could say I'm rather baked
  7. Use a Re-Mastering tool by fhage · · Score: 2

    I've had great success using remastersys Set up the distribution exactly how you want, then create an image which can run live or be installed on virtual or real machines.

  8. Puppet Labs by Sebastopol · · Score: 2

    Also, I forgot to mention, Puppet Labs' IT automated config is pretty effing amazing. I've been trying to dedicate time to ramping on it, and have been to a few classes at their office in Portland, but it is definitely on my list of tools to learn.

    http://puppetlabs.com/

    --
    https://www.accountkiller.com/removal-requested
  9. Puppet by Lord+Bitman · · Score: 2

    I use puppet for this sort of thing. I have a set of manifests which describe the basics of a VM I use for development, and I make changes based on whatever project I'm working on. These manifests usually get added to a repository either for developers; or (when possible) production

    --
    -- 'The' Lord and Master Bitman On High, Master Of All