Installation Instructions#
To install Znuny you need:
A database of your choice:
MySQL 8.0
MariaDB
Postgresql
Oracle
A webserver (Apache)
Some additional Perl modules, depending on the distribution you are using
Disabled SELinux when using Red Hat Linux, Rocky Linux, etc.
Note
This manual is based on the assumption that you are installing on a fresh and empty system using MariaDB.
Basics#
Some basic packages are needed to get going. This includes the web server, database (MariaDB in this case), cpanminus to install additional Perl modules and Tar to extract the source.
CentOS / Red Hat
dnf install -y epel-release httpd mariadb mariadb-server cpanminus gcc dnf-plugins-core
yum config-manager --set-enabled powertools
Ubuntu / Debian
apt update
apt install -y apache2 mariadb-client mariadb-server cpanminus
Install an RPM#
The installation via RPM
# Znuny 7.0.19
yum install -y https://download.znuny.org/releases/RPMS/rhel/7/znuny-7.0.19-01.noarch.rpm
Install From Source#
The installation from the source takes some more steps:
# Download Znuny
cd /opt
wget https://download.znuny.org/releases/znuny-latest-7.0.tar.gz
# Extract
tar xfz znuny-latest-7.0.tar.gz
# Create a symlink
sudo ln -s /opt/znuny-7.0.19 /opt/znuny
# Add user for RHEL/CentOS
useradd -d /opt/znuny -c 'Znuny user' -g apache -s /bin/bash -M -N znuny
# Add user for Debian/Ubuntu
useradd -d /opt/znuny -c 'Znuny user' -g www-data -s /bin/bash -M -N znuny
# Copy default Config.pm
cp /opt/znuny/Kernel/Config.pm.dist /opt/znuny/Kernel/Config.pm
# Set permissions
/opt/znuny/bin/znuny.SetPermissions.pl
# As znuny user - Rename default cronjobs
su - znuny
cd /opt/znuny/var/cron
for foo in *.dist; do cp $foo `basename $foo .dist`; done
Install Required Perl Modules#
Based on your distribution there are several different was to install the needed modules.
CentOS / Red Hat
Some of the needed Perl modules are installed, when installing the RPM. You just need to complete the missing ones.
yum install -y "perl(Moo)" "perl(Text::CSV_XS)" "perl(YAML::XS)" "perl(ModPerl::Util)" "perl(Mail::IMAPClient)" "perl(JSON::XS)" "perl(Encode::HanExtra)" "perl(Crypt::Eksblowfish::Bcrypt)"
cpanm JavaScript::Minifier::XS CSS::Minifier::XS
Ubuntu / Debian
apt -y install libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libtext-csv-xs-perl libjson-xs-perl libapache-dbi-perl libxml-libxml-perl libxml-libxslt-perl libyaml-perl libarchive-zip-perl libcrypt-eksblowfish-perl libencode-hanextra-perl libmail-imapclient-perl libtemplate-perl libdatetime-perl libmoo-perl bash-completion libyaml-libyaml-perl libjavascript-minifier-xs-perl libcss-minifier-xs-perl libauthen-sasl-perl libauthen-ntlm-perl
Database Configuration#
MySQL and Maria DB needs some configuation modifications. If you are using PostgreSQL you can skip this step:
Create a new configuration file for MySQL/MariaDB:
CentOS / Red Hat
/etc/my.cnf.d/znuny_config.cnf
Ubuntu / Debian
/etc/mysql/mariadb.conf.d/50-znuny_config.cnf
[mysql]
max_allowed_packet=256M
[mysqldump]
max_allowed_packet=256M
[mysqld]
innodb_file_per_table
innodb_log_file_size = 256M
max_allowed_packet=256M
Important
The web installer requires a password. The networking “bind-address” should be localhost. By default, 127.0.0.1, a synonym for skip-networking, is set. Additionally, there is no information about the requirement for utf8 whereas the default is utf8mb4
character-set-server = utf8mb3 collation-server = utf8mb3_general_ci
Restart the MariaDB database to apply the changes
systemctl start mariadb
Webserver Configuration#
CentOS / Red Hat
The Apache config is already in place if you used the RPM install.
Enable MPM prefork module:
sed -i '/^LoadModule mpm_event_module modules\/mod_mpm_event.so/s/^/#/' /etc/httpd/conf.modules.d/00-mpm.conf
sed -i '/^#LoadModule mpm_prefork_module modules\/mod_mpm_prefork.so/s/^#//' /etc/httpd/conf.modules.d/00-mpm.conf
Ubuntu / Debian
To enable the Znuny Apache config you need to create a symlink to our sample config.
ln -s /opt/znuny/scripts/apache2-httpd.include.conf /etc/apache2/conf-available/zzz_znuny.conf
Enable the needed Apache modules:
a2enmod perl headers deflate filter cgi
a2dismod mpm_event
a2enmod mpm_prefork headers filter
a2enconf zzz_znuny
Start / Restart the web server to apply the changes.
CentOS / Red Hat
systemctl restart httpd
Ubuntu / Debian
systemctl restart apache2
You should be able to access the installation script using:
http://HOSTNAME/znuny/installer.pl
Start-up Configuration#
You should enable the web server and the database to get started on boot.
CentOS / Red Hat
systemctl enable mariadb httpd
Ubuntu / Debian
systemctl enable mariadb apache2
Enable Znuny Cron#
Switch to the znuny user:
su - znuny
bin/Cron.sh start