Skip to content

Instantly share code, notes, and snippets.

@DerexScript
Created August 15, 2026 19:57
Show Gist options
  • Select an option

  • Save DerexScript/6c21a61b489cbf0995f2e262e8f8d366 to your computer and use it in GitHub Desktop.

Select an option

Save DerexScript/6c21a61b489cbf0995f2e262e8f8d366 to your computer and use it in GitHub Desktop.
CWP with php 8.4.24

Build do PHP-FPM 8.4.24 no CWP

Data da preparação: 15/08/2026.

Arquivos persistentes alterados

  • /usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/8.4.ini

Criado:

  • /usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/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.4_last_build.ini ainda não existia e não foi criado manualmente. Ele deve ser regenerado pelo painel ao clicar em Save Options.

As referências aos quatro scripts pre_run foram removidas do 8.4.ini, mas os próprios arquivos não foram alterados:

php84.sh
gdavif.sh
ldap.sh
firebird.sh

Os scripts antigos mbstring.sh e sodium.sh também não foram alterados; eles deixaram de ser chamados porque essas extensões agora são compiladas diretamente do fonte oficial do PHP.

Correção do bloqueio ao salvar as opções

O bloco [zlib] continha:

include=zlib-dir

Porém não existia nenhuma seção [zlib-dir] no 8.4.ini. O JavaScript do CWP interpretava isso como uma dependência obrigatória ausente e exibia:

Option: zlib
Dependencies: zlib-dir

A referência quebrada foi removida. O zlib continua selecionável e será compilado normalmente com:

--with-zlib=/usr

Ajustes no 8.4.ini

  • mbstring, pcntl, posix, shmop e sockets passam a ser compilados como módulos compartilhados.
  • O mbstring deixa de baixar um binário externo e é compilado do próprio fonte do PHP 8.4.24.
  • 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 calendar foi removida.
  • A opção kerberos foi removida porque --with-kerberos não existe no PHP 8.4.24. Ela era uma opção sem efeito deixada pelo CWP após a remoção do IMAP do core do PHP.

Depois do ajuste, o painel apresenta 60 opções válidas.

Extensões externas

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.13.3
PDO_SQLSRV       5.13.3
SSH2             1.5.0
Uploadprogress   2.0.2
Xdebug           3.5.3

O Memcache 8.2 recebe a correção dos includes php_smart_string*.h e é compilado em modo serial para evitar a corrida observada no build do PHP 8.5.9.

Os loaders são baixados dos fornecedores e validados antes da ativação:

ionCube:        ioncube_loader_lin_8.4.so
SourceGuardian: ixed.8.4.lin

O opcache.sh é específico para o PHP 8.4. O OPcache 8.4 é sempre compilado como opcache.so, diferentemente do comportamento observado no PHP 8.5. O script valida e ativa OPcache e mbstring, e mantém os módulos sensíveis comentados nos respectivos arquivos .ini.

Estado esperado após o build

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

Os motivos são os mesmos adotados no PHP 8.5.9:

  • 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.

Os demais módulos selecionados serão ativados, incluindo mbstring, OPcache, APCu, Imagick, Memcache, Redis, MongoDB, Uploadprogress, ionCube, SourceGuardian, Mailparse, SQLSRV e PDO_SQLSRV.

Backups

Foi criado um backup individual, anterior às alterações, para cada arquivo modificado. Todos usam o marcador:

pre_php84_20260815_003034.backup

Configuração:

/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/8.4.ini.pre_php84_20260815_003034.backup

Scripts:

/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/apcu.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/imagick.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/ioncube.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/mailparse.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/mcrypt.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/memcache.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/mongodb.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/opcache.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/redis.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/sourceguardian.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/sqlsrv.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/ssh2.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/uploadprogress.sh.pre_php84_20260815_003034.backup
/root/cwp_bkp/usr_local_cwpsrv_htdocs_resources_conf_el8_php-fpm_selector/external_modules/8.4/xdebug.sh.pre_php84_20260815_003034.backup

Os SHA-256 dos backups foram comparados com os originais antes da primeira alteração e todos coincidiram.

Validações realizadas

  • O 8.4.ini foi carregado com parse_ini_file(): 60 seções válidas.
  • Não restou nenhuma dependência include inexistente.
  • Todos os scripts .sh do diretório 8.4 passaram em sh -n.
  • Todas as URLs das versões PECL fixadas responderam com HTTP 200.
  • Os arquivos oficiais de ionCube e SourceGuardian contêm loaders para PHP 8.4.
  • O fonte oficial do PHP 8.4.24 foi submetido a um configure real com os mesmos 49 argumentos que o painel produzirá ao selecionar tudo.
  • O configure terminou com sucesso, sem opções desconhecidas, warnings ou erros.
  • O preflight confirmou mbstring, pcntl, posix, shmop, sockets e OPcache, além de LDAP, PostgreSQL e PDO Firebird.
  • Os diretórios temporários do preflight foram removidos depois do teste.

