Overview and Requirements

MiniLIMS runs on the typical LAMP (Linux, Apache, MySQL, and PHP) stack available from modern Unix operating systems such as CentOS, RedHat, Ubuntu, or Mac OS X.

A relatively minimal hardware configuration is required to support the MiniLIMS web interface itself. A commonly available 4 core + 4 Gb RAM server with 10Gb of free disk is sufficient.

However, a number of typical conditions will require additional hardware resources. MiniLIMS run loaders for sequence data must have access to the file systems containing the run information. If instruments do not write directly to the system serving MiniLIMS, then some form of network mounting (e.g. NFS) or regular transfer (e.g. rsync) must be employed.

Requirements to handle large numbers of data loading processes can also impact performance of the system, necessitating increases in CPU core counts and RAM.

System Requirements

MySQL 5
The MySQL 5 that is available from current Linux repository managers (yum, fink, apt-get) should be sufficient. One can verify the version of MySQL with the following:
$ mysql -V
mysql Ver 14.14 Distrib 5.5.15, for osx10.7 (i386)
Apache 2
The Apache 2 that is available from current Linux repository managers (yum, fink, apt-get) should be sufficient. If Apache is installed before PHP, then the PHP modules will be automatically setup. One can verify the version of Apache like this:
$ apachectl -v
Server version: Apache/2.2.20 (Unix)
Server built: Sep 8 2011 18:13:15
PHP 5.3+
Though the standard PHP 5 that comes with CentOS 5 (PHP 5.1) will work, this version has a memory leak that can eventually cause problems with long running processes. PHP 5.3 should be used. The following specific packages are needed.
  • php53-cli
  • php53-mysql
One can verify the version of PHP (and support for cli and MySQL) like this:
$ php -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Sep 8 2011 19:34:00)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
$ php -i | grep "Configure"
...
'--enable-cli'
--with-mysql=mysqlnd'

PHP support should be automatically included in your Apache installation.

For diagnostic purposes, it is useful to set an error file by setting the error_log value in the /etc/php.ini file to something like /var/log/php_errors.log. The volume may need to be large as the log file can grow significantly over time. Also, the display_errors property should be set to “On”, for example:

error_log       = /var/log/php_errors.log
display_errors  = On
Internet access
Many of the plots in MiniLIMS are generated using the Google Chart API. This requires access to the Google API URLS.

Installer Requirements

There are some requirements that are specific to the installer and the installation user.

Java 1.6

Java is used by the MiniLIMS Installer to provide a graphical interface. This is an optional requirement as MiniLIMS can be installed without this wizard.

X windows client

To be able to use the optional MiniLIMS Installer, you must be able to connect to the installation target server with an X-friendly connection. This could be done using X11 forwarding on an ssh session, for example:

 ssh -X minilims-install-user@minilims.target.server

or by connecting to a VNC server desktop on the target server.

Super user privileges

The Installer performs some tasks typically associated with the super user (i.e. root). This includes unpacking the PHP code into a web directory (usually /var/www/html) and using chown to adjust ownership to the Apache user (e.g. apache). You don’t necessarily need to run the installer as root, but it simplifies the process considerably.