Chamilo is a learning management system focusing on ease of use, re-usability, collaboration and sharing.
A piece of software that allows you to create a virtual campus for the provision of online or semi-online training.
A web server (we recommend Apache2 for commodity reasons)
A database server (we recommend MariaDB but will explain MySQL for commodity reasons)
A PHP interpreter (and a series of libraries for it).