Debian 12

From VoIPmonitor.org
Revision as of 11:45, 6 January 2026 by Admin (talk | contribs) (Fix Note templates: use tt instead of code tags (MediaWiki parser bug workaround))

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 11.4 or later (Debian 12 ships with MariaDB) - Fully supported, tested with MariaDB 11.8

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

ℹ️ Note: Set innodb_buffer_pool_size to approximately half of your available RAM. innodb_read_only_compressed OFF is required starting from MariaDB 10.6.

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&allowed&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

ℹ️ Note: Replace eth0 with your actual network interface name (e.g., ens33).

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

AI Summary for RAG

Summary: Complete installation guide for VoIPmonitor on Debian 12 (Bookworm). Covers three main components: MariaDB database setup (version 11.4+ supported, tested with 11.8), Web GUI installation with PHP 8.2 and IonCube loader, and Sensor (sniffer) installation using static binary package. Includes performance tuning for MariaDB (innodb_buffer_pool_size, innodb_flush_log_at_trx_commit), optional steps for pre-downloading GUI binaries (phantomjs, sox), and instructions for building from source.

Keywords: Debian 12, Bookworm, MariaDB 11.4, MariaDB 11.8, installation, sensor, sniffer, GUI, PHP 8.2, IonCube, Apache2, innodb_buffer_pool_size, innodb_read_only_compressed, static binary, build from source

Key Questions:

  • How to install VoIPmonitor on Debian 12 Bookworm?
  • Which MariaDB version is supported on Debian 12?
  • Is MariaDB 11.4 or 11.8 compatible with VoIPmonitor?
  • What are the prerequisites for VoIPmonitor on Debian 12?
  • How to configure MariaDB for VoIPmonitor on Debian?
  • How to install IonCube loader for PHP 8.2 on Debian 12?
  • How to build VoIPmonitor sensor from source on Debian 12?

See Also