Procedimento no painel

  1. Atualizar a página do CWP para recarregar o 8.4.ini.
  2. Abrir PHP-FPM Selector → PHP 8.4.24 → opções.
  3. Marcar todas as 60 opções exibidas.
  4. Clicar em Save Options.
  5. Iniciar o build do PHP 8.4.24.
  6. Acompanhar:
tail -f /var/log/php-selector-rebuild.log

Depois do build, conferir:

/opt/alt/php-fpm84/usr/bin/php -v
/opt/alt/php-fpm84/usr/bin/php --ini
/opt/alt/php-fpm84/usr/bin/php -m
@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/build_pecl_module.sh

#!/bin/sh
set -eu

BUILD_ROOT=/usr/local/src

if [ "$#" -lt 5 ]; then
    echo "Uso: $0 pacote versao modulo diretiva enabled|disabled [opcoes]"
    exit 1
fi

PACKAGE=$1
VERSION=$2
MODULE=$3
DIRECTIVE=$4
LOAD_MODE=$5
shift 5

case "$DIRECTIVE" in
    extension|zend_extension) ;;
    *)
        echo "Diretiva inválida: $DIRECTIVE"
        exit 1
        ;;
esac

case "$LOAD_MODE" in
    enabled|disabled) ;;
    *)
        echo "Modo inválido: $LOAD_MODE"
        exit 1
        ;;
esac

PHP_PREFIX=/opt/alt/php-fpm84/usr
PHPIZE="$PHP_PREFIX/bin/phpize"
PHP_CONFIG="$PHP_PREFIX/bin/php-config"
INI_DIR="$PHP_PREFIX/php/php.d"

if [ ! -x "$PHPIZE" ] || [ ! -x "$PHP_CONFIG" ]; then
    echo "ERRO: phpize/php-config do PHP 8.4 não encontrado"
    exit 1
fi

JOBS=$(getconf _NPROCESSORS_ONLN 2>/dev/null || printf '1')
case "$JOBS" in
    ''|*[!0-9]*) JOBS=1 ;;
esac

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/usr/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export PKG_CONFIG_PATH LD_LIBRARY_PATH

cd "$BUILD_ROOT"
WORK_DIR=$(mktemp -d "$BUILD_ROOT/php84-${PACKAGE}.XXXXXX")

cleanup()
{
    cd "$BUILD_ROOT" 2>/dev/null || return
    rm -rf -- "$WORK_DIR"
}

trap cleanup EXIT HUP INT TERM

ARCHIVE="$WORK_DIR/${PACKAGE}-${VERSION}.tgz"
URL="https://pecl.php.net/get/${PACKAGE}-${VERSION}.tgz"

echo "Baixando $URL"
curl --fail --location --retry 3 --connect-timeout 20 \
    "$URL" --output "$ARCHIVE"

tar -xzf "$ARCHIVE" -C "$WORK_DIR"

SOURCE_DIR=$(find "$WORK_DIR" -mindepth 1 -maxdepth 1 \
    -type d -name "${PACKAGE}-*" -print -quit)

if [ -z "$SOURCE_DIR" ] || [ ! -d "$SOURCE_DIR" ]; then
    echo "ERRO: código-fonte de $PACKAGE não encontrado"
    exit 1
fi

cd "$SOURCE_DIR"

if [ "$PACKAGE" = "memcache" ] && [ "$VERSION" = "8.2" ]; then
    for FILE in \
        src/memcache_ascii_protocol.c \
        src/memcache_binary_protocol.c \
        src/memcache_pool.c \
        src/memcache_pool.h \
        src/memcache_session.c
    do
        sed -i \
            -e 's#ext/standard/php_smart_string_public\.h#Zend/zend_smart_string.h#g' \
            -e 's#ext/standard/php_smart_string\.h#Zend/zend_smart_string.h#g' \
            "$FILE"
    done

    if grep -R -q 'ext/standard/php_smart_string' src; then
        echo "ERRO: correção de compatibilidade do memcache não foi aplicada"
        exit 1
    fi

    JOBS=1
    echo "Compatibilidade do memcache 8.2 com PHP 8.4 aplicada"
fi

"$PHPIZE"
./configure --with-php-config="$PHP_CONFIG" "$@"
make -j"$JOBS"
make install

EXT_DIR=$("$PHP_CONFIG" --extension-dir)
MODULE_FILE="$EXT_DIR/${MODULE}.so"

