Data da preparação: 15/08/2026.
Antes desta preparação, o PHP-FPM 8.2 instalado era:
PHP 8.2.29 NTS
O serviço php-fpm82.service permaneceu ativo durante toda a preparação.
Nenhum binário, configuração de pool, socket ou arquivo dentro de
/opt/alt/php-fpm82/ foi alterado nesta etapa.
O build do PHP 8.2.33 substituirá a instalação 8.2 existente somente quando for iniciado pelo painel.
/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/8.2.ini
Criado:
/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.2/build_pecl_module.sh
Modificados:
apcu.sh
imagick.sh
ioncube.sh
mailparse.sh
mcrypt.sh
memcache.sh
mongodb.sh
opcache.sh
redis.sh
sourceguardian.sh
sqlsrv.sh
ssh2.sh
uploadprogress.sh
xdebug.sh
O arquivo 8.2_last_build.ini não existia e não foi criado manualmente.
Ele deve ser gerado pelo painel ao clicar em Save Options.
As referências aos quatro scripts pre_run abaixo foram removidas do
8.2.ini, mas os próprios arquivos não foram alterados:
php82.sh
gdavif.sh
ldap.sh
firebird.sh
O imap7.sh foi preservado porque o PHP 8.2 ainda contém a extensão IMAP
no core e usa as bibliotecas UW-IMAP.
O script antigo sodium.sh não foi alterado; ele deixou de ser chamado
porque Sodium agora é compilado diretamente do fonte oficial do PHP.
O bloco [zlib] continha:
include=zlib-dirO arquivo também possuía uma seção separada [zlib-dir], que geraria o
argumento antigo e desnecessário:
--with-zlib-dir=/usr
A dependência e a seção redundante foram removidas. Isso evita que a
interface do CWP trate zlib-dir como uma segunda opção obrigatória e
impede o envio do argumento antigo ao configure do PHP 8.2.33.
O zlib continua selecionável e será compilado normalmente com:
--with-zlib=/usr
mbstring,pcntl,posix,shmopesocketspassam a ser compilados como módulos compartilhados.- O PCRE interno do PHP é usado com
--without-external-pcre. - LDAP usa a sintaxe válida
--with-ldap=/usr --with-ldap-sasl. - PDO Firebird usa as bibliotecas do sistema em
/usr. - Sodium é compilado do core com
--with-sodium. - A segunda seção duplicada de
calendarfoi removida. - O pre-script antigo do AVIF foi removido; a biblioteca disponível no
sistema é usada por
--with-avif. - Os pre-scripts antigos de LDAP e Firebird foram removidos porque as bibliotecas e headers do sistema já estão disponíveis.
Estas opções continuam no core do PHP 8.2 e foram preservadas:
pspell
imap
imap-ssl
kerberos
Depois do ajuste, o painel apresenta 63 opções válidas.
O novo build_pecl_module.sh usa diretórios temporários exclusivos,
downloads HTTPS com falha explícita, versões fixadas, compilação paralela,
verificação do arquivo .so, verificação de bibliotecas dinâmicas e
criação determinística do arquivo .ini.
Versões fixadas:
APCu 5.1.28
Imagick 3.8.1
Mailparse 3.2.0
Mcrypt 1.0.9
Memcache 8.2
MongoDB 2.3.3
Redis 6.3.0
SQLSRV 5.12.0
PDO_SQLSRV 5.12.0
SSH2 1.5.0
Uploadprogress 2.0.2
Xdebug 3.5.3
SQLSRV e PDO_SQLSRV usam a versão estável 5.12.0. A linha 5.13 está reservada ao PHP 8.3 ou superior; a matriz oficial da Microsoft mantém a linha 5.12 compatível com PHP 8.2. Os metadados PECL de ambos os pacotes 5.12.0 declaram PHP 8.1 como versão mínima.
Isso também substitui os drivers antigos 5.10.0-beta1 presentes na
instalação PHP 8.2.29.
O Memcache 8.2 recebe a correção dos includes
php_smart_string*.h e é compilado em modo serial para evitar corrida de
compilação.
Os loaders são baixados diretamente dos fornecedores e validados antes da ativação:
ionCube: ioncube_loader_lin_8.2.so
SourceGuardian: ixed.8.2.lin
O opcache.sh é específico para o PHP 8.2. Ele valida e ativa OPcache e
mbstring, e mantém os módulos sensíveis comentados nos respectivos
arquivos .ini.
Como a instalação 8.2.29 existente carregava Sodium por meio de
php.d/sodium.ini, o script também substitui esse INI legado por um
comentário. Isso impede tentativa de carregar sodium.so ou aviso de
módulo duplicado, pois no PHP 8.2.33 preparado o Sodium pertence ao core.
Todos os módulos visíveis no painel podem ser selecionados.
Serão compilados, porém permanecerão desativados:
mcrypt
pcntl
posix
shmop
sockets
ssh2
xdebug
Motivos:
pcntl: controle de processos, sinais e forks; inadequado para uso geral em servidor web compartilhado.posix: expõe funções e informações POSIX do sistema.shmop: acesso direto à memória compartilhada do sistema.sockets: sockets de baixo nível, clientes, servidores e daemons.ssh2: shell remoto, execução remota, SCP, SFTP e túneis SSH.xdebug: ferramenta de desenvolvimento e depuração, inadequada para produção.mcrypt: extensão obsoleta e não mantida; deve ser substituída por OpenSSL ou Sodium.
Na instalação 8.2.29 anterior, pcntl, posix, shmop, sockets e
ssh2 estavam ativos. Depois do novo build eles estarão compilados, mas
desativados conforme o padrão adotado nas versões 8.3, 8.4 e 8.5.
Os demais módulos selecionados serão ativados, incluindo IMAP, Pspell, mbstring, OPcache, APCu, Imagick, Memcache, Redis, MongoDB, Uploadprogress, ionCube, SourceGuardian, Mailparse, SQLSRV e PDO_SQLSRV.
Foi criado um backup individual, anterior às alterações, para cada arquivo modificado. Todos usam o marcador:
pre_php82_20260815_022552.backup
Configuração:
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/8.2.ini.pre_php82_20260815_022552.backup
Scripts:
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/apcu.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/imagick.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/ioncube.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/mailparse.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/mcrypt.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/memcache.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/mongodb.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/opcache.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/redis.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/sourceguardian.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/sqlsrv.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/ssh2.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/uploadprogress.sh.pre_php82_20260815_022552.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.2/xdebug.sh.pre_php82_20260815_022552.backup
Os SHA-256 dos backups foram comparados com os originais antes da primeira alteração e todos coincidiram.
- O
8.2.inifoi carregado comparse_ini_file(): 63 seções válidas. - Não restou nenhuma dependência
includeinexistente. - Não existem seções duplicadas.
- Todos os scripts
.shdo diretório 8.2 passaram emsh -n. - Não restou referência indevida a caminhos ou loaders de outras versões do PHP.
- O INI legado da extensão Sodium compartilhada será neutralizado durante o build, antes da inicialização do novo PHP 8.2.33.
- Todas as URLs das versões PECL fixadas responderam com HTTP 200.
- Os metadados PECL de todas as versões fixadas aceitam o PHP 8.2.33.
- A versão SQLSRV/PDO_SQLSRV 5.12.0 foi conferida na matriz oficial de compatibilidade da Microsoft para PHP 8.2.
- Os arquivos oficiais de ionCube e SourceGuardian contêm loaders para PHP 8.2 e os arquivos compactados passaram no teste de integridade.
- O fonte oficial do PHP 8.2.33 foi submetido a um
configurereal com os mesmos 53 argumentos que o painel produzirá ao selecionar tudo. - O
configureterminou com código 0, sem opções desconhecidas ou erros. - O preflight confirmou IMAP com SSL e Kerberos, Pspell, mbstring, pcntl, posix, shmop, sockets, OPcache, AVIF, LDAP, PostgreSQL, PDO Firebird, Sodium e Argon2.
- A ausência de
opagentfoi registrada apenas como integração opcional de profiling do OPcache e não impede a compilação. - Os diretórios temporários das validações foram removidos.
- Após todas as alterações e testes, o PHP 8.2.29 continuava ativo e sem reinicialização do serviço.
Depois da compilação, o arquivo compartilhado da instalação 8.2.29 ainda existia fisicamente em:
/opt/alt/php-fpm82/usr/lib/php/extensions/no-debug-non-zts-20220829/sodium.so
O INI já estava neutralizado e o PHP 8.2.33 carregava Sodium pelo core,
mas o arquivo ainda estava mapeado pelo processo antigo PID 862:
laravel-queue-api-evolua.service
/opt/alt/php-fpm82/usr/bin/php artisan queue:work --sleep=3 --tries=3 --timeout=90
Esse worker ainda executava o binário removido do PHP 8.2.29. Após
autorização específica, o serviço foi reiniciado de forma controlada. O
novo worker PID 2736460 iniciou com o executável atual do PHP 8.2.33,
sem módulos antigos mapeados e sem mensagens de erro no journal.
Quando nenhum processo utilizava mais a extensão legada, ela foi removida do diretório ativo por uma movimentação recuperável para:
/root/cwp_bkp/opt_alt_php-fpm82/usr/lib/php/extensions/no-debug-non-zts-20220829/sodium.so.legacy_php82_29_20260815_032326.backup
SHA-256 preservado:
ccd50fb3078029ca8f07af049eead46a0830c161707f88e24ff62dd096a06c11
Validações posteriores à limpeza:
- o caminho ativo não contém mais
sodium.so; - nenhum INI ou configuração referencia
sodium.so; - PHP 8.2.33 inicia sem warnings;
- Sodium 8.2.33 permanece ativo mesmo com
php -n; sodium_crypto_generichash()está disponível;php-fpm82.servicepermanece ativo;php-fpm -tcontinua aprovando a configuração;laravel-queue-api-evolua.servicepermanece ativo no novo binário.
- Atualizar a página do CWP para recarregar o
8.2.ini. - Abrir
PHP-FPM Selector→ PHP8.2.33→ opções. - Marcar todas as 63 opções exibidas.
- Clicar em
Save Options. - Confirmar que o arquivo
8.2_last_build.inifoi criado pelo painel. - Iniciar o build do PHP 8.2.33.
- Acompanhar:
tail -f /var/log/php-selector-rebuild.logDepois do build, conferir:
/opt/alt/php-fpm82/usr/bin/php -v
/opt/alt/php-fpm82/usr/bin/php --ini
/opt/alt/php-fpm82/usr/bin/php -m