-
Notifications
You must be signed in to change notification settings - Fork 178
Installing Loris in Depth
The following details steps for Ubuntu 16.04. Your mileage may vary.
- 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
-
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 add-apt-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.0 php7.0-mysql php7.0-xml php7.0-json php7.0-mbstring php7.0-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.0
, this installs a module for apache2 that allows it to use PHP -
sudo a2enmod php7.0
, 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
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.0-xml
, run sudo dpkg -l | grep php7.0-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-directory>
= The name of the LORIS install directory -
<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>
=$projectname
-
<loris-directory>
=$projectname
-
<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) - Run
sudo mkdir -m 775 -p <loris-directory>
- Run
sudo chown <unix-user>.<unix-user> <loris-directory>
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
If you want to get the files with Git, go here
If you want to get the files via a zip
file, go here
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-directory>
- Run
cd Loris/tools
- Run
sudo ./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
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 php<version>-xml
. If you're running PHP 7.0, it will besudo apt-get install php7.0-xml
. If you're running PHP 7.1, it will besudo apt-get install php7.1-xml
.
Assuming you let the install script configure apache2 for you but it didn't work out for some reason.
- Run
sudo a2enmod rewrite
- Run
sudo a2ensite <project-name>
- Run
sudo service apache2 restart
If you are hosting the database yourself (locally or externally), go here
If you are a summer student installing "Raisin Bread", 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 and are ready to browse instructions to set up other things in LORIS
Check the following
-
The
'base'
path is configured correctly (this should be the case if done automatically). The path has to end with a forward slash/
and should look like,/var/www/<loris-directory>/Loris/
. -
That
<loris-directory>/Loris/smarty/templates_c
exists; if it doesn't,cd <loris-directory>/Loris/smarty
sudo mkdir templates_c
sudo chmod 777 templates_c
-
That
<loris-directory>/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-directory>/Loris/smarty/templates_c
)