[comment]: # translation:outdated

[comment]: # ({83c2fbfb-83c2fbfb})
# 1 Red Hat Enterprise Linux/CentOS

[comment]: # ({/83c2fbfb-83c2fbfb})

[comment]: # ({abf52fa4-abf52fa4})
### Overview

Official Zabbix packages are available for RHEL 7, CentOS 7 and Oracle
Linux 7. In this documentation we will refer to all 3 using the term
`RHEL`.

Some agent and proxy packages are available for [RHEL
6](https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/) and [RHEL
5](https://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64) as well.

[comment]: # ({/abf52fa4-abf52fa4})

[comment]: # ({8d3bfe1d-8d3bfe1d})
### Adding Zabbix repository

Install the repository configuration package. This package contains yum
(software package manager) configuration files.

RHEL 7:

    # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

RHEL 6:

    # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm

RHEL 5:

    # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64/zabbix-release-4.0-1.noarch.rpm

[comment]: # ({/8d3bfe1d-8d3bfe1d})

[comment]: # ({19204db6-19204db6})
#### Frontend installation prerequisites

Zabbix frontend requires additional packages not available in basic
installation. You need to enable repository of optional rpms in the
system you will run Zabbix frontend on:

RHEL 7:

    # yum-config-manager --enable rhel-7-server-optional-rpms

[comment]: # ({/19204db6-19204db6})

[comment]: # ({777d9a20-777d9a20})
### Server/proxy/frontend installation

To install Zabbix server (available for RHEL 7, [deprecated on RHEL
6](/manual/installation/install_from_packages/rhel_centos#zabbix_frontend_and_server_on_rhel_6))
with MySQL support:

    # yum install zabbix-server-mysql

To install Zabbix proxy with MySQL support:

    # yum install zabbix-proxy-mysql

To install Zabbix frontend (available for RHEL 7, [deprecated on RHEL
6](/manual/installation/install_from_packages/rhel_centos#zabbix_frontend_and_server_on_rhel_6))
with MySQL support:

    # yum install zabbix-web-mysql

Substitute 'mysql' in the commands with 'pgsql' to use PostgreSQL, or
with 'sqlite3' to use SQLite3 (proxy only).

[comment]: # ({/777d9a20-777d9a20})

[comment]: # ({c573e862-c573e862})
#### Creating database

For Zabbix [server](/manual/concepts/server) and
[proxy](/manual/concepts/proxy) daemons a database is required. It is
not needed to run Zabbix [agent](/manual/concepts/agent).

::: notewarning
Separate databases are needed for Zabbix server and
Zabbix proxy; they cannot use the same database. Therefore, if they are
installed on the same host, their databases must be created with
different names!
:::

Create the database using the provided instructions for
[MySQL](/manual/appendix/install/db_scripts#mysql) or
[PostgreSQL](/manual/appendix/install/db_scripts#postgresql).

[comment]: # ({/c573e862-c573e862})

[comment]: # ({fb411bb2-fb411bb2})
#### Importing data

Now import initial schema and data for the server with MySQL:

    # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

You will be prompted to enter your newly created database password.

With PostgreSQL:

    # zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

For proxy, import initial schema:

    # zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix

For proxy with PostgreSQL (or SQLite):

    # zcat /usr/share/doc/zabbix-proxy-pgsql*/schema.sql.gz | sudo -u zabbix psql zabbix
    # zcat /usr/share/doc/zabbix-proxy-sqlite3*/schema.sql.gz | sqlite3 zabbix.db

[comment]: # ({/fb411bb2-fb411bb2})

[comment]: # ({5be4830a-5be4830a})
#### Configure database for Zabbix server/proxy

Edit zabbix\_server.conf (and zabbix\_proxy.conf) to use their
respective databases. For example:

    # vi /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=<password>

In DBPassword use Zabbix database password for MySQL; PosgreSQL user
password for PosgreSQL.

Use `DBHost=` with PostgreSQL. You might want to keep the default
setting `DBHost=localhost` (or an IP address), but this would make
PostgreSQL use a network socket for connecting to Zabbix. See **SELinux
configuration** below for instructions.

[comment]: # ({/5be4830a-5be4830a})

[comment]: # ({3b5ca3c2-3b5ca3c2})
#### Starting Zabbix server process

It's time to start Zabbix server process:

    # service zabbix-server start

and make it start at system boot:

RHEL 7 and later:

    # systemctl enable zabbix-server

RHEL prior to 7:

    # chkconfig --level 12345 zabbix-server on

Substitute 'zabbix-server' with 'zabbix-proxy' if you are installing
Zabbix proxy.

[comment]: # ({/3b5ca3c2-3b5ca3c2})

[comment]: # ({090f7a4a-090f7a4a})
#### Zabbix frontend configuration

For RHEL 7 and later the Apache configuration file for Zabbix frontend
is located in /etc/httpd/conf.d/zabbix.conf.

If you use RHEL 6 please read the section about [using Zabbix frontend
on RHEL
6](/manual/installation/install_from_packages/rhel_centos#zabbix_frontend_and_server_on_rhel_6)
on how to configure the frontend.

Some PHP settings are already configured. But it's necessary to
uncomment the "date.timezone" setting and [set the right
timezone](http://php.net/manual/en/timezones.php) for you.

    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value max_input_vars 10000
    php_value always_populate_raw_post_data -1
    # php_value date.timezone Europe/Riga

Now you are ready to proceed with [frontend installation
steps](/manual/installation/install#installing_frontend) which will
allow you to access your newly installed Zabbix.

Note that a Zabbix proxy does not have a frontend; it communicates with
Zabbix server only.

::: noteclassic
Zabbix official repository provides fping, iksemel, libssh2
packages as well. These packages are located in the
*[non-supported](https://repo.zabbix.com/non-supported/)*
directory.
:::

[comment]: # ({/090f7a4a-090f7a4a})

[comment]: # ({ee4b539f-ee4b539f})
#### SELinux configuration

Having SELinux status enabled in enforcing mode, you need to execute the
following commands to enable communication between Zabbix frontend and
server:

RHEL 7 and later:

    # setsebool -P httpd_can_connect_zabbix on
    If the database is accessible over network (including 'localhost' in case of PostgreSQL), you need to allow Zabbix frontend to connect to the database too:
    # setsebool -P httpd_can_network_connect_db on

RHEL prior to 7:

    # setsebool -P httpd_can_network_connect on
    # setsebool -P zabbix_can_network on

As frontend and SELinux configuration is done, you need to restart
Apache web server:\

    # service httpd restart

[comment]: # ({/ee4b539f-ee4b539f})

[comment]: # ({17821b43-17821b43})
#### Zabbix frontend and server on RHEL 6

Zabbix frontend on RHEL 6 is not supported because of PHP version. Since
Zabbix 3.0 the requirements are to have PHP 5.4.0 or later while RHEL 6
latest version is 5.3.3 .

In most cases Zabbix server and frontend are installed on the same
machine. When upgrading 2.2 to 3.0 Zabbix server will perform database
upgrade and frontend will stop working. There is no way to roll back the
database changes so users will be forced to upgrade PHP using 3rd party
packages. This is why Zabbix server is also deprecated on RHEL 6.

If you still want to use Zabbix frontend on RHEL 6 and upgraded your PHP
using 3rd party packages you would need to enable `zabbix-deprecated`
repository first:

-   open file /etc/yum.repos.d/zabbix.repo
-   find section \[zabbix-deprecated\]
-   set enabled=1
-   save the file

You will have to do some more manual configuration. This is because we
cannot identify the Apache version required for your PHP which makes it
impossible for us to provide proper Apache configuration for Zabbix
frontend. We have included 2 Apache configuration files to our
zabbix-web package, one for Apache 2.2 and another for 2.4, which you
would need to integrate with the Apache configuration yourself:

-   httpd22-example.conf
-   httpd24-example.conf

To get the full path to the files execute:

    $ rpm -ql zabbix-web | grep example.conf

[comment]: # ({/17821b43-17821b43})

[comment]: # ({06cd32f2-06cd32f2})
### Agent installation

To install the agent, run

    # yum install zabbix-agent

To start the agent, run:

    # service zabbix-agent start

If you want to run Zabbix agent as root, see
[here](/manual/appendix/install/run_agent_as_root).

[comment]: # ({/06cd32f2-06cd32f2})

[comment]: # ({af0fbb73-af0fbb73})
### Java gateway installation

It is required to install [Java gateway](/manual/concepts/java) only if
you want to monitor JMX applications. Java gateway is lightweight and
does not require a database.

Once the required [repository](#adding_zabbix_repository) is added, you
can install Zabbix Java gateway by running:

    # yum install zabbix-java-gateway

Proceed to [setup](/manual/concepts/java/from_rhel_centos) for more
details on configuring and running Java gateway.

[comment]: # ({/af0fbb73-af0fbb73})

[comment]: # ({70393033-70393033})
### Installing debuginfo packages

::: noteclassic
 Debuginfo packages are currently available for RHEL/CentOS
versions 7, 6 and 5. 
::: To enable debuginfo repository edit
*/etc/yum.repos.d/zabbix.repo* file. Change `enabled=0` to `enabled=1`
for zabbix-debuginfo repository.

    [zabbix-debuginfo]
    name=Zabbix Official Repository debuginfo - $basearch
    baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    gpgcheck=1

This will allow you to install the zabbix-debuginfo package.

    # yum install zabbix-debuginfo

This single package contains debug information for all binary Zabbix
components.

[comment]: # ({/70393033-70393033})
