-
Notifications
You must be signed in to change notification settings - Fork 174
Installing Loris in Depth
DEPRECATED Please refer to this documentation directory
Last tested on Ubuntu 16.04 for LORIS 21.0.1
The following instructions must be executed in sequence. If you get an error at any of the steps, troubleshoot them before continuing.
When you're done, don't forget to continue following the rest of the Setup Guide including imaging setup.
- You are on Ubuntu 16.04;
lsb_release -a
should say Ubuntu 16.04 - You'll be ssh'ing into a remote machine. If you are not, just ignore the steps that tell you to
ssh
If you are a LORIS team developer installing RaisinBread:
- See also the Readme in the
raisinbread/
directory in this repo (choose your branch wisely) - Use your MCIN login to view this beta install doc
-
ssh
into your remote machine as a user in thesudo
group (likeroot
) - Run the following commands in sequence. If you get an error at any of the steps, troubleshoot them before continuing.
sudo apt-get update
- If you'll be hosting the database locally,
sudo apt-get install -y mysql-server
- If you'll be hosting the database externally,
sudo apt-get install -y mysql-client
-
sudo apt-get install -y zip curl wget python-software-properties software-properties-common
, this will install some utilities that will help the install process -
sudo apt-add-repository ppa:ondrej/php
, this is a personal package archive (PPA) that will allow you to install more recent versions of PHP on Ubuntu sudo apt-get update
-
sudo apt-get install -y apache2
, this installs the web server we need (apache2) -
sudo apt-get install -y php7.2 php7.2-mysql php7.2-xml php7.2-json php7.2-mbstring php7.2-gd
, this installs PHP and the necessary extensions for LORIS to work -
sudo apt-get install -y composer
, this is a package manager that LORIS uses for its PHP dependencies -
sudo apt-get install -y libapache2-mod-php7.2
, this installs a module for apache2 that allows it to use PHP -
sudo a2enmod php7.2
, this enables the module for apache2, in case it wasn't enabled before -
sudo service apache2 restart
, this restarts the web server, allowing changes (like modules being enabled) to take effect
Ensure you have set up your MySQL root credential before continuing further.
To figure out if you have a specific package installed,
sudo dpkg -l | grep <partial-or-whole-package-name>
So, to figure out if you have php7.2-xml
, run sudo dpkg -l | grep php7.2-xml
So, to figure out if you have libapache2-mod-php<version>
, run sudo dpkg -l | grep libapache2-mod
(remember that partial package names work)
-
<unix-user>
= The unix user you ssh with -
<loris-release-url>
= The latest LORIS release URL -
<project-name>
= The name of your project -
<loris-host-name>
= The host name of your LORIS install (eg. www.example.com) -
<loris-url>
=<loris-host-name>
with a scheme; typicallyhttp://
orhttps://
(eg. http://www.example.com) -
<mysql-host-name>
= The host name of your MySQL server (You usually append:3306
to it. Maybelocalhost
?) -
<mysql-database>
= The database of your LORIS install hosted on your MySQL server (Or, if you're not familiar with MySQL, the "schema") -
<mysql-admin-username>
= The username of your MySQL admin account (Should have all privileges or all privileges for<mysql-database>
) -
<mysql-admin-password>
= The password of your MySQL admin account -
<mysql-user-username>
= The username of your MySQL user account (Should haveSELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, CREATE TEMPORARY TABLES, LOCK TABLES
granted on<mysql-database>.*
) -
<mysql-user-password>
= The password of your MySQL user account
-
<unix-user>
=lorisadmin
<-- A literal string -
<loris-release-url>
= No equivalent -
<project-name>
=loris
<-- A literal string (may be something else depending on your setup) -
<loris-host-name>
=$yourHostName/_$yourhost_
-
<mysql-host-name>
=$dbhost
-
<mysql-database>
=$dbname
-
<mysql-admin-username>
=lorisDBadmin
<-- A literal string -
<mysql-admin-password>
=$newpassword
-
<mysql-user-username>
=lorisuser
<-- A literal string -
<mysql-user-password>
= No equivalent
You may choose to run everything on root
but that is not necessarily desirable...
-
ssh
into your remote machine as a user in thesudo
group (likeroot
) - Run
sudo useradd -U -m -G sudo -s /bin/bash <unix-user>
, this creates a user and makes some changes to the user; like adding it to thesudo
group. - Run
sudo passwd <unix-user>
, this changes the password of the newly created user - Run
su - <unix-user>
,su
is the command for "switching users". - You should now be ssh'd as
<unix-user>
Make sure you're ssh'd as <unix-user>
- Run
cd /var/www
(Or where yourapache2
is serving files from)
If you want to get the files with Git, go here
If you want to get the files via a zip
file, go here
- Run
sudo chown -R <unix-user>.<unix-user> loris
If
cd /var/www
fails, saying the directory does not exist, make sure you have apache2 installed and that the directory/var/www
is readable (and, later, writable) by the current unix user (which should be the case).
To check if you have apache2 installed, run
apache2 -v
. If you get an error, you do not have apache2 installed and should go install it withsudo apt-get install apache2
.
Note that the path is assumed to be var/www/loris however your own path may be var/www/
<project-name>
, depending on your setup.
If the install script installs
composer
for you, delete it immediately. You should installcomposer
separately usingsudo apt-get install composer
or an equivalent command.Installing
composer
locally has been known to cause issues for developers.
Make sure you're ssh'd as <unix-user>
- Run
cd /var/www
(Or where yourapache2
is serving files from) - Run
cd loris/tools
- Run
./install.sh
- Fill in your
<project-name>
(You get to choose what it is) - Determine if you want
install.sh
to configure apache2 for you - Key in
<unix-user>
's password - Wait
- Installation complete
- Run
make
(for production instances) ormake dev
(for development sandboxes)
If you get an error in the install step, you might be missing
ext-xml
. The prerequisites are listed at the top of this page andext-xml
is one of them. To resolve this, runsudo apt-get install php7.2-xml
.
Note that the path is assumed to be var/www/loris however your own path may be var/www/
<project-name>
, depending on your setup.
After running the install script, if your apache configuration isn't working, try:
- Run
sudo a2enmod rewrite
- Run
sudo a2ensite loris
- Run
sudo service apache2 restart
Note that the path is assumed to be var/www/loris however your own path may be var/www/
<project-name>
, depending on your setup.
If you are hosting the database yourself (locally or externally), go here
- Open your internet browser
- Navigate to
<loris-url>
- Fill in
<loris-admin-username>
- Fill in
<loris-admin-password>
- Log in
- Maybe add your username and password to a password manager?
You now have the basic LORIS features installed and are ready to set up configurations, Behavioural instruments and Imaging support.
Verify the following in your LORIS setup
-
The LORIS
'base'
path is configured correctly in the Configuration module / back-end Config table. This should be the case if done automatically. The path has to end with a forward slash/
and should look like,/var/www/loris/
. If your front end isn't loading, check this Config setting via the MySQL back-end : Troubleshooting information here -
That
loris/smarty/templates_c
exists; if it doesn't,cd loris/smarty
sudo mkdir templates_c
sudo chmod 777 templates_c
-
That
loris/smarty/templates_c
is owned bywww-data
(Runls -al
to check) or has777
permissions (Not ideal butinstall.sh
does something similar, Runsudo chmod 777 loris/smarty/templates_c
)
Note that the path is assumed to be
/var/www/loris/
however your own path may be var/www/<project-name>
, depending on your setup.