if [ ! -f "$MODULE_FILE" ]; then
    echo "ERRO: $MODULE_FILE não foi instalado"
    exit 1
fi

if ldd "$MODULE_FILE" 2>/dev/null | grep -q 'not found'; then
    echo "ERRO: dependência dinâmica ausente em $MODULE_FILE"
    ldd "$MODULE_FILE" | grep 'not found' || true
    exit 1
fi

install -d -m 0755 "$INI_DIR"

if [ "$LOAD_MODE" = "enabled" ]; then
    printf '%s=%s.so\n' "$DIRECTIVE" "$MODULE" \
        > "$INI_DIR/${MODULE}.ini"
else
    printf ';%s=%s.so\n' "$DIRECTIVE" "$MODULE" \
        > "$INI_DIR/${MODULE}.ini"
fi

echo "$MODULE instalado com estado: $LOAD_MODE"

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/apcu.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" apcu 5.1.28 apcu extension enabled --enable-apcu

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/imagick.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" imagick 3.8.1 imagick extension enabled --with-imagick=/usr

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/ioncube.sh

#!/bin/sh
set -eu

BUILD_ROOT=/usr/local/src
PHP_PREFIX=/opt/alt/php-fpm84/usr
PHP="$PHP_PREFIX/bin/php"
INI_DIR="$PHP_PREFIX/php/php.d"
DEST_DIR=/usr/local/ioncube
LOADER_NAME=ioncube_loader_lin_8.4.so

cd "$BUILD_ROOT"
WORK_DIR=$(mktemp -d "$BUILD_ROOT/php84-ioncube.XXXXXX")

cleanup()
{
    cd "$BUILD_ROOT" 2>/dev/null || return
    rm -rf -- "$WORK_DIR"
}

trap cleanup EXIT HUP INT TERM

ARCHIVE="$WORK_DIR/ioncube.tar.gz"

curl --fail --location --retry 3 --connect-timeout 20 \
    https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
    --output "$ARCHIVE"

tar -xzf "$ARCHIVE" -C "$WORK_DIR"
SOURCE_LOADER="$WORK_DIR/ioncube/$LOADER_NAME"

if [ ! -f "$SOURCE_LOADER" ]; then
    echo "ERRO: loader ionCube para PHP 8.4 não encontrado"
    exit 1
fi

install -d -m 0755 "$DEST_DIR" "$INI_DIR"
install -m 0644 "$SOURCE_LOADER" "$DEST_DIR/$LOADER_NAME"

if ! "$PHP" -n -d "zend_extension=$DEST_DIR/$LOADER_NAME" \
    -r 'exit(extension_loaded("ionCube Loader") ? 0 : 1);'
then
    echo "ERRO: loader ionCube para PHP 8.4 não pôde ser carregado"
    exit 1
fi

printf 'zend_extension=%s/%s\n' "$DEST_DIR" "$LOADER_NAME" \
    > "$INI_DIR/ioncube.ini"

echo "ionCube PHP 8.4 instalado e ativado"

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/mailparse.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" mailparse 3.2.0 mailparse extension enabled --enable-mailparse

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/mcrypt.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" mcrypt 1.0.9 mcrypt extension disabled --with-mcrypt=/usr

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/memcache.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" memcache 8.2 memcache extension enabled --enable-memcache

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/mongodb.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" mongodb 2.3.3 mongodb extension enabled --enable-mongodb

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/opcache.sh

#!/bin/sh
set -eu

PHP_PREFIX=/opt/alt/php-fpm84/usr
PHP="$PHP_PREFIX/bin/php"
PHP_CONFIG="$PHP_PREFIX/bin/php-config"
INI_DIR="$PHP_PREFIX/php/php.d"

if [ ! -x "$PHP" ] || [ ! -x "$PHP_CONFIG" ]; then
    echo "ERRO: PHP/php-config do PHP 8.4 não encontrado"
    exit 1
fi

EXT_DIR=$("$PHP_CONFIG" --extension-dir)
OPCACHE_SO="$EXT_DIR/opcache.so"

if [ ! -f "$OPCACHE_SO" ]; then
    echo "ERRO: $OPCACHE_SO não encontrado"
    exit 1
fi

if ! "$PHP" -n -d "zend_extension=$OPCACHE_SO" \
    -r 'exit(extension_loaded("Zend OPcache") ? 0 : 1);'
then
    echo "ERRO: OPcache do PHP 8.4 não pôde ser carregado"
    exit 1
fi

for MODULE in mbstring pcntl posix shmop sockets; do
    if [ ! -f "$EXT_DIR/$MODULE.so" ]; then
        echo "ERRO: $EXT_DIR/$MODULE.so não encontrado"
        exit 1
    fi

    if ! "$PHP" -n -d "extension=$EXT_DIR/$MODULE.so" \
        -r "exit(extension_loaded('$MODULE') ? 0 : 1);"
    then
        echo "ERRO: $MODULE do PHP 8.4 não pôde ser carregado"
        exit 1
    fi
