Rocky 9: Difference between revisions
(Review: oprava formátování (syntaxhighlight pro všechny kódové bloky), přidání hlavního nadpisu, oprava odkazů na wiki stránky, přidání AI Summary for RAG sekce) |
(Review: odstranění nerelevantního obsahu (anti-fraud), opravy formátování (přidán [mysqld] header, opravena syntaxe SQL, přidán mysqladmin create), vylepšení AI Summary) |
||
| Line 21: | Line 21: | ||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
[mysqld] | |||
innodb_flush_log_at_trx_commit = 2 | innodb_flush_log_at_trx_commit = 2 | ||
innodb_buffer_pool_size = | innodb_buffer_pool_size = 8G | ||
skip-log-bin | skip-log-bin | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 30: | Line 31: | ||
Rocky 9 uses MySQL 8.0 which defaults to <code>caching_sha2_password</code>. Since this guide installs PHP 8.2 (which is newer than PHP 7.4.4), the '''mysql_native_password line is NOT required'''. PHP 8.2 with the mysqlnd driver automatically supports caching_sha2_password. | Rocky 9 uses MySQL 8.0 which defaults to <code>caching_sha2_password</code>. Since this guide installs PHP 8.2 (which is newer than PHP 7.4.4), the '''mysql_native_password line is NOT required'''. PHP 8.2 with the mysqlnd driver automatically supports caching_sha2_password. | ||
If you see MySQL deprecation warnings about mysql_native_password, you can safely use the standard MySQL 8 authentication without any additional configuration | If you see MySQL deprecation warnings about mysql_native_password, you can safely use the standard MySQL 8 authentication without any additional configuration. | ||
{{Note|1=Set <code>innodb_buffer_pool_size</code> to approximately 50% of your available RAM for a combined server (GUI + DB + Sensor). See the [[Scaling]] guide for more details.}} | |||
{{Note|Set <code>innodb_buffer_pool_size</code> to approximately | |||
'''3. Start MySQL and configure authentication:''' | '''3. Start MySQL and configure authentication:''' | ||
| Line 49: | Line 44: | ||
Set root password for MySQL (can be empty): | Set root password for MySQL (can be empty): | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="bash"> | ||
mysql | mysql -e "ALTER USER root@localhost IDENTIFIED BY ''; FLUSH PRIVILEGES;" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 58: | Line 52: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysql_secure_installation | mysql_secure_installation | ||
</syntaxhighlight> | |||
'''5. Create the VoIPmonitor database:''' | |||
<syntaxhighlight lang="bash"> | |||
mysqladmin create voipmonitor | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 118: | Line 118: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab | echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab | ||
systemctl restart crond | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Note|Install Postfix for email alert functionality (see " | {{Note|Install Postfix for email alert functionality (see "Install Mail Transfer Agent" section below).}} | ||
== System Timezone Configuration == | == System Timezone Configuration == | ||
| Line 153: | Line 153: | ||
For detailed Postfix/SMTP configuration (relay hosts, authentication), see the [[Alerts|Alerts & Reports]] guide. | For detailed Postfix/SMTP configuration (relay hosts, authentication), see the [[Alerts|Alerts & Reports]] guide. | ||
== Sensor Installation == | == Sensor Installation == | ||
| Line 195: | Line 164: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd /usr/local/src | cd /usr/local/src | ||
wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O | wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O voipmonitor-sniffer.tar.gz | ||
tar xzf | tar xzf voipmonitor-sniffer.tar.gz | ||
cd voipmonitor-* | cd voipmonitor-*-static | ||
mkdir -p /etc/init.d | mkdir -p /etc/init.d | ||
./install-script.sh --no-user-input | ./install-script.sh --no-user-input | ||
| Line 214: | Line 183: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Note|Replace <code>eth0</code> with your actual network interface name.}} | {{Note|1=Replace <code>eth0</code> with your actual network interface name. Use <code>ip link</code> to list available interfaces.}} | ||
'''4. Start and enable sensor:''' | '''4. Start and enable sensor:''' | ||
| Line 246: | Line 215: | ||
systemctl disable firewalld | systemctl disable firewalld | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Post-Installation: Moving MySQL Data Directory == | |||
If your root partition is too small, move MySQL data to a larger partition (e.g., /home/mysql): | |||
<syntaxhighlight lang="bash"> | |||
# 1. Stop MySQL | |||
systemctl stop mysqld | |||
# 2. Create new directory on larger partition | |||
mkdir -p /home/mysql | |||
# 3. Copy existing data (preserving permissions) | |||
cp -rp /var/lib/mysql/* /home/mysql/ | |||
# 4. Update MySQL configuration | |||
# Edit /etc/my.cnf.d/mysql-server.cnf and change: | |||
# datadir = /home/mysql | |||
# 5. Update SELinux context (if SELinux was not disabled) | |||
semanage fcontext -a -t mysqld_db_t "/home/mysql(/.*)?" | |||
restorecon -Rv /home/mysql | |||
# 6. Start MySQL | |||
systemctl start mysqld | |||
# 7. Verify MySQL is using new directory | |||
mysql -e "SELECT @@datadir;" | |||
</syntaxhighlight> | |||
{{Warning|Ensure sufficient disk space for the new location before moving MySQL data.}} | |||
== Finish Installation == | == Finish Installation == | ||
| Line 255: | Line 255: | ||
* [[Sniffer_configuration|Configuration file]] - Full configuration reference | * [[Sniffer_configuration|Configuration file]] - Full configuration reference | ||
* [[Systemd_for_voipmonitor_service_management|systemd for voipmonitor service management]] - Systemd service file | * [[Systemd_for_voipmonitor_service_management|systemd for voipmonitor service management]] - Systemd service file | ||
* [[Debian_12]] - Installation guide for Debian 12 | |||
== AI Summary for RAG == | == AI Summary for RAG == | ||
'''Summary:''' Step-by-step installation guide for VoIPmonitor on Rocky Linux 9 with PHP 8.2 and MySQL 8.0. Covers MySQL installation and configuration (including innodb_buffer_pool_size sizing | '''Summary:''' Step-by-step installation guide for VoIPmonitor on Rocky Linux 9 with PHP 8.2 and MySQL 8.0. Covers MySQL installation and configuration (including innodb_buffer_pool_size sizing at 50% RAM for combined server), Web GUI installation with PHP 8.2 from Remi repository, IonCube loader setup, SELinux disabling, Apache httpd configuration, cron setup for alerts, timezone configuration, Postfix MTA installation for email alerts, optional MySQL data directory relocation, and sensor (sniffer) installation with systemd service management. Includes firewall configuration options using firewall-cmd. PHP 8.2 natively supports MySQL 8's caching_sha2_password authentication - mysql_native_password configuration is NOT required. | ||
'''Keywords:''' Rocky Linux 9, installation, MySQL 8.0, PHP 8.2, Remi repository, IonCube, SELinux, Apache httpd, systemd, firewall-cmd, caching_sha2_password, mysql_native_password, innodb_buffer_pool_size, Postfix, MTA, timezone, sensor installation, voipmonitor.conf | '''Keywords:''' Rocky Linux 9, installation, MySQL 8.0, PHP 8.2, Remi repository, IonCube, SELinux, Apache httpd, systemd, firewall-cmd, caching_sha2_password, mysql_native_password, innodb_buffer_pool_size, Postfix, MTA, timezone, sensor installation, voipmonitor.conf, RHEL 9, AlmaLinux 9 | ||
'''Key Questions:''' | '''Key Questions:''' | ||
| Line 273: | Line 274: | ||
* What is the systemd service configuration for VoIPmonitor? | * What is the systemd service configuration for VoIPmonitor? | ||
* How do I configure email alerts on Rocky Linux 9? | * How do I configure email alerts on Rocky Linux 9? | ||
* Is this guide applicable to AlmaLinux 9 or RHEL 9? | |||
Latest revision as of 18:00, 6 January 2026
Rocky Linux 9 Installation Guide
This guide describes the installation of VoIPmonitor on Rocky Linux 9 with PHP 8.2 and MySQL 8.0. The installation consists of three main components: MySQL database, Web GUI, and the Sensor (sniffer).
Prerequisites
- Fresh Rocky Linux 9 installation
- Root access
- Internet connectivity
MySQL Installation
1. Install MySQL server:
dnf install mysql-server
2. Configure MySQL:
Edit /etc/my.cnf.d/mysql-server.cnf and add:
[mysqld]
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 8G
skip-log-bin
Note on MySQL Authentication Methods:
Rocky 9 uses MySQL 8.0 which defaults to caching_sha2_password. Since this guide installs PHP 8.2 (which is newer than PHP 7.4.4), the mysql_native_password line is NOT required. PHP 8.2 with the mysqlnd driver automatically supports caching_sha2_password.
If you see MySQL deprecation warnings about mysql_native_password, you can safely use the standard MySQL 8 authentication without any additional configuration.
ℹ️ Note: Set innodb_buffer_pool_size to approximately 50% of your available RAM for a combined server (GUI + DB + Sensor). See the Scaling guide for more details.
3. Start MySQL and configure authentication:
systemctl start mysqld
systemctl enable mysqld
Set root password for MySQL (can be empty):
mysql -e "ALTER USER root@localhost IDENTIFIED BY ''; FLUSH PRIVILEGES;"
4. Run security configuration:
mysql_secure_installation
5. Create the VoIPmonitor database:
mysqladmin create voipmonitor
Web GUI Installation
1. Enable PHP 8.2 from Remi repository:
Rocky 9 ships with PHP 8.0, but IonCube requires PHP 8.2:
dnf install epel-release
dnf install http://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf module reset php
dnf module install php:remi-8.2
2. Install required packages:
dnf install wget httpd wireshark php php-gd php-mysqlnd php-mbstring php-zip mtr php-process librsvg2 librsvg2-tools urw-fonts
3. Install IonCube loader:
wget http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.2.so -O /usr/lib64/php/modules/ioncube_loader_lin_8.2.so
echo "zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_8.2.so" > /etc/php.d/01_ioncube.ini
4. Disable SELinux:
SELinux must be disabled for VoIPmonitor to function properly:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
5. Download and install GUI:
cd /var/www/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*/* ./
6. Configure permissions and start Apache:
chown -R apache /var/www/html
mkdir -p /var/spool/voipmonitor
chown apache /var/spool/voipmonitor
systemctl start httpd
systemctl enable httpd
7. Configure cron for alerts and reports:
echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
systemctl restart crond
ℹ️ Note: Install Postfix for email alert functionality (see "Install Mail Transfer Agent" section below).
System Timezone Configuration
VoIPmonitor uses the system timezone for MySQL timestamps. Configure the correct timezone before starting the sensor:
# Set system timezone (replace with your timezone)
timedatectl set-timezone Europe/Prague
# Verify the change
timedatectl
ℹ️ Note: This sets the OS timezone used by MySQL. The GUI timezone is configured separately in GUI > Settings > System Configuration > National > Timezone.
Install Mail Transfer Agent (MTA)
Email alerts and reports require a functioning MTA. Postfix is recommended for Rocky Linux 9:
# Install Postfix
dnf install postfix
# Enable and start Postfix
systemctl enable --now postfix
# Verify Postfix is running
systemctl status postfix
For detailed Postfix/SMTP configuration (relay hosts, authentication), see the Alerts & Reports guide.
Sensor Installation
1. Create systemd service file:
Create /etc/systemd/system/voipmonitor.service - see systemd for voipmonitor service management for the template.
2. Download and install sensor:
cd /usr/local/src
wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O voipmonitor-sniffer.tar.gz
tar xzf voipmonitor-sniffer.tar.gz
cd voipmonitor-*-static
mkdir -p /etc/init.d
./install-script.sh --no-user-input
3. 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. Use ip link to list available interfaces.
4. Start and enable sensor:
systemctl daemon-reload
systemctl start voipmonitor
systemctl enable voipmonitor
Firewall Configuration
Option 1: Allow specific IP access:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP" accept'
firewall-cmd --reload
Option 2: Open HTTP port:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
Option 3: Disable firewall (not recommended for production):
systemctl stop firewalld
systemctl disable firewalld
Post-Installation: Moving MySQL Data Directory
If your root partition is too small, move MySQL data to a larger partition (e.g., /home/mysql):
# 1. Stop MySQL
systemctl stop mysqld
# 2. Create new directory on larger partition
mkdir -p /home/mysql
# 3. Copy existing data (preserving permissions)
cp -rp /var/lib/mysql/* /home/mysql/
# 4. Update MySQL configuration
# Edit /etc/my.cnf.d/mysql-server.cnf and change:
# datadir = /home/mysql
# 5. Update SELinux context (if SELinux was not disabled)
semanage fcontext -a -t mysqld_db_t "/home/mysql(/.*)?"
restorecon -Rv /home/mysql
# 6. Start MySQL
systemctl start mysqld
# 7. Verify MySQL is using new directory
mysql -e "SELECT @@datadir;"
⚠️ Warning: Ensure sufficient disk space for the new location before moving MySQL data.
Finish Installation
Open your browser and navigate to http://your-server-ip/ to complete the web-based setup wizard.
See Also
- Scaling - Performance tuning
- Configuration file - Full configuration reference
- systemd for voipmonitor service management - Systemd service file
- Debian_12 - Installation guide for Debian 12
AI Summary for RAG
Summary: Step-by-step installation guide for VoIPmonitor on Rocky Linux 9 with PHP 8.2 and MySQL 8.0. Covers MySQL installation and configuration (including innodb_buffer_pool_size sizing at 50% RAM for combined server), Web GUI installation with PHP 8.2 from Remi repository, IonCube loader setup, SELinux disabling, Apache httpd configuration, cron setup for alerts, timezone configuration, Postfix MTA installation for email alerts, optional MySQL data directory relocation, and sensor (sniffer) installation with systemd service management. Includes firewall configuration options using firewall-cmd. PHP 8.2 natively supports MySQL 8's caching_sha2_password authentication - mysql_native_password configuration is NOT required.
Keywords: Rocky Linux 9, installation, MySQL 8.0, PHP 8.2, Remi repository, IonCube, SELinux, Apache httpd, systemd, firewall-cmd, caching_sha2_password, mysql_native_password, innodb_buffer_pool_size, Postfix, MTA, timezone, sensor installation, voipmonitor.conf, RHEL 9, AlmaLinux 9
Key Questions:
- How do I install VoIPmonitor on Rocky Linux 9?
- What PHP version is required for VoIPmonitor on Rocky 9?
- How do I install PHP 8.2 on Rocky Linux 9?
- Do I need to configure mysql_native_password on Rocky 9?
- How do I configure the firewall for VoIPmonitor on Rocky Linux?
- How do I install IonCube loader on Rocky Linux 9?
- How do I disable SELinux for VoIPmonitor?
- How do I move MySQL data directory to a different partition?
- What is the systemd service configuration for VoIPmonitor?
- How do I configure email alerts on Rocky Linux 9?
- Is this guide applicable to AlmaLinux 9 or RHEL 9?