[comment]: # aside: 2

[comment]: # ({b7644ee6-af2eaf2f})
# Installation aus den Quellen

Sie können die allerneueste Version von Zabbix erhalten, indem Sie sie aus den Quellen kompilieren. 
Siehe auch [Zabbix-Quellcode beziehen](#getting-zabbix-source-code).

Eine Schritt-für-Schritt-Anleitung zur Installation von Zabbix aus den Quellen
wird hier bereitgestellt.

[comment]: # ({/b7644ee6-af2eaf2f})

[comment]: # ({a81f3302-0040d992})
#### Installation von Zabbix-Daemons

[comment]: # ({/a81f3302-0040d992})

[comment]: # ({14f3e814-8cc2c1b1})
##### 1 Quellarchiv herunterladen

Gehen Sie zur [Zabbix-Download-Seite](http://www.zabbix.com/download_sources#pre-release)
und laden Sie das Quellarchiv herunter. Nach dem Herunterladen entpacken Sie die Quellen,
indem Sie Folgendes ausführen:

    tar -zxvf zabbix-8.0.0.tar.gz

::: notetip
Geben Sie im Befehl die richtige Zabbix-Version an. Sie muss
mit dem Namen des heruntergeladenen Archivs übereinstimmen.
:::

[comment]: # ({/14f3e814-8cc2c1b1})

[comment]: # ({65663a59-87e1101d})
##### 2 Benutzerkonto erstellen

Alle Zabbix-Daemon-Prozesse werden unter nicht privilegierten Systembenutzern ausgeführt. 
Wenn ein Zabbix-Daemon von einem nicht privilegierten Benutzerkonto gestartet wird, läuft er weiterhin unter diesem Benutzer.

In der Standardkonfiguration wechselt ein als `root` gestarteter Daemon zum Benutzerkonto `zabbix`, das vorhanden sein muss.
Um einen Systembenutzer und eine Gruppe `zabbix` zu erstellen, führen Sie die unten aufgeführten Befehle aus.

RedHat-basiertes System:

    groupadd --system zabbix
    useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Debian-basiertes System:

    addgroup --system --quiet zabbix
    adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Es ist nicht erforderlich, ein separates Benutzerkonto für das Zabbix Frontend zu erstellen.

###### Sicherheitsempfehlung

Wenn der Zabbix [Server](/manual/concepts/server) und der [Agent](/manual/concepts/agent) auf demselben Rechner ausgeführt werden, wird empfohlen, sie unter **separaten Benutzerkonten** auszuführen.
Wenn beide unter demselben Benutzer ausgeführt werden, kann der Agent auf die Konfigurationsdatei des Servers zugreifen, wodurch vertrauliche Informationen – wie etwa das Datenbankpasswort – für jeden Benutzer mit Admin-Rechten in Zabbix offengelegt werden könnten.

::: noteimportant
Die Ausführung von Zabbix als `root`, `bin` oder unter einem anderen Konto mit besonderen Rechten stellt ein Sicherheitsrisiko dar. 
:::

###### Home-Verzeichnis (optional)

Zabbix-Prozesse benötigen kein Home-Verzeichnis, daher wird dessen Erstellung im Allgemeinen nicht empfohlen.
Wenn Sie jedoch Funktionen benötigen, die ein Home-Verzeichnis voraussetzen (zum Beispiel das Speichern von MySQL-Zugangsdaten in $HOME/.my.cnf), können Sie es mit den unten aufgeführten Befehlen erstellen. 

Führen Sie auf RedHat-basierten Systemen Folgendes aus:

    mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
    chown zabbix:zabbix /usr/lib/zabbix

Führen Sie auf Debian-basierten Systemen Folgendes aus:

    mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
    chown zabbix:zabbix /var/lib/zabbix

[comment]: # ({/65663a59-87e1101d})

[comment]: # ({06256db0-06256db0})
##### 3 Zabbix-Datenbank erstellen

Für die Zabbix-[Server](/manual/concepts/server)- und
[Proxy](/manual/concepts/proxy)-Daemons sowie das Zabbix-Frontend wird
eine Datenbank benötigt. Für den Betrieb des Zabbix-
[Agent](/manual/concepts/agent) ist sie nicht erforderlich.

SQL-[Skripte werden bereitgestellt](/manual/appendix/install/db_scripts),
um das Datenbankschema zu erstellen und den Datensatz einzufügen. Die
Zabbix-Proxy-Datenbank benötigt nur das Schema, während die Zabbix-Server-Datenbank
zusätzlich zum Schema auch den Datensatz erfordert.

Nachdem Sie eine Zabbix-Datenbank erstellt haben, fahren Sie mit den
folgenden Schritten zum Kompilieren von Zabbix fort.

[comment]: # ({/06256db0-06256db0})

[comment]: # ({40504a3b-8ff1b41c})
##### 4 Konfigurieren der Quellen

C99 mit GNU-Erweiterungen ist für das Erstellen von Zabbix Server, Zabbix Proxy oder Zabbix Agent erforderlich.
Diese Version kann explizit angegeben werden, indem CFLAGS="-std=gnu99" gesetzt wird:

    export CFLAGS="-std=gnu99"

::: noteclassic
Wenn Sie aus dem [Zabbix Git-Repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse) installieren,
muss zuerst Folgendes ausgeführt werden:

`./bootstrap.sh`
:::

Beim Konfigurieren der Quellen für einen Zabbix Server oder Proxy müssen Sie
den zu verwendenden Datenbanktyp angeben. Es kann jeweils nur ein Datenbanktyp
mit einem Server- oder Proxy-Prozess gleichzeitig kompiliert werden.

Um alle unterstützten Konfigurationsoptionen anzuzeigen, führen Sie im entpackten
Zabbix-Quellverzeichnis Folgendes aus:

    ./configure --help

Um die Quellen für einen Zabbix Server und Agent zu konfigurieren, können Sie
zum Beispiel Folgendes ausführen:

    ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares

Um die Quellen für einen Zabbix Server (mit PostgreSQL usw.) zu konfigurieren,
können Sie Folgendes ausführen:

    ./configure --enable-server --with-postgresql --with-net-snmp

Um die Quellen für einen Zabbix Proxy (mit SQLite usw.) zu konfigurieren,
können Sie Folgendes ausführen:

    ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Um die Quellen für einen Zabbix Agent zu konfigurieren, können Sie Folgendes ausführen:

    ./configure --enable-agent

oder für Zabbix Agent 2:

    ./configure --enable-agent2

::: noteclassic
Zum Erstellen von Zabbix Agent 2 muss eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) installiert sein.
:::

Hinweise zu den Kompilierungsoptionen:

-   `--enable-agent` - kompiliert Zabbix Agent sowie die Befehlszeilenwerkzeuge [Zabbix get](/manual/concepts/get) und [Zabbix sender](/manual/concepts/sender).
-   `--with-libcurl` - erforderlich für die Überwachung virtueller Maschinen, SMTP-Authentifizierung und `web.page.*`-[Zabbix-Agent-Datenpunkte](/manual/config/items/itemtypes/zabbix_agent). Siehe auch: [Anforderungen](/manual/installation/requirements#serverproxy) (libcurl).
-   `--with-libxml2` - erforderlich für die Überwachung virtueller Maschinen.
-   `--with-libpcre2[=DIR]` - Zabbix wird immer mit der PCRE2-Bibliothek kompiliert; diese Option erlaubt nur die Angabe eines benutzerdefinierten Installationspfads für PCRE2.
-   `--with-mysql=/path/to/mysql_config` - gibt den Pfad zu einer bestimmten Konfiguration der MySQL-Client-Bibliothek an. Nützlich, wenn mehrere Versionen von MySQL oder MariaDB installiert sind.
-   `--enable-static` - bindet Bibliotheken statisch ein (nicht unterstützt unter [Solaris](https://docs.oracle.com/cd/E18659_01/html/821-1383/bkajp.html)). Verwenden Sie dies, wenn Sie kompilierte Binärdateien auf Systeme ohne die erforderlichen Bibliotheken verteilen möchten. Nicht empfohlen beim Erstellen von Zabbix Server. Um den Server statisch zu erstellen, ist eine statische Version jeder externen Bibliothek erforderlich. Das configure-Skript prüft dies nicht automatisch.
-   `--with-stacksize=<value>` - legt die Stack-Größe pro Thread in Kilobyte fest (z. B. `--with-stacksize=512`). Sie können diesen Wert erhöhen, wenn Zabbix aufgrund von Stack-Überläufen abstürzt oder hängen bleibt (z. B. während der [Vorverarbeitung](/manual/config/items/preprocessing) auf Systemen mit niedrigen Standardgrenzen für den Thread-Stack).

::: noteimportant
Wenn `./configure` aufgrund fehlender Bibliotheken oder anderer Probleme fehlschlägt, prüfen Sie bitte die Datei `config.log` auf detaillierte Fehlerinformationen.

Wenn zum Beispiel `libssl` fehlt, kann die unmittelbare Fehlermeldung irreführend sein:

    checking for main in -lmysqlclient... no
    configure: error: Not found mysqlclient library

In diesem Fall zeigt `config.log` die tatsächliche Ursache:

    /usr/bin/ld: cannot find -lssl
    /usr/bin/ld: cannot find -lcrypto

:::

Siehe auch:

-   [Kompilieren von Zabbix mit Unterstützung für Verschlüsselung](/manual/encryption#compiling-zabbix-with-encryption-support)
-   Bekannte [Kompilierungsprobleme](/manual/installation/install/sources#compilation-issues)

[comment]: # ({/40504a3b-8ff1b41c})

[comment]: # ({f38586cb-08edd3dc})
##### 5 Alles erstellen und installieren

::: noteclassic
Bei der Installation aus dem [Zabbix Git-Repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse)
muss zuerst Folgendes ausgeführt werden:

`$ make dbschema` 
:::

    make install

Dieser Schritt sollte von einem Benutzer mit ausreichenden Berechtigungen ausgeführt werden (üblicherweise
`root` oder mithilfe von `sudo`).

Wenn `make install` ausgeführt wird, werden standardmäßig die Daemon-Binärdateien
(`zabbix_server`, `zabbix_agentd`, `zabbix_proxy`) in `/usr/local/sbin` und
die Client-Binärdateien (`zabbix_get`, `zabbix_sender`) in `/usr/local/bin` installiert.

::: noteclassic
Um einen anderen Speicherort als `/usr/local` anzugeben, verwenden Sie im
vorherigen Schritt der Quellkonfiguration den Schlüssel `--prefix`, zum Beispiel
`--prefix=/home/zabbix`. In diesem Fall werden die Daemon-Binärdateien unter
`<prefix>/sbin` installiert, während die Dienstprogramme unter `<prefix>/bin`
installiert werden. Die Handbuchseiten werden unter `<prefix>/share`
installiert.
:::

[comment]: # ({/f38586cb-08edd3dc})

[comment]: # ({f36d53db-112b74f7})
##### 6 Konfigurationsdateien überprüfen und bearbeiten

-   Bearbeiten Sie die Zabbix-Agent-Konfigurationsdatei
    **/usr/local/etc/zabbix\_agentd.conf**

Sie müssen diese Datei für jeden Host konfigurieren, auf dem zabbix\_agentd
installiert ist.

Sie müssen die **IP-Adresse** des Zabbix-Servers in der Datei angeben.
Verbindungen von anderen Hosts werden abgelehnt.

-   Bearbeiten Sie die Zabbix-Server-Konfigurationsdatei
    **/usr/local/etc/zabbix\_server.conf**

Sie müssen den Datenbanknamen, den Benutzer und das Passwort angeben (falls verwendet).

Die übrigen Parameter sind mit ihren Standardwerten für eine kleine Installation
(bis zu zehn überwachte Hosts) ausreichend. Sie sollten die Standardparameter jedoch ändern,
wenn Sie die Leistung des Zabbix-Servers (oder Proxys) maximieren möchten.

-   Wenn Sie einen Zabbix-Proxy installiert haben, bearbeiten Sie die Proxy-Konfigurationsdatei
    **/usr/local/etc/zabbix\_proxy.conf**

Sie müssen die IP-Adresse des Servers und den Proxy-Hostnamen angeben (muss dem
Server bekannt sein), ebenso wie den Datenbanknamen, den Benutzer und das Passwort
(falls verwendet).

::: noteclassic
Bei SQLite muss der vollständige Pfad zur Datenbankdatei angegeben
werden; DB-Benutzer und Passwort sind nicht erforderlich.
:::

[comment]: # ({/f36d53db-112b74f7})

[comment]: # ({67632a65-bbdd82ac})
##### 7 Daemons starten

Führen Sie zabbix\_server auf der Server-Seite aus.

    zabbix_server

::: noteclassic
Stellen Sie sicher, dass Ihr System die Zuweisung von 36 MB (oder etwas mehr) gemeinsam genutztem Speicher erlaubt, andernfalls startet der Server möglicherweise nicht und Sie sehen „Cannot allocate shared memory for <type of cache>.“ in der Server-Logdatei. Dies kann unter FreeBSD und Solaris 8 auftreten.
:::

Führen Sie zabbix\_agentd auf allen überwachten Rechnern aus.

    zabbix_agentd

::: noteclassic
Stellen Sie sicher, dass Ihr System die Zuweisung von 2 MB gemeinsam genutztem Speicher erlaubt, andernfalls startet der Agent möglicherweise nicht und Sie sehen „Cannot allocate shared memory for collector.“ in der Agent-Logdatei. Dies kann unter Solaris 8 auftreten.
:::

Wenn Sie den Zabbix Proxy installiert haben, führen Sie zabbix\_proxy aus.

    zabbix_proxy

[comment]: # ({/67632a65-bbdd82ac})

[comment]: # ({8d29e485-c9f154ca})
#### Installation des Zabbix-Web-Interface

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

[comment]: # ({57b0b3e0-ed4e56ce})
##### Kopieren von PHP-Dateien

Das Zabbix Frontend ist in PHP geschrieben, daher wird für den Betrieb ein PHP-unterstützender Webserver benötigt.
Die Installation erfolgt einfach durch Kopieren der PHP-Dateien aus dem Verzeichnis `ui` in das HTML-Dokumentenverzeichnis des Webservers.

Gängige Speicherorte für HTML-Dokumentenverzeichnisse von Apache-Webservern sind:

-   /usr/local/apache2/htdocs (Standardverzeichnis bei der Installation von Apache aus dem Quellcode)
-   /srv/www/htdocs (OpenSUSE, SLES)
-   /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Es wird empfohlen, ein Unterverzeichnis anstelle des HTML-Wurzelverzeichnisses zu verwenden.
Um ein Unterverzeichnis zu erstellen und die Dateien des Zabbix Frontends hineinzukopieren, führen Sie die folgenden Befehle aus und ersetzen Sie dabei `<htdocs>` durch das tatsächliche Verzeichnis:

    mkdir <htdocs>/zabbix
    cd ui
    cp -a . <htdocs>/zabbix

Wenn Sie eine andere Sprache als Englisch verwenden möchten, finden Sie Anweisungen unter [Installation zusätzlicher Frontend-Sprachen](/manual/appendix/install/locales).

[comment]: # ({/57b0b3e0-ed4e56ce})

[comment]: # ({ae1b267f-63583cbb})
##### Installation des Frontends

Informationen zum Installationsassistenten des Zabbix-Frontends finden Sie auf der Seite [Installation der Weboberfläche](/manual/installation/frontend).

[comment]: # ({/ae1b267f-63583cbb})

[comment]: # ({97a2e459-c8da42bb})
#### Installieren von ladbaren Zabbix Agent 2-Plugins

Die Installation von ladbaren Zabbix Agent 2-Plugins ist nur erforderlich, wenn Sie Ziele überwachen möchten, die nicht von integrierten Plugins abgedeckt werden (z. B. MongoDB-Server oder -Cluster, PostgreSQL und seine Forks usw.).
Die vollständige Liste der [ladbaren Plugins](/manual/concepts/agent2/loadable-plugins) und [integrierten Plugins](/manual/concepts/agent2/built-in-plugins) finden Sie hier.

::: noteimportant
Bitte prüfen Sie vor der Installation eines Plugins die README-Datei.
Sie kann spezifische Anforderungen und Installationsanweisungen enthalten.
:::

Um aus den Quellen zu installieren, [laden](https://cdn.zabbix.com/zabbix-agent2-plugins/sources/) Sie zunächst das Quellarchiv des ladbaren Plugins herunter und entpacken Sie es.

Um das Plugin zu kompilieren, wechseln Sie in das entpackte Plugin-Verzeichnis und führen Sie `make` aus:

    make

::: noteclassic
Zum Erstellen ladbarer Zabbix Agent 2-Plugins muss eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) installiert sein.
:::

Die ausführbare Plugin-Datei kann an beliebiger Stelle abgelegt werden, solange sie von Zabbix Agent 2 geladen werden kann.
Geben Sie den Pfad zur Plugin-Binärdatei in der Plugin-Konfigurationsdatei an, z. B. in postgresql.conf für das [PostgreSQL](/manual/concepts/agent2/agent2_params_plugin/postgresql_plugin)-Plugin:

    Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

Der Pfad zur Plugin-Konfigurationsdatei muss im Include-Parameter der Zabbix Agent 2-Konfigurationsdatei angegeben werden:

    Include=/path/to/plugin/configuration/file/postgresql.conf

Weitere Details zur Konfiguration von Plugins finden Sie unter [Einrichtung](/manual/concepts/agent2/configuring-plugins).

Von Zabbix bereitgestellte ladbare Plugins verwenden einfache Makefiles mit den folgenden Build-Zielen:

-   `make` - das Plugin erstellen
-   `make clean` - alle Dateien löschen, die beim Erstellen des Plugins erzeugt wurden
-   `make check` - Selbsttests ausführen (erfordert ein echtes Überwachungsziel, z. B. eine PostgreSQL-Datenbank)
-   `make style` - den Go-Code-Stil mit `golangci-lint` prüfen
-   `make format` - den Go-Code mit `go fmt` formatieren
-   `make dist` - ein Quellarchiv einschließlich aller Abhängigkeiten erstellen

[comment]: # ({/97a2e459-c8da42bb})

[comment]: # ({760e992b-1a519c06})
#### Installation des Java gateway

Die Installation des Java gateway ist nur erforderlich, wenn Sie JMX-Anwendungen überwachen möchten. Das Java gateway ist schlank und benötigt keine Datenbank.

Für die Installation aus den Quellen [laden Sie zunächst das Quellarchiv herunter](/manual/installation/install/sources#download-the-source-archive) und entpacken es.

Um das Java gateway zu kompilieren, führen Sie das Skript `./configure` mit der Option `--enable-java` aus. Es wird empfohlen, die Option `--prefix` anzugeben, um einen anderen Installationspfad als den Standardpfad /usr/local festzulegen, da bei der Installation des Java gateway eine vollständige Verzeichnisstruktur und nicht nur eine einzelne ausführbare Datei erstellt wird.

    ./configure --enable-java --prefix=$PREFIX

Um das Java gateway zu kompilieren und in eine JAR-Datei zu packen, führen Sie `make` aus. Beachten Sie, dass Sie für diesen Schritt die ausführbaren Dateien `javac` und `jar` in Ihrem Pfad benötigen.

    make

Nun haben Sie eine Datei zabbix-java-gateway-$VERSION.jar in src/zabbix\_java/bin. Wenn Sie das Java gateway direkt aus src/zabbix\_java im Distributionsverzeichnis ausführen möchten, können Sie mit den Anweisungen zum Konfigurieren und Ausführen des [Java gateway](/manual/java/from_sources#overview-of-files) fortfahren. Andernfalls stellen Sie sicher, dass Sie über ausreichende Berechtigungen verfügen, und führen Sie `make install` aus.

    make install

Weitere Details zum Konfigurieren und Ausführen des Java gateway finden Sie unter [Einrichtung](/manual/concepts/java/from_sources).

[comment]: # ({/760e992b-1a519c06})

[comment]: # ({1849c64a-76c01064})
#### Installation des Zabbix-Webservice

Die Installation des Zabbix-Webservice ist nur erforderlich, wenn Sie
[geplante
Berichte](/manual/web_interface/frontend_sections/reports/scheduled) verwenden möchten.

Für die Installation aus den Quellen müssen Sie zunächst das
[Quellarchiv herunterladen](/manual/installation/install/sources#download-the-source-archive) und
entpacken.

Um den Zabbix-Webservice zu kompilieren, führen Sie das Skript `./configure` mit
der Option `--enable-webservice` aus.

::: noteclassic
Zum Erstellen des Zabbix-Webservice muss eine [unterstützte Go-Version](/manual/installation/requirements#agent-2) installiert sein.
:::

Führen Sie zabbix\_web\_service auf dem Rechner aus, auf dem der Webservice installiert ist:

    zabbix_web_service

Weitere Informationen zur Konfiguration der Erstellung geplanter Berichte finden Sie unter [Einrichtung](/manual/appendix/install/web_service).

[comment]: # ({/1849c64a-76c01064})

[comment]: # ({786834b2-e88f42af})
#### Zabbix-Quellcode beziehen

Es gibt mehrere Möglichkeiten, den Zabbix-Quellcode zu beziehen:

-   Sie können die veröffentlichten stabilen Versionen von der offiziellen Zabbix-Website [herunterladen](https://www.zabbix.com/download_sources#pre-release)
-   Sie können Nightly Builds von der Entwicklerseite der offiziellen Zabbix-Website [herunterladen](https://www.zabbix.com/developers)
-   Sie können die neueste Entwicklungsversion aus dem Git-Quellcode-Repository beziehen:
    -   Der primäre Speicherort des vollständigen Repositorys ist
        <https://git.zabbix.com/scm/zbx/zabbix.git>
    -   Master und unterstützte Releases werden außerdem auf Github gespiegelt unter
        <https://github.com/zabbix/zabbix>

Zum Klonen des Repositorys muss ein Git-Client installiert sein. Das offizielle Git-Client-Paket für die Befehlszeile heißt in Distributionen üblicherweise **git**. Um es beispielsweise unter Debian/Ubuntu zu installieren, führen Sie Folgendes aus:

    sudo apt-get update
    sudo apt-get install git

Um den gesamten Zabbix-Quellcode zu holen, wechseln Sie in das Verzeichnis, in dem Sie den Code ablegen möchten, und führen Sie aus:

    git clone https://git.zabbix.com/scm/zbx/zabbix.git

[comment]: # ({/786834b2-e88f42af})

[comment]: # ({0104663d-7ceec24f})
#### Kompilierungsprobleme

Dies sind die bekannten Probleme bei der Kompilierung von Zabbix aus den Quellen. Für alle anderen Fälle siehe die Seite [Bekannte Probleme](/manual/installation/known_issues).

[comment]: # ({/0104663d-7ceec24f})

[comment]: # ({568e5f9a-c904d9ff})
##### Bibliothek an einem nicht standardmäßigen Speicherort

Zabbix ermöglicht es Ihnen, eine Bibliothek an einem nicht standardmäßigen Speicherort anzugeben. Im folgenden Beispiel führt Zabbix `curl-config` vom angegebenen nicht standardmäßigen Speicherort aus und verwendet dessen Ausgabe, um die richtige zu verwendende libcurl zu bestimmen.

    $ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Dies funktioniert, wenn dies die einzige im System installierte libcurl ist, möglicherweise jedoch nicht, wenn eine weitere libcurl an einem standardmäßigen Speicherort installiert ist (zum Beispiel durch den Paketmanager). Dies ist der Fall, wenn Sie für Zabbix eine neuere Version der Bibliothek benötigen und die ältere für andere Anwendungen.

Daher funktioniert die Angabe einer Komponente an einem nicht standardmäßigen Speicherort nicht immer, wenn dieselbe Komponente auch an einem standardmäßigen Speicherort vorhanden ist.

Wenn Sie beispielsweise eine neuere in `/usr/local` installierte libcurl verwenden, während das libcurl-Paket weiterhin installiert ist, könnte Zabbix die falsche Bibliothek auswählen und die Kompilierung schlägt fehl:

    usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): in function 'zbx_http_convert_to_utf8':
    /tmp/zabbix-master/src/libs/zbxhttp/http.c:957: undefined reference to 'curl_easy_header'
    collect2: error: ld returned 1 exit status

Hier ist die Funktion `curl_easy_header()` in der älteren `/usr/lib/x86_64-linux-gnu/libcurl.so` nicht verfügbar, jedoch in der neueren `/usr/local/lib/libcurl.so`.

Das Problem liegt in der Reihenfolge der Linker-Flags, und eine Lösung besteht darin, den vollständigen Pfad zur Bibliothek in einer LDFLAGS-Variablen anzugeben:

    $ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Beachten Sie die Option `-Wl,--no-as-needed`, die auf einigen Systemen erforderlich sein kann (siehe auch: Standard-Linking-Optionen auf [Debian-basierten](https://wiki.debian.org/ToolChain/DSOLinking) Systemen).

[comment]: # ({/568e5f9a-c904d9ff})

[comment]: # ({44720e40-78889065})
##### Stack-Größe auf einigen Systemen zu klein

Wenn Zabbix aufgrund von Stack-Überläufen abstürzt oder einfriert, können Sie die Stack-Größe pro Thread mit der Option `--with-stacksize` erhöhen, wenn Sie die [Quellen konfigurieren](/manual/installation/install/sources#configure-the-sources).
Dieses Problem kann auf Systemen mit niedrigen Standardgrenzen für den Thread-Stack auftreten, insbesondere während der [Vorverarbeitung](/manual/config/items/preprocessing), bei der mehrere Threads erstellt werden.

Das folgende Beispiel setzt die Stack-Größe auf 512 KB pro Thread:

```bash
./configure --enable-server --with-mysql --with-stacksize=512
```

Sie können die Systemgrenzen für den Thread-Stack zur Laufzeit mit dem Befehl `ulimit -s` auf Linux-basierten Systemen prüfen.

[comment]: # ({/44720e40-78889065})
