-
Notifications
You must be signed in to change notification settings - Fork 183
Installing Loris (After Installing Prerequisites)
- You have a LAMP stack (Linux, Apache, MySQL, PHP); Apache2, MySQL 5.7.9 minimally, PHP 7.0 minimally (as of this writing)
- You have composer
- You'll be ssh'ing into a remote machine
- You have the following PHP extensions:
ext-dom,ext-json,ext-pcre,ext-pdo,ext-reflection,ext-simplexml,ext-spl,ext-tokenizer,ext-xml,ext-xmlwriter
- If you're a non-developer, you have
wget
andunzip
- You have
libapache2-mod-php<version>
installed and enabled - You have
php<version>-mysql
PHP extensions list populated with:
composer show --tree | grep -oP '\-\-\K(ext-[a-zA-Z0-9-][a-zA-Z0-9-]*)' | sort | uniq | tr '\n' ',' | awk '{print $1"\n"}'
If you need to know the exact names of the PHP extensions to install, run the following command,
sudo apt-cache pkgnames | grep php7
For example, ext-xml
will have the package name php7.0-xml
, which should be found on the output.
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)
The following details steps for Ubuntu 16.04. Your mileage may vary.
-
<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 the
sudo
group (likeroot
) - Run
sudo useradd -U -m -G sudo -s /bin/bash <unix-user>
- Run
sudo passwd <unix-user>
- Run
su - <unix-user>
- You should now be ssh'd as
<unix-user>
In this example, loris-install-dude
is the <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
In this example, LorisInstall
is the <loris-directory>
Developers, ignore this. Move on to Instructions for developers.
If you're a non-developer that wants to use Git, ignore this. Move on to Instructions for developers.
- Go to the Loris repository
- Look for "releases"
- Click it
- Look for the "Latest release" label
- Look for the "Source code" URL(s)
-
Right-click the
.zip
URL - Copy the URL (AKA "link address")
- You now have the
<loris-release-url>
The "releases" location:
The "Latest release" and "Source code" locations:
Developers, ignore this. Move on to Instructions for developers.
If you're a non-developer that wants to use Git, ignore this. Move on to Instructions 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
sudo wget <loris-release-url> -O release.zip
- Run
sudo unzip release.zip
- Run
ls
- You'll see a directory name that looks like
Loris-XX.X.X
, we'll call it<loris-release-directory>
- Run
sudo mv <loris-release-directory> Loris
- Run
ls
- You should see that
<loris-release-directory>
has been renamed toLoris
- Run
sudo rm release.zip
Downloading and unzipping:
Renaming and cleaning up:
Non-developers may ignore this. It involves using Git.
- Do everything here first
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
./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
.
In this example, LorisInstall
is also the <project-name>
for consistency. Your project name shouldn't differ too much from your <loris-directory>
.
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
- Figure out the
<mysql-host-name>
(maybelocalhost
?) - Create a
<mysql-database>
for Loris (Optional) - The
<mysql-admin-username>
should have ALL privileges granted on<mysql-database>
(Or all privileges on the entire MySQL server, likeroot
) - Don't forget your
<mysql-admin-password>
!
- The
<mysql-user-username>
should haveSELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, CREATE TEMPORARY TABLES, LOCK TABLES
granted on<mysql-database>.*
- Don't forget your
<mysql-user-password>
!
If you are installing "Raisinbread", DO NOT PROCEED. If you don't know what "Raisinbread" is or are not installing it, please proceed.
Instructions for Raisinbread are here
- Figure out your
<loris-url>
- Open your internet browser
- Navigate to
<loris-url>/installdb.php
- Fill in
<mysql-host-name>
(maybelocalhost
?) - Fill in
<mysql-admin-username>
- Fill in
<mysql-admin-password>
- Fill in
<mysql-database>
- If you're a summer student, chances are, your database will have already been created for you. So, check the Use Existing Database checkbox.
- If you're a summer student, chances are, you installed a sample data set. So, check the Do Not Install checkbox.
- Submit
- Fill in
<mysql-user-username>
- Fill in
<mysql-user-password>
- If you're a summer student, chances are, your MySQL user will have already been created for you. So, check the Already Created checkbox.
- Fill in
<loris-admin-username>
, you get to decide on whatever it is! - Fill in
<loris-admin-password>
, you get to decide on whatever it is! - Don't forget your
<loris-admin-username>
and<loris-admin-password>
! - Submit
- A
config.xml
file will have been created at<loris-directory>/Loris/project
- The
project
folder is where your custom files go, all files in the folder are ignored by git
Filling in information:
Done!
- 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?
Check two things,
- 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 - That
<loris-directory>/Loris/smarty/templates_c
is owned bywww-data
(Runls -al
to check) or has777
permissions (Not ideal butinstall.sh
does this)