# Install openSIS Student Information System on Debian/Ubuntu Linux

## What is openSIS (Open Student Information System)

> openSIS is a commercial grade, secure, scalable & intuitive Student Information System / School Management Software that just works. It is published by OS4ED, a full life cycle software development company headquartered in the USA. -https://www.opensis.com/

## Installation

1. Log into the Linux based device
2. Run the following commands in the terminal
   # update software repositories
   sudo apt update
   # install available software updates
   sudo apt upgrade -y
   # install some dependencies
   sudo apt install git apt-transport-https ca-certificates curl -y
   # install Apache HTTPD and MySQL
   sudo apt install apache2 mariadb-server mariadb-client -y
   # install PHP components
   sudo apt install php7.3 libapache2-mod-php7.3 php7.3-common php7.3-mysql php7.3-ldap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring -y
   # configure the MySQL database
   sudo su
   mysql_secure_installation
3. Press Enter to login as root
4. Type Y and press Enter to set a root password, type the password twice to confirm
5. Type Y and press Enter to remove anonymous users
6. Type Y and press Enter to disallow root login remotely
7. Type Y and press Enter to remove the test database
8. Type Y and press Enter to reload privilege tables
9. Run the following command to login into MySQL:
   mysql -u root -p
10. Authenticate with the root password set earlier
11. Run the following commands to create the openSIS database and database user
    CREATE DATABASE openSIS DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    GRANT ALL ON openSIS.* TO 'openSIS_rw'@'localhost' IDENTIFIED BY 'Op3nS!S';
    FLUSH PRIVILEGES;
    EXIT;
    exit
12. Continue with the following commands to download and extract openSIS in the Apache webroot
    # clone from git
    sudo git clone https://github.com/OS4ED/openSIS-Classic.git /var/www/html/openSIS
    # cd into the new openSIS directory
    cd /var/www/html/openSIS
    # checkout the latest version
    sudo git checkout "$(git tag --sort=v:refname | tail -n1)"
    # set permissions on the openSIS directory
    sudo chown -R www-data:www-data /var/www/html/openSIS
    # edit mysql strict mode
    sudo nano /etc/mysql/conf.d/strict_mode.cnf
13. Paste the following into strict_mode.cnf

    [mysqld]
    sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

14. Press CTRL+O, Enter, CTRL+X to write the changes
15. Continue with the following commands in the terminal
    # restart mariadb service
    sudo systemctl restart mariadb
16. Open a web browser and navigate to http://DNSorIP/openSIS
17. Click the New Installation option
18. Click the Continue button
19. Complete the MySQL connection form as follows

    Server: localhost
    Port: 3306
    MySQL Username: openSIS_rw
    MySQL Password: Op3nS!S

20. Click the Save & Next button
21. Enter the database name openSIS > Click the Save & Next button
22. Wait while the database schema is built
23. Complete the School Information form > Click the Save & Next button
24. Complete the Site Admin Account form > Click the Save & Next button
25. Click the Proceed to openSIS Login button
26. Login using the admin account credentials created earlier
27. Welcome to openSIS

More Info: https://github.com/OS4ED/openSIS-Classic/wiki/openSIS-Installation-Instructions