Skip to content

Tech Notes – Running Omeka under Lighttpd

Omeka is interesting digital archiving software in that it combines the storage requirement with interpretive and presentational capabilities.  This can be a two-edged sword, but for some requirements, Omeka is attractive. Omeka is also Free Software and is published under the General Public Licence. It is much simpler to install than, say, DSpace, in that it is written in PHP, which most servers support easily and which is well understood for ease of use.  And I would suggest that simplicity is of real value when running long-living archives. Omeka is a good example, along with WordPress. of such an application, often running on a "LAMP" software stack - Linux, Apache web server, MySQL database and PHP.

One of the beauties of Free Software is that it is often possible to alter software specifics, as the same service is provided by other software.   This is important, because it means, for example, that a very busy web site can use better performing software to the same end, or, as may be the case for community archives, a lower specification machine or virtual machine may use software that performs adequately with fewer resources.  One example of this is to replace the Apache2 web server with a more nimble alternative, such as Nginx or Lighttpd.  So the "LAMP" stack becomes "LLMP" or "LNMP". The use case of Omeka running on a little Raspberry Pi springs to mind, and that may be worth an article here later.

But in fact, the way Omeka is written, in actually requires the LAMP stack, which is unusual for a PHP application. The reason for this is that it includes a file called .htaccess. a facility that the Apache2 web server uses to instruct the server to behave in particular ways, and which, in Omeka's case, makes the server rewrite some parts of the web address, the URL.  The upshot is that, although there is no technical reason for requiring Apache as the web server, the fact is that it is written with that requirement.

It should be possible to apply Omeka's .htaccess file to Lighttpd's configuration file. But web references to this don't have anything definitive.  Now I must point out that I have not run this on a fully operational live server, but the following configuration does work with Omeka, so ensure to your own satisfaction that this works for you. Add this to your lighttpd.conf file.

############Omeka####
## At last - this works -
##info from https://www.drupal.org/node/43782
##and other sources
url.rewrite-once = (
##admin pages
  "^/omeka/admin([^.?]*)\?(.*)$" => "/omeka/admin/index.php?q=$1&2",
  "^/omeka/admin([^.?]*)$" => "/omeka/admin/index.php?q=$1",
##Main pages
  "^/omeka/([^.?]*)\?(.*)$" => "/omeka/index.php?q=$1&$2",
  "^/omeka/([^.?]*)$" => "/omeka/index.php?q=$1",
)
# Ensure ini files are excluded, Change the "static-file.exclude-extensions"
# higher up this config file, to look like this
##static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".ini", ".htaccess" )
### End of Omeka section

 

I am not a Lighttpd or Omeka expert, but I thought I would post this here in the hope that this helps others who may wish to run Omeka in this way.

Addendum - I see Omeka has retweeted my tweet about this article. If you can improve this config, please email me so that we get some info on how to run Omeka unde rLighttpd (or Nginx, for that matter) accessible.