# Atualização do Apache

## Visão Geral

A atualização do Apache é um procedimento delicado que garante a segurança e a performance do Suricato.&#x20;

Este guia foca na migração manual, permitindo que você mantenha suas configurações personalizadas enquanto eleva a versão do "motor" web para suportar as novas exigências do PHP 8.5.

## Regras de Negócio

* [x] **Backup Mandatório:** Realize backup da pasta do Apache antes da atualização e renomeie a pasta antiga do Apache para `apache_old`.
* [x] **Serviço Parado:** O serviço do Apache e da  `Telematica Suricato` deve ser interrompido no Windows antes de qualquer movimentação de arquivos.
* [x] **Compatibilidade:** Para o Suricato **3.1.0**, utilize **Apache 2.4.x** ou **IIS 10** e **PHP 8.5**.
* [x] **Integridade:** Não reutilize DLLs antigas (como `ssleay32.dll`) na versão 3.1; use apenas o que acompanha o novo pacote.

## Como atualizar o Apache

{% stepper %}
{% step %}

#### Backup do Apache atual

Depois de parar os serviços do Apache, localize a pasta: `C:\ProgramFiles\Telematica\Suricato\apache`

Renomeie para:   `apache_old`
{% endstep %}

{% step %}

#### Copiar nova versão

* Copie a nova versão do Apache
* Cole no diretório do Suricato
* Renomeie para:  `apache`
  {% endstep %}

{% step %}

#### Ajustes iniciais

{% endstep %}

{% step %}

#### Copiar pastas necessárias

{% endstep %}
{% endstepper %}

#### 3. Ajustes iniciais

Na pasta `BIN`  do APACHE\_OLD, copie a .dll “**ssleay32.dll**”, para a pasta do apache nova.

*<mark style="color:$primary;">**Nota da Versão 3.1.0.0:**</mark>* NÃO copie a DLL `ssleay32.dll`, utilize apenas as bibliotecas da nova versão

#### 4. Copiar pastas necessárias

Copie do Apache antigo para o novo:

* `certif`
* `php`
* `cgi-bin`

#### 5. Editar arquivo httpd.conf

Abra o arquivo `httpd.conf` do Apache antigo e do novo com o notepad, e "COPIE” os paths padrões de instalação que esse arquivo recebe durante a instalação do Suricato.

1. Localize o parâmetro:   `ServerRoot`
2. Altere para:   `C:/Program Files/Telematica/Suricato/apache`
3. Comente a linha do parâmetro **Listen** adicionando '#' no início.

<details>

<summary>Copie os módulos do Apache antigo para o novo (lista abaixo, expanda para ver)</summary>

```
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_core_module modules/mod_authn_core.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_core_module modules/mod_authz_core.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule brotli_module modules/mod_brotli.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule cache_socache_module modules/mod_cache_socache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule data_module modules/mod_data.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule http2_module modules/mod_http2.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule lua_module modules/mod_lua.so
#LoadModule macro_module modules/mod_macro.so
#LoadModule md_module modules/mod_md.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule proxy_html_module modules/mod_proxy_html.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_http2_module modules/mod_proxy_http2.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
#LoadModule reflector_module modules/mod_reflector.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule request_module modules/mod_request.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_crypto_module modules/mod_session_crypto.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule socache_redis_module modules/mod_socache_redis.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
```

</details>

{% hint style="warning" %} <mark style="color:$primary;">**Atenção:**</mark>

* Caso o Apache não inicie, remova módulos inexistentes
* Versões novas podem não suportar todos os módulos antigos
  {% endhint %}

4. Localize o parâmetro “**ServerName**”, descomente a linha retirando o '#' e altere o IP para da máquina local de instalação do SURICATO:

```
ServerName IP_DA_MAQUINA
```

5. Altere os parâmetros do “DIRECTORY /” de: **`Require all denied`** para: **`Require all granted`**
6. Altere o path do parâmetro **DOCUMENTOROOT** de `${SRVROOT}/htdocs` para `DocumentRoot "C:/Program Files/Telematica/Suricato"`**.&#x20;**&#x20;*Exemplo:*

```
DocumentRoot "C:/Program Files/Telematica/Suricato"
```

7. Altere o path do parâmetro **Directory** de `<Directory ${SRVROOT}/htdocs` para `<Directory "C:/Program Files/Telematica/Suricato"`  *Exemplo:*

```
<Directory "C:/Program Files/Telematica/Suricato">
```

8. No parametro **IfModule dir\_module**, altere o valor do `DirectoryIndex` de `DirectoryIndex index.html` para `DirectoryIndex index.html index.php`    *Exemplo:*

```
DirectoryIndex index.html index.php
```

9. Altere o parâmetro **SCRIPTALIAS** de `ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/` para `ScriptAlias /telematica/ "cgi-bin/"`  *Exemplo:*

```
ScriptAlias /telematica/ "cgi-bin/"
```

10. Troque o Caminho do Directory do CGI para o caminho: **\<Directory "C:/Program Files/Telamatica/Suricato/apache/cgi-bin">**  *Exemplo:*

```
<Directory "C:/Program Files/Telematica/Suricato/apache/cgi-bin">
```

11. Altere o **ErrorDocument 404** que está comentando no HTTPD.CONF do APACHE novo de: `#ErrorDocument 404 /missing.html` para `ErrorDocument404/scriptcase/error/404/index.html.` *Exemplo:*

```
ErrorDocument 404 /scriptcase/error/404/index.html
```

