I really liked this software and wanted to get it going on a lamp server instead of using vagrant scotchbox.  I did this in a test environment so you may want to use another user instead of root in a production environment.

First I downloaded the virual machine that was ready to go for webhosting.  https://www.turnkeylinux.org/lamp

If you are installing on a physical machine instead download the ISOs. https://www.turnkeylinux.org/download?file=turnkey-lamp-15.1-stretch-amd64.iso

The software I will be using is located here: https://github.com/nasa/isle

After setting up the Turnkey Lamp Server here are the steps I took to get ISLE working:

  • Install the following:
    • apt-get install php-mysql
    • apt-get install php-pgsql
    • apt-get install php-imagick
  • Enable the following Module
    • a2enmod rewrite
  • (I found out later this step can be skipped if you use adminer username instead) By default the mysql root user was using the unix_socket type for authentication.  We need to change this like so:
    • mysql -uroot -p (this is to login to mysql)
    • use mysql; (this selects the mysql database)
    • UPDATE user SET plugin='mysql_native_password' WHERE User='root';(Sets the plugin to mysql native password)
    • exit;
    • systemctl restart mysql
  • Open /etc/apache2/apache2.conf and find the line that says <Directory /var/www/>
    • Change AllowOverride None to AllowOverride all
  • These commands are handy for troubleshooting:
    • php -v (version 7.0 and 5.7 worked for me)
    • php -m (PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, and pgsql should be listed)
    • apache2ctl -S (Shows current configuration information for apache)
  • After that I downloaded the files from here or you can clone it with the git command.
  • I had to edit some lines in order for it to work correctly on PHP 7.  The lines are found here. (Review the reference section at the bottom if you want to install PHP 5.6)
    • webroot/isle/includes/classes/Models/Node.php
      • On line 112 replace with:
        • static::{$a[validator]}($this->$prop);
    • webroot/isle/remoteInterface.php
      • On line 258 replace with:
        • $addedItem = $svc->{$_POST[‘method’]}($class);
      • On line 277 replace with:
        • $addedItem = $svc->{$_POST[method]}($class);
      • On line 346 replace with:
        • $rows = $svc->{$_REQUEST[method]}($class, $_REQUEST[start], $_REQUEST[limit], $_REQUEST[select], $_REQUEST[distinct], $_REQUEST[filter], $_REQUEST[order]);
      • On line 367 replace with:
        • $rows = $svc->{$_REQUEST[method]}($class);
  • Copy the files to /var/www.  The files/folders of importance are:
    • instances, webroot, isle.local.conf
  • I then ran the following just incase the permissions where wrong:
    • chmod 755 -R /var/www
    • chown www-data:www-data -R /var/www
    • systemctl restart apache2
  • I then opened the file called isle-init.sh and ran each command on its own.  You can execute the script but I wanted to see the process through manually.
  • Make sure the mysql username and password are correct in this file:
    • /var/www/webroot/isle/includes/classes/DataProviders/ISLE.php
  • You then should be able to browse to https://serverIP/myinstance or https://serverIP/myinstance2
  • If you have problems check out the log file it has very useful information:
    • /etc/logrotate.d/myinstance
    • /etc/logrotate.d/myinstance2
  • If an extra field is added edit this location to add it to the search criteria:
    • isle\cdn\scripts-dev\src\app\views\assets.js around line 360