Ubuntu 24.04 LTS

From VoIPmonitor.org
Jump to navigation Jump to search

Following steps were necessary to follow to install voipmonitor GUI and sniffer including mysql db into ubuntu 24.04 minimal server installation with 16GB of RAM.

Database

Install

apt-get update
apt-get install tshark mtr librsvg2-bin gsfonts mysql-server ethtool

Configure

Add the recommended settings from our Scaling section of a doc into mysql's config (keep in mind to set up to half of available RAM for use of the mysql read cache - innodb_buffer_pool_size)

echo 'innodb_flush_log_at_trx_commit = 2' >> /etc/mysql/mysql.conf.d/mysqld.cnf
echo 'innodb_buffer_pool_size = 8GB' >> /etc/mysql/mysql.conf.d/mysqld.cnf
echo 'skip-log-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf
echo 'skip-name-resolve' >> /etc/mysql/mysql.conf.d/mysqld.cnf
echo 'default_authentication_plugin=mysql_native_password' >> /etc/mysql/mysql.conf.d/mysqld.cnf

Apply

systemctl restart mysql

Create User

Create the new user in a db for voipmonitor's use with ALL privileges. (Please change YourPassword string to something strong and write it down - it will be necessary to fill password again when configuring the service in /etc/voipmonitor.conf - and when you will login for the first time to the GUI using web-browser.

CREATE USER `voipmonitor`@`127.0.0.1` IDENTIFIED BY 'YourPassword';
GRANT ALL ON voipmonitor.* TO 'voipmonitor'@'127.0.0.1'; 
GRANT SUPER ON *.* TO 'voipmonitor'@'127.0.0.1';
FLUSH PRIVILEGES;

PHP + modules and ioncube:

Unfortunately there is no php 8.3 supported by the ioncube currently (28.5.2024), therefor You need to install php 8.2 from sury's repositories - this expects to use apache2 as a web server(no nginx) - If you want install nginx - this doc not covers it but it is possible as well (add ondrej/nginx instead of ondrej/apache2)

Add O.Sury's repos

add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/apache2
apt update

Install

apt install php8.2 php8.2-gd php8.2-mysql php8.2-cli php8.2-mbstring php8.2-xml php8.2-zip apache2 libapache2-mod-php8.2 cron lsof

(php-unzip chybi)

Enable php82

update-alternatives --set php /usr/bin/php8.2
a2dismod php8.3
a2enmod php8.2

Ioncube install

wget http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.2.so -O /usr/lib/php/8.2/ioncube_loader_lin_8.2.so
echo "zend_extension = /usr/lib/php/8.2/ioncube_loader_lin_8.2.so" > /etc/php/8.2/apache2/conf.d/01-ioncube.ini
echo "zend_extension = /usr/lib/php/8.2/ioncube_loader_lin_8.2.so" > /etc/php/8.2/cli/conf.d/01-ioncube.ini


Voipmonitor sniffer

Install

cd /usr/src
wget http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O vm-sniffer.tar.gz
tar xzf vm-sniffer.tar.gz
cd voipmonitor*
./install-script.sh --no-user-input

Configure

Edit /etc/voipmonitor.conf (set mysqlpass=YourPassword ,mysqluser=voipmonitor, interface=ens33 options at least)
/etc/init.d/voipmonitor start
systemctl enable voipmonitor

Voipmonitor GUI

Install package

cd /var/www/html
wget "http://www.voipmonitor.org/download-gui?version=latest&phpver=82&festry" -O w.tar.gz
tar xzf w.tar.gz
mv voipmonitor-gui*/* ./
rm -f index.html
chown www-data /var/spool/voipmonitor/
chown -R www-data /var/www
echo " * * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
kill -HUP `pgrep cron`
service apache2 restart

First login

Loging in for the first time into voipmonitor's host requires the mysql credentials you set at begin of this doc

configure

use the browser, enter into address bar:

http://IP_of_voipmonitor_host

then fill/change in the voipmonitor page the user for mysql (from root to voipmonitor) and also set the password - then click on re-check (this basic settings is then stored into GUI's installation dir which is /var/www/html/ by default into file ./config/configuration.php.