[Nix-dev] apache submodules (production + sandbox) + drupal package

Bryce L Nordgren bnordgren at gmail.com
Sat Oct 13 01:19:50 CEST 2012


Hi all.

I packaged drupal (sort of). I have a tarball with all the files in the
standard drupal distribution + all the modules I need for my site. My
apache submodule nix expression extracts this tarball and fills in the
basic parameters (database type/username/password; public and private
upload directories; file size limits). Nix expression is here:

https://github.com/bnordgren/nixos-1/blob/rxdrupal/modules/services/web-servers/apache-httpd/rxdrupal.nix

It works fine. Once. What I want to do is give my users a "sandbox" which
is a clone of the production site. I'll set up some scripts to reset the
sandbox back to the initial state nightly. That way they can practice doing
stuff without fear of screwing up the production site, which is supposed to
accumulate a good data set from our project. Currently, I'm trying two
entries in the "extraSubmodules" having the same serviceType (see below).
This doesn't seem to work. What is the recommended method of deploying two
instances of the same submodule on the same apache server?

  services.httpd.enable = true ;
  services.httpd.enableSSL = true;
  services.httpd.sslServerCert = "/var/ssl/server.crt" ;
  services.httpd.sslServerKey  = "/var/ssl/server.key" ;
  services.httpd.adminAddr = "bnordgren at fs.fed.us" ;
  services.httpd.extraSubservices =  [
    { serviceType = "tomcat-connector" ;
      stateDir = "/var/run/httpd" ;
      logDir   = "/var/log/httpd" ;
    }
    { serviceType = "rxdrupal" ;
      publicUploadDir = "/mnt/rxcadre/drupal/public" ;
      privateUploadDir = "/mnt/rxcadre/drupal/private" ;
      urlPrefix = "/working";
      dbuser = "drupal" ;
      dbname = "rxdata" ;
      dbpassword = "blahblah";
      maxFileUploads = "20" ;
      maxUploadSize = "256M";
      postMaxSize = "1024M" ;
    }
    { serviceType = "rxdrupal" ;
      publicUploadDir = "/mnt/rxcadre/drupal-sandbox/public" ;
      privateUploadDir = "/mnt/rxcadre/drupal-sandbox/private" ;
      urlPrefix = "/working-sandbox";
      dbuser = "drupal" ;
      dbname = "rxdata-sandbox" ;
      dbpassword = "blahblah";
      maxFileUploads = "20" ;
      maxUploadSize = "256M";
      postMaxSize = "1024M" ;
    }
  ] ;

Also, I can work up a "generic" drupal package if there's any value in it.
I'm having troubles envisioning how it would fit in with the nix store.
Sure, I can package up the basic drupal release, but if we're serving files
straight out of the nix store, no one can ever add a module because the
webapp is read only.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20121012/b4260510/attachment.html 


More information about the nix-dev mailing list