Para atualizar o PHP utilizado pelo ambiente de desenvolvimento do **Scriptcase** no Windows e corrigir vulnerabilidades de segurança, será necessário substituir os arquivos do PHP presentes no diretório de componentes do Scriptcase.

O procedimento permite atualizar o **PHP 8.2.x para o PHP 8.2.35**, preservando os projetos, bancos de dados e configurações existentes.

Neste tutorial, veremos como realizar a atualização manualmente.

> **Importante:** *Este tutorial considera a estrutura de diretórios e serviços criada pelo instalador oficial do Scriptcase v10 com PHP 8.2.* **Caso seu ambiente tenha sido configurado de outra forma, o procedimento será semelhante***. Entretanto, os diretórios, nome de serviços poderão ser diferentes, sendo necessário adaptar as instruções ao seu ambiente.*

## Pré - Requisitos

Antes de modificar os arquivos da instalação, realize os procedimentos abaixo.

**Verificar a versão e a arquitetura do PHP**

1. Acesse o ambiente de desenvolvimento do Scriptcase.

2. No menu superior, selecione **Ajuda > Diagnóstico**.

3. Verifique a versão atual do PHP.

4. Salve as informações do diagnóstico.

5. Localize a informação `Architecture` e confirme se a arquitetura é `x64` ou `x86`.

> *O procedimento apresentado utiliza como referência a arquitetura x64, mas também pode ser realizado em instalações x86, utilizando os arquivos correspondentes.*

## Realizar um backup preventivo

Antes de iniciar a atualização realize um backup de segurança dos seus projetos.

1. Configurações > Administração

2. Em seguida, em **Serviços > Backup**

3. Defina um nome e clique em **Processar e aguarde o processo**

4. O Backup estará finalizado quando o botão Download for exibido. Baixe o zip e armazene em um local seguro.

   

## Passo 1: Parar o ambiente web

1. No Windows, abra o menu **Iniciar** e pesquise por `Serviços`.

2. Execute o gerenciador de serviços com permissões de administrador.

3. Localize o serviço `ApacheScriptcase10`.

4. Clique com o botão direito sobre o serviço e selecione **Parar**.

5. Abra o Gerenciador de Tarefas utilizando `Ctrl + Shift + Esc`.

6. Verifique se existem processos `php.exe` ou `php-cgi.exe` relacionados ao ambiente do Scriptcase.

Caso existam, encerre os processos correspondentes à instalação que está sendo atualizada.

> **Importante:** *Não prossiga com a substituição dos arquivos enquanto os serviços do ambiente estiverem em execução.*

## Passo 2: Download do PHP 8.2.35 (NTS)

1. [Baixar o PHP 8.2.35 (Non Thread Safe)](https://www.php.net/downloads.php?os=windows&osvariant=windows-downloads&version=8.2)

2. Localize a seção correspondente ao **PHP 8.2.35**.

3. Baixe a versão **Non Thread Safe (NTS)** compatível com a arquitetura identificada anteriormente:
      - **VS16 x64 Non Thread Safe:** para instalações de 64 bits.

      - **VS16 x86 Non Thread Safe:** para instalações de 32 bits.

4. Selecione o arquivo no formato `.zip`.

> **Atenção:** *O Scriptcase utiliza PHP* ****Non Thread Safe (NTS)*****. Portanto, é necessário baixar a versão NTS correspondente à arquitetura do ambiente (x64 ou x86). Não utilize a versão Thread Safe (TS).*

![](https://support2.scriptcase.net/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBcVpqIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e344ac7876a0abdc60e7a519e640fb7922f97e2c/image.png)

## Passo 3: Substituir os arquivos do PHP

Após para os serviços e realizar o download do php, siga os passos abaixo:

1. Acesse o diretório de componentes do Scriptcase:

   `C:\Program Files\NetMake\v10-php82\components`

2. Localize a pasta `php`.

3. Renomeie a pasta atual para `php_old`, preservando os arquivos da instalação anterior.

4. Crie uma nova pasta com o nome `php`.

5. **Extraia todo o conteúdo do arquivo `.zip` baixado dentro do diretório criado** no passo anterior: \
   `C:\Program Files\NetMake\v10-php82\components\php`

6. Confirme que os arquivos do PHP foram extraídos diretamente dentro da nova pasta `php`.

---

## Passo 4: Restaurar as configurações e extensões do Scriptcase

Após atualizar os arquivos do PHP, será necessário recuperar as configurações da instalação anterior, que foram preservadas na pasta `php_old`.

**4.1. Restaurar o arquivo php.ini**

1. Acesse a pasta `php_old`.

2. Localize o arquivo `php.ini`.

3. Copie o arquivo para a nova pasta `php`.

> **Importante:** O arquivo `php.ini` contém as configurações utilizadas pelo PHP no ambiente do Scriptcase. É fundamental manter esse arquivo para preservar os caminhos e as configurações necessários ao funcionamento do ambiente

**4.2. Restaurar as extensões do PHP**

Para preservar as extensões adicionais utilizadas pelo Scriptcase, siga os passos abaixo:

1. Acesse o diretório `php_old\ext`.

2. Copie todos os arquivos existentes nessa pasta.

3. Acesse o diretório `php\ext` da nova instalação.

4. Cole os arquivos copiados, **sem substituir os arquivos que já existem**.

> **Importante:** *Caso o Windows solicite a substituição de arquivos, selecione a opção para ignorá-los, mantendo os arquivos da nova versão do PHP.*

**4.3. Restaurar o SourceGuardian**

O Scriptcase no PHP 8.2 utiliza o **SourceGuardian** para o carregamento de componentes protegidos do ambiente de desenvolvimento.

1. Acesse o diretório `php_old`.

2. Localize o arquivo `ixed.8.2.win`.

3. Copie esse arquivo para a nova pasta `php`, sem substituir outros arquivos.

> **Importante:** *Caso o Scriptcase apresente um erro relacionado ao SourceGuardian após a atualização, verifique se o arquivo foi copiado corretamente e se o caminho configurado no `php.ini` está correto.*

**4.4. Criar o diretório temporário (tmp)**

Para garantir o funcionamento correto das sessões e dos arquivos temporários do PHP, será necessário recriar o diretório `tmp` utilizado pela instalação anterior.

1. Acesse a pasta `php`.

2. Crie uma nova pasta com o nome `tmp`.

> **Importante:** *O diretório `tmp` deve possuir permissões de escrita para o usuário responsável pela execução do Apache. Essa pasta é utilizada para armazenar arquivos temporários e sessões do PHP. Sua ausência pode provocar erros de sessão e impedir o login no Scriptcase.*

---

## Passo 5: Iniciar o ambiente e validar a atualização

Após concluir a substituição dos arquivos e restaurar as configurações, reinicie o ambiente.

1. Abra novamente o gerenciador de **Serviços** do Windows.

2. Localize o serviço `ApacheScriptcase10`.

3. Clique com o botão direito sobre o serviço e selecione **Iniciar**.

4. Acesse o Scriptcase e realize o login normalmente.

5. No menu superior, selecione **Ajuda > Diagnóstico**.

6. Confirme se a versão apresentada é **PHP 8.2.35**.

7. Verifique se as extensões necessárias estão carregadas corretamente.

8. Abra um projeto existente e execute uma aplicação para confirmar o funcionamento.

Caso o ambiente não inicie corretamente, consulte os logs do Apache e do PHP e verifique as configurações do arquivo `php.ini`.

---


