14 April, 2011
This is the third source code release of Ilios 2 - version 2.0.3b.
Please note that the modifiable contents of the are known to grow between version releases, so give the distribution file a look if you are upgrading from a previous install.
system/application/config/config.php
The changelist of notables is maintained in a parallel file named _ILIOS2_VERSION_HISTORY.txt.
Please keep up to date, and feel free to contact us, via the Ilios 2 web site: http://www.iliosproject.org/ and the SourceForge forums for the project: https://sourceforge.net/projects/ilios2/forums
Thanks from the Ilios 2 Team.
--------- INSTALLATION ---------
The Ilios 2 server side code relies upon the following:
. Apache 2.2.3 or newer
. PHP 5.2.X where X is at least 10, with mysqli support
. MySQL 5.0.77 or newer, with support for both InnoDB and MyISAM
. A Shibboleth authentication system which returns the authenticated user's unique email address via the 'mail' HTTP header field. See, also, 'SECURITY' below.
Ilios 2 uses the CodeIgniter framework and, as such, has its directory structure laid out in usual CodeIgniter structure.
The minimal steps to get an Ilios 2 deployment running are not that great and can be described as the following:
1. Copy the Ilios 2 release tar ball into the root directory of your web server (or whatever subdirectory you wish)
2. Unpack the tar ball
2a. Change ownership of the files appropriately. The following directories need to be able to be written to by your Apache process:
learning_materials
tmp_uploads
system/logs
3. Configure the following files to reflect your institution's name, appropriate URLs, and database attributes:
present_initial_frame.html
present_actual.php
system/application/config/config.php
system/application/config/database.php
system/application/helpers/I2_url_helper.php
4. Construct and populate your database as described below
5. Choose either 5a, or 5b-c:
5a. Run the script found in the root directory called: install_user_zero.sh
OR
5b. Point your web browser at the configuration assistant (this is very rough looking at the moment). The URL, if you installed your Ilios 2 to https://my.school.edu/an_install_directory/ would be: https://my.school.edu/an_install_directory/ilios2.php/configuration_assistant
5c. Add at least one user via the 'Add an Ilios Course Director:' section; make
6. We suggest moving the configuration assistant (located at system/application/controllers/configuration_assistant.php) out of the way before live deployment.
7. Turn on Shibboleth protection -- detailed more below.
8. Ilios 2 should now be ready for use.
Construction and population of the database:
The database may be constructed by source-ing the table schemas, stored procedures and stored functions SQL. There after, you may ingest the 2010 MeSH universe SQL or, alternatively, download the MeSH XML of your choosing, ant compile the source code in ilios2_mesh_parser.tar.gz and run the resulting Java program against the XML file to populate your MeSH databases.
To create the needed tables, stored procedures and stored functions for Ilios2, source the following the SQL files:
database/ilios2_tables.sql
database/ilios2_stored.sql
Once you've done this, you should populate the following tables appropriately (an example population exists in database/data_population):
`alert_change_type`
`competency`
`discipline`
`learning_material_status`
`learning_material_user_role`
`school`
`department`
`session_type`
`user_role`
Lastly, the 2010 MeSH universe SQL can be found in the 'mesh_tables_and_data.sql.gz' file which is in the {root_unpack_directory}/database/data_population directory.
What your Shibboleth should protect and expose:
We recommend the following exposure scheme; this is assuming Ilios2 is installed at the web-root:
<Location />
AuthType shibboleth
ShibRequestSetting requireSession 1
require valid-user
</Location>
<LocationMatch /$>
Satisfy Any
Allow from all
</LocationMatch>
<Location /ilios2.php/authentication_controller>
Satisfy Any
Allow from all
</Location>
<Location /index.php>
Satisfy Any
Allow from all
</Location>
<Location /present.html>
Satisfy Any
Allow from all
</Location>
<Location /present_nav_frame.html>
Satisfy Any
Allow from all
</Location>
<Location /present_initial_frame.html>
Satisfy Any
Allow from all
</Location>
<Location /images>
Satisfy Any
Allow from all
</Location>
<Location /system/application/views/scripts>
Satisfy Any
Allow from all
</Location>
<Location /system/application/views/images>
Satisfy Any
Allow from all
</Location>
<Location /favicon.ico>
Satisfy Any
Allow from all
</Location>
<Location /VERSION.php>
Satisfy Any
Allow from all
</Location>
----------- UPGRADING ----------
The least painful way to upgrade would likely be to copy the following items out of the way:
learning_materials
tmp_uploads
present_initial_frame.html
present_actual.php
system/application/config/config.php
system/application/config/database.php
system/application/helpers/I2_url_helper.php
Then backup all data of course, and next unpack the new tar ball over the pre-existing install.
Copy back the above listed assets, also noting any changes to the files listed at the top of this document (like system/application/config/config.php ) which need be included in your older version.
Lastly, run the _THIS_UPGRADE.sql script against your existing Ilios database.
----------- SECURITY -----------
While there is support built in to allow an Ilios-only authentication system, it is turned off in this deployment as we deploy at UCSF using Shibboleth to provide authentication. Future distribution releases containing real documentation will describe how to more easily enable Ilios-only authentication; the more adventurous developer should look at system/application/controllers/authentication_controller.php as a starting point.
Additionally, to restate the installation step above: We suggest moving system/application/controllers/configuration_assistant.php out of the way before public deployment.
--------- KNOWN ISSUES ---------
---- CAVEATS TO DEVELOPERS -----
. A number of things depend on the Javascript 'thread' model (or lack thereof); should you be considering porting this code to a different language, please keep that in mind.
------------ THANKS ------------
The Ilios 2 Team would like to thank the UCSF School of Medicine and Office of Educational Technology for their support of this project.