[comment]: # translation:outdated

[comment]: # ({4c20bb5c-1f267b18})
# 1 Creazione dell'agente Zabbix su Windows

[comment]: # ({/4c20bb5c-1f267b18})

[comment]: # ({2cee80d5-2cee80d5})
#### Panoramica

Questa sezione mostra come creare i file binari dell'agente Windows Zabbix
da fonti con o senza TLS.

[comment]: # ({/2cee80d5-2cee80d5})

[comment]: # ({8b346a36-8b346a36})
#### Compilazione di OpenSSL

I seguenti passaggi ti aiuteranno a compilare OpenSSL dai sorgenti su MS
Windows 10 (64 bit).

1. Per compilare OpenSSL avrai bisogno su una macchina Windows:
    1. Compilatore C (ad es. VS 2017 RC),
    2. NASM (<https://www.nasm.us/>),
    3. Perl (ad es. Strawberry Perl da <http://strawberryperl.com/>),
    4. Modulo Perl Testo::Template (cpan Testo::Template).
2. Ottieni i sorgenti OpenSSL da <https://www.openssl.org/>. OpenSSL 1.1.1
    è usato qui.
3. Decomprimere i sorgenti OpenSSL, ad esempio, in E:\\openssl-1.1.1.
4. Apri una finestra della riga di comando, ad es. il prompt dei comandi degli strumenti nativi x64
    per VS 2017 RC.
5. Vai alla directory dei sorgenti di OpenSSL, ad es. E:\\openssl-1.1.1.
    1. Verificare che sia possibile trovare NASM:`e:\openssl-1.1.1> nasm --version
        NASM versione 2.13.01 compilata il 1 maggio 2017
        `
6. Configurare OpenSSL, per
    esempio:`e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configure VC-WIN64A no-shared no-capieng no-srp no-gost no-dgram no-dtls1-method no-dtls1_2- metodo --api=1.1.0 --prefix=C:\OpenSSL-Win64-111-static --openssldir=C:\OpenSSL-Win64-111-static
    `
    - Notare l'opzione 'no-shared': se si usa 'no-shared' allora il file
        Le librerie statiche OpenSSL libcrypto.lib e libssl.lib saranno
        includeranno i binari Zabbix "autosufficienti" e risultanti
        OpenSSL in sé, non c'è bisogno di DLL OpenSSL esterne.
        Vantaggio: i binari di Zabbix possono essere copiati su altri Windows
        macchine senza librerie OpenSSL. Svantaggio: quando un nuovo
        La versione della correzione del bug di OpenSSL è stata rilasciata, l'agente Zabbix deve farlo
        ricompilato e reinstallato.
    - Se 'no-shared' non viene utilizzato, le librerie statiche
        libcrypto.lib e libssl.lib utilizzeranno le DLL OpenSSL su
        tempo di esecuzione. Vantaggio: quando una nuova versione di bugfix OpenSSL è
        rilasciato, probabilmente puoi aggiornare solo le DLL OpenSSL, senza
        ricompilare l'agente Zabbix. Svantaggio: copia dell'agente Zabbix in
        un'altra macchina richiede anche la copia delle DLL OpenSSL.
7. Compila OpenSSL, esegui i test, installa:`e:\openssl-1.1.1> nmake
    e:\openssl-1.1.1> nmake test
    ...
    Tutti i test hanno avuto successo.
    File=152, Test=1152, 501 sec wallclock (0.67 usr + 0.61 sys = 1.28 CPU)
    Risultato: PASSATO
    e:\openssl-1.1.1> nmake install_sw
    `'install\_sw' installa solo componenti software (es. librerie,
    file di intestazione, ma nessuna documentazione). Se vuoi tutto, usa
    "nmake install".

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

[comment]: # ({064ada71-22b944ad})
#### Compilazione PCRE

1. Scarica la libreria PCRE o PCRE2 (supportata da Zabbix 6.0) dal repository pcre.org:
    (<https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.zip>)
2. Estrai nella directory *E:\\pcre2-10.39*
3. Installa CMake da <https://cmake.org/download/>, durante l'installazione
    select: e assicurati che cmake\\bin sia sul tuo percorso (versione testata
    3.9.4).
4. Creare una nuova directory di build vuota, preferibilmente una sottodirectory di
    la fonte dir. Ad esempio, *E:\\pcre2-10.39\\build*.
5. Apri una finestra della riga di comando, ad es. il prompt dei comandi degli strumenti nativi x64
    per VS 2017 e da quell'ambiente shell eseguire cmake-gui. Non
    prova ad avviare Cmake dal menu Start di Windows, in quanto ciò può portare a
    errori.
6. Immettere *E:\\pcre2-10.39* e *E:\\pcre2-10.39\\build* per l'origine e
    build directory, rispettivamente.
7. Premi il pulsante "Configura".
8. Quando si specifica il generatore per questo progetto selezionare "NMake
    Makefile".
9. Creare una nuova directory di installazione vuota. Per esempio,
    *E:\\pcre2-10.39-install*.
10. La GUI elencherà quindi diverse opzioni di configurazione. Assicurati di
    sono selezionate le seguenti opzioni:
    - **PCRE\_SUPPORT\_UNICODE\_PROPERTIES** ATTIVATO
    - **PCRE\_SUPPORT\_UTF** ON
    - **CMAKE\_INSTALL\_PREFIX** *E:\\pcre2-10.39-install*
11. Premi di nuovo "Configura". Il pulsante adiacente "Genera" ora dovrebbe essere
    attivo.
12. Premi "Genera".
13. Nel caso in cui si verifichino errori, si consiglia di eliminare
    la cache di CMake prima di tentare di ripetere il processo di compilazione di CMake.
    Nella GUI di CMake, la cache può essere eliminata selezionando "File >
    Elimina cache".
14. La directory di build ora dovrebbe contenere un sistema di build utilizzabile -
    *Makefile*.
15. Apri una finestra della riga di comando, ad es. il prompt dei comandi degli strumenti nativi x64
    per VS 2017 e vai al *Makefile* menzionato sopra.
16. Eseguire il comando NMake: `E:\pcre2-10.39\build> nmake install
    `

[comment]: # ({/064ada71-22b944ad})

[comment]: # ({30b6b8b5-30b6b8b5})
#### Compilazione di Zabbix

I seguenti passaggi ti aiuteranno a compilare Zabbix da fonti su MS
Windows 10 (64 bit). Durante la compilazione di Zabbix con/senza TLS supporta il file
l'unica differenza significativa è nel passaggio 4.

1. Su una macchina Linux controlla il sorgente da
    git:`` $ git clone https://git.zabbix.com/scm/zbx/zabbix.git
    $ cd zabbix
    $ ./bootstrap.sh
    $ ./configure --enable-agent --enable-ipv6 --prefix=`pwd`
    $ crea dbschema
    $ crea dist
     ``
2. Copiare e decomprimere l'archivio, ad es. zabbix-4.4.0.tar.gz, su Windows
    macchina.
3. Supponiamo che i sorgenti siano in e:\\zabbix-4.4.0. Apri un
    finestra della riga di comando, ad es. Prompt dei comandi x64 Native Tools per VS
    RC 2017. Vai a E:\\zabbix-4.4.0\\build\\win32\\project.
4. Compila zabbix\_get, zabbix\_sender e zabbix\_agent.
    - senza TLS:
        `E:\zabbix-4.4.0\build\win32\project> nmake /K PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
        `
    - con TLS:
        `E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_get TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111- static\lib PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
        E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_sender TLS=openssl TLSINCDIR="C:\OpenSSL-Win64-111-static\include TLSLIBDIR="C:\OpenSSL-Win64-111 -static\lib" PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
        E:\zabbix-4.4.0\build\win32\project> nmake /K -f Makefile_agent TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static \lib PCREINCDIR=E:\pcre2-10.39-install\include PCRELIBDIR=E:\pcre2-10.39-install\lib
        `
5. I nuovi binari si trovano in e:\\zabbix-4.4.0\\bin\\win64. Da
    OpenSSL è stato compilato con l'opzione 'no-shared', binari Zabbix
    contengono OpenSSL al loro interno e possono essere copiati su altri
    macchine che non dispongono di OpenSSL.

[comment]: # ({/30b6b8b5-30b6b8b5})

[comment]: # ({c8fe4039-c8fe4039})
#### Compilazione di Zabbix con LibreSSL

Il processo è simile alla compilazione con OpenSSL, ma è necessario farlo
piccole modifiche nei file che si trovano nella directory `build\win32\project`:

      * In ''Makefile_tls'' eliminare ''/DHAVE_OPENSSL_WITH_PSK''. cioè trova <codice>

CFLAGS = $(CFLAGS) /DHAVE\_OPENSSL
/DHAVE\_OPENSSL\_WITH\_PSK</code>e sostituirlo con
`CFLAGS = $(CFLAGS) /DHAVE_OPENSSL`

      * In ''Makefile_common.inc'' aggiungi ''/NODEFAULTLIB:LIBCMT'' cioè trova <code>

/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO
/PDB:$(TARGETDIR)\\$(TARGETNAME).pdb</code> e sostituiscilo con
`/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT`

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