Debian 12

From VoIPmonitor.org
Revision as of 22:17, 11 December 2025 by Maintenance script (talk | contribs) (Restructure: reduce excessive headings, use numbered steps)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This guide describes the installation of VoIPmonitor on Debian 12 (Bookworm) with PHP 8.2. The installation consists of three main components: MariaDB database, Web GUI, and the Sensor (sniffer).

Prerequisites

  • Fresh Debian 12 installation
  • Root access
  • Internet connectivity

MariaDB Installation

1. Install MariaDB server:

apt-get update
apt-get -y install mariadb-server

2. Configure root authentication:

Change the authentication method for root@localhost from unix_socket to mysql_native_password. Start mysql console and run:

mysql
MariaDB> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
MariaDB> SET PASSWORD = PASSWORD("");
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit

3. Configure MariaDB for performance:

Edit /etc/mysql/mariadb.conf.d/50-server.cnf and add these options to the [mysqld] section. See the scaling guide for more details.

innodb_flush_log_at_trx_commit = 2
innodb_file_format = barracuda
innodb_buffer_pool_size = 8GB
innodb_read_only_compressed = OFF

Template:Note

4. Apply changes and create database:

systemctl restart mariadb
mysqladmin create voipmonitor

Web GUI Installation

1. Install required packages:

apt-get install php php-gd php-mysql php-cli php-curl libapache2-mod-php php-mbstring php-zip tshark mtr librsvg2-bin fonts-urw-base35 rrdtool libtiff-tools wget

When asked if non-superusers can capture traffic, answer No.

2. Install PHP 8.2 packages:

apt-get install php8.2 php8.2-gd php8.2-mysql php8.2-cli php8.2-mbstring php8.2-zip libapache2-mod-php8.2

3. Install IonCube loader:

IonCube is required for the encrypted PHP files in the GUI.

wget --no-continue 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/mods-available/ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/apache2/conf.d/01-ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/cli/conf.d/01-ioncube.ini

4. Download and install GUI:

cd /var/www/html
rm -f index.html 
wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&phpver=82" -O w.tar.gz
tar xzf w.tar.gz
mv voipmonitor-gui*/* ./

5. Configure cron and permissions:

echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
kill -HUP $(pgrep cron)
chown -R www-data /var/www/html
mkdir -p /var/spool/voipmonitor/
chown www-data /var/spool/voipmonitor/
systemctl restart apache2

Sensor Installation

1. Download and install sensor:

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

2. Configure sensor:

Edit /etc/voipmonitor.conf and set at minimum:

interface = eth0
spooldir = /var/spool/voipmonitor
cleandatabase = 31
sipport = 5060
maxpoolsize = 102400

Template:Note

3. Start and enable sensor:

systemctl start voipmonitor
systemctl enable voipmonitor

Finish Installation

Open your browser and navigate to http://your-server-ip/ to complete the web-based setup wizard.

Optional: Pre-download GUI Binaries

You can speed up the installation by pre-downloading binaries the GUI needs:

wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
gunzip '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
chmod +x '/var/www/html/bin/phantomjs-2.1.1-x86_64'
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O '/var/www/html/bin/sox-x86_64.gz'
gunzip '/var/www/html/bin/sox-x86_64.gz'
chmod +x '/var/www/html/bin/sox-x86_64'

Optional: Building from Source

To build the sensor from source code:

1. Install build dependencies:

apt-get -y install git build-essential unixodbc-dev libvorbis-dev libpcap-dev libsnappy-dev libcurl4-openssl-dev libicu-dev libjson-c-dev libssh-dev librrd-dev libglib2.0-dev libxml2-dev libfftw3-dev liblzma-dev liblzo2-dev libpng-dev libgcrypt-dev libgoogle-perftools-dev libmariadb-dev libmariadb-dev-compat

2. Clone and build:

mkdir /usr/src/voipmonitor-git
cd /usr/src/voipmonitor-git
git clone https://github.com/voipmonitor/sniffer.git ./
./configure
make
make install

See Also