= Configuring LibreNMS on Single server Multi virtual host environment = This will guide you through installing LibreNMS setup on Ubuntu 20.04 LTS server with NGINX running as the web server. === Requirements === * Linux Server running Ubuntu 20.04 LTS * NGINX Installed. * SSL/ HTTPS Certificates issued ( May be using Letsencrypt or Otherwise) * sudo access to the server. All following commands have to be entered as the root user. Best way to do it is, by login in as root with {{{ sudo su }}} === Installation Packages === `apt install software-properties-common` `add-apt-repository universe` `apt update` `apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd` === Adding User for LibreNMS === Adding user into LibreNMS `useradd librenms -d /opt/librenms -M -r -s "$(which bash)"` === Clone LibreNMS fron github === Change the directory to `cd /opt` Then run this script `git clone https://github.com/librenms/librenms.git` After that, Setting Permission for LibreNMS `chown -R librenms:librenms /opt/librenms` `chmod 771 /opt/librenms` `setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/` `setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/` === Installing PHP dipendencies === ` su - librenms` `./scripts/composer_wrapper.php install --no-dev` `exit` If this script fails, The workaround is to install the composer package manually. {{{#!bash wget https://getcomposer.org/composer-stable.phar mv composer-stable.phar /usr/bin/composer chmod +x /usr/bin/composer }}} === Set timeZone for LibreNMS === In this link you can select your timezone https://php.net/manual/en/timezones.php (Asia/ Colombo) Ensure date.timezone is set in php.ini to your preferred time zone. (you can use nano or vi to edit) `vi /etc/php/7.4/fpm/php.ini` `vi /etc/php/7.4/cli/php.ini` set the time zone `timedatectl set-timezone Etc/UTC` (Asia/ Colombo) `;date.timezone = Asia/Colombo (remove ";" and add Asia/ Colombo)` == Configuring Maria DB == Use vi or nano to edit `vi /etc/mysql/mariadb.conf.d/50-server.cnf` Add these within the [mysqld] `innodb_file_per_table=1` `lower_case_table_names=0` after adding the above lines, save and exit. Then, enable and restart the DB `systemctl enable mariadb` `systemctl restart mariadb` loggin to the db `mysql -u root` now you have to create a database for LibreNMS `CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;` `CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';` `GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';` `FLUSH PRIVILEGES;` `exit`