12. Para ativar MPM, descomente o parâmetro “Server-pool management (MPM specific)” de `#Include conf/extra/httpd-mpm.conf` para: `Include conf/extra/httpd-mpm.conf` *Exemplo:*

```
Include conf/extra/httpd-mpm.conf
```

13. Para ativar o SSL, descomente o parâmetro “Secure (SSL/TLS) connections” de `#Includeconf/extra/httpd-ssl.conf`, para `Include conf/extra/httpd-ssl.conf` *Exemplo:*

```
Include conf/extra/httpd-ssl.conf
```

#### Bloco final (PHP)

No final do arquivo há um bloco que deve ser copiado para o arquivo HTTPD.CONF do Apache novo, copie do Apache antigo para o novo:

* LOADFILE
* LOADMODULE
* PHPDIR
* ADDHANDLER
* CHARSET

### Configuração SSL

Entre na pasta **EXTRA** e clique com botão direito e edite o arquivo **HTTPD.SSL.CONF**, dentro do arquivo verifique os parâmetros DocumentRoot, ServerName, ServerAdmin, ErrorLog&#x20;

Altere de:

```
- DocumentRoot "${SRVROOT}/htdocs"
- ServerName www.example.com:443
- ServerAdmin admin@example.com
- ErrorLog "${SRVROOT}/logs/error.log"
- TransferLog "${SRVROOT}/logs/access.log"
```

Para:

<pre><code><strong>- DocumentRoot "C:/Program Files/Telematica/Suricato/"
</strong>- ServerName 172.16.14.249:443
- ServerAdmin admin@example.com
- ErrorLog "C:/Program Files/Telematica/Suricato/apache/logs/error.log"
- TransferLog "C:/Program Files/Telematica/Suricato/apache/logs/access.log"
</code></pre>

#### Parâmetros SSL

Comente os parametros, utilizando o simbolo "#":

```
SSLProtocol
SSLProxyProtocol
SSLProxyCipherSuite
SSLHonorCipherOrder
```

#### Certificados

1. Altere o parâmetro `SSLCertificateFile` para `SSLCertificateFile "C:/Program Files/Telematica/Suricato/apache/certif/suricato.cer"`  *Exemplo:*

```
SSLCertificateFile "C:/Program Files/Telematica/Suricato/apache/certif/suricato.cer" 
```

2. Troque o parâmetro `SSLCertificateKeyFile` para `SSLCertificateKeyFile "C:/Program Files/Telematica/Suricato/apache/certif/suricato.key"`  *Exemplo:*

```
SSLCertificateKeyFile "C:/Program Files/Telematica/Suricato/apache/certif/suricato.key"
```

3. No final do arquivo adicione o parametro `SETENV”: SetEnv PHPRC "C:\Program Files\Telematica\Suricato\apache\php"`

<figure><img src="/files/MfU1PQIuTbEw6DMvzHmL" alt=""><figcaption></figcaption></figure>

### Reinstalar o serviço

1. Depois de realizar as alterações no novo arquivo APACHE, abra o CMD e delete o serviço do Apache utilizando o comando: **SC Delete TelematicaSuricato**

```
SC Delete TelematicaSuricato
```

2. Ao finalizar a exclusão do serviço do apache utilize o comando a seguir para alterar o diretorio do CMD. `CD C:\Program Files\Telematica\Suricato\apache\bin`

```
cd C:\Program Files\Telematica\Suricato\apache\bin
```

3. Logo após digite `HTTPD.EXE –n “Telematica Suricato”  -k install` e instale novamente:

```
httpd.exe -n "Telematica Suricato" -k install
```

<figure><img src="/files/sKWw77KM6vCD48saaNPI" alt=""><figcaption></figcaption></figure>

### Validação final

* Verifique se não ocorreu nenhum erro no CMD.
* E verifique no php.info se a versão foi alterada.&#x20;
* Para acessar o "php.info", digite no navegador "`https://iPDaMaquina/suricato/info.php`"

<figure><img src="/files/7g8GQuxaqtk5hoSGXqir" alt=""><figcaption></figcaption></figure>

## FAQ - Perguntas Frequentes

<details>

<summary>Posso atualizar o PHP junto com o Apache?</summary>

Sim, desde que mantenha a compatibilidade: PHP 8.1 (ou 8.5 para versão 3.1.0.0).

</details>

<details>

<summary>Qual versão do Apache devo utilizar?</summary>

Versões da linha 2.4.x são as compatíveis com o Suricato.

</details>

<details>

<summary>Preciso parar o Apache antes de atualizar?</summary>

Sim. A parada do serviço é obrigatória para evitar falhas ou corrupção de arquivos.

</details>

<details>

<summary>É necessário fazer backup?</summary>

Sim. O backup da pasta do Apache é essencial para rollback em caso de erro.

</details>

<details>

<summary>Posso copiar todas as DLLs da versão antiga?</summary>

Não. Algumas bibliotecas podem ser incompatíveis. Em versões mais novas, utilize apenas as DLLs da própria versão.

</details>

<details>

<summary>Quais pastas devem ser preservadas?</summary>

As pastas **certif**, **php** e **cgi-bin** devem ser copiadas da instalação antiga.

</details>

<details>

<summary>O Apache não iniciou após a atualização, o que fazer?</summary>

Verifique módulos inexistentes no httpd.conf e remova ou ajuste conforme a nova versão.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-do-suricato/instalacao-do-suricato/instalacao-e-atualizacao-do-apache/atualizacao-do-apache.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