done

install -d -m 0755 "$INI_DIR"

printf '%s\n' 'extension=mbstring.so' \
    > "$INI_DIR/00-mbstring.ini"

{
    printf 'zend_extension=%s\n' "$OPCACHE_SO"
    printf '%s\n' 'opcache.enable=1'
    printf '%s\n' 'opcache.memory_consumption=128'
    printf '%s\n' 'opcache.interned_strings_buffer=8'
    printf '%s\n' 'opcache.max_accelerated_files=5000'
    printf '%s\n' 'opcache.revalidate_freq=60'
    printf '%s\n' 'opcache.enable_cli=1'
} > "$INI_DIR/opcache.ini"

for MODULE in pcntl posix shmop sockets; do
    printf ';extension=%s.so\n' "$MODULE" \
        > "$INI_DIR/$MODULE.ini"
done

echo "OPcache e mbstring ativados; pcntl, posix, shmop e sockets desativados"

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/redis.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" redis 6.3.0 redis extension enabled --enable-redis

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/sourceguardian.sh

#!/bin/sh
set -eu

BUILD_ROOT=/usr/local/src
PHP_PREFIX=/opt/alt/php-fpm84/usr
PHP="$PHP_PREFIX/bin/php"
INI_DIR="$PHP_PREFIX/php/php.d"
DEST_DIR=/usr/local/sourceguardian
LOADER_NAME=ixed.8.4.lin

cd "$BUILD_ROOT"
WORK_DIR=$(mktemp -d "$BUILD_ROOT/php84-sourceguardian.XXXXXX")

cleanup()
{
    cd "$BUILD_ROOT" 2>/dev/null || return
    rm -rf -- "$WORK_DIR"
}

trap cleanup EXIT HUP INT TERM

ARCHIVE="$WORK_DIR/sourceguardian.zip"
EXTRACT_DIR="$WORK_DIR/extracted"

install -d -m 0755 "$EXTRACT_DIR"

curl --fail --location --retry 3 --connect-timeout 20 \
    https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.zip \
    --output "$ARCHIVE"

unzip -j -o "$ARCHIVE" "$LOADER_NAME" -d "$EXTRACT_DIR"
SOURCE_LOADER="$EXTRACT_DIR/$LOADER_NAME"

if [ ! -f "$SOURCE_LOADER" ]; then
    echo "ERRO: loader SourceGuardian para PHP 8.4 não encontrado"
    exit 1
fi

install -d -m 0755 "$DEST_DIR" "$INI_DIR"
install -m 0644 "$SOURCE_LOADER" "$DEST_DIR/$LOADER_NAME"

if ! "$PHP" -n -d "zend_extension=$DEST_DIR/$LOADER_NAME" \
    -r 'exit(extension_loaded("SourceGuardian") ? 0 : 1);'
then
    echo "ERRO: loader SourceGuardian para PHP 8.4 não pôde ser carregado"
    exit 1
fi

printf 'zend_extension=%s/%s\n' "$DEST_DIR" "$LOADER_NAME" \
    > "$INI_DIR/sourceguardian.ini"

echo "SourceGuardian PHP 8.4 instalado e ativado"

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/sqlsrv.sh

#!/bin/sh
set -eu

SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)

sh "$SCRIPT_DIR/build_pecl_module.sh" \
    sqlsrv 5.13.3 sqlsrv extension enabled --enable-sqlsrv

exec sh "$SCRIPT_DIR/build_pecl_module.sh" \
    pdo_sqlsrv 5.13.3 pdo_sqlsrv extension enabled --enable-pdo_sqlsrv

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/ssh2.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" ssh2 1.5.0 ssh2 extension disabled --with-ssh2=/usr/local

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/uploadprogress.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" uploadprogress 2.0.2 uploadprogress extension enabled --enable-uploadprogress

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.4/xdebug.sh

#!/bin/sh
SCRIPT_DIR=$(CDPATH= cd "$(dirname "$0")" && pwd)
exec sh "$SCRIPT_DIR/build_pecl_module.sh" xdebug 3.5.3 xdebug zend_extension disabled --enable-xdebug

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author
cat /etc/*os-release*
AlmaLinux release 8.10 (Cerulean Leopard)
NAME="AlmaLinux"
VERSION="8.10 (Cerulean Leopard)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.10 (Cerulean Leopard)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:8::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.10"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.10"
SUPPORT_END=2029-06-01
uname -r
4.18.0-553.153.1.el8_10.x86_64

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment