Skip to content

Instantly share code, notes, and snippets.

@DerexScript
Last active August 15, 2026 20:40
Show Gist options
  • Select an option

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

Select an option

Save DerexScript/d04ffa3ac3daf277eda4b4242a686a85 to your computer and use it in GitHub Desktop.
CWP with php 8.5.9

Arquivos persistentes alterados

  • /usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/8.5.ini
  • /usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/8.5_last_build.ini — regenerado pelo painel.

Criado:

  • /usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.5/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

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

Após o build:

  • mcrypt, xdebug, pcntl, posix, shmop, ssh2 e sockets ficam compilados, porém desativados.
  • Os demais módulos selecionados ficam ativos.

mcrypt, xdebug, pcntl, posix, shmop, ssh2 e sockets ficam compilados, porém desativados por esses motivos:

pcntl → OFF — esse é o mais importante. A própria documentação do PHP diz explicitamente que Process Control não deve ser habilitado em ambiente de servidor web. Ele permite fork, sinais, execução e controle de processos.

posix → OFF — normalmente desnecessário em sites e o PHP alerta que funções POSIX podem obter informações sensíveis do sistema, inclusive dados de usuários/grupos.

shmop → OFF — esses quatro fornecem IPC, semáforos e memória compartilhada do sistema operacional. Em hospedagem compartilhada eu só habilitaria se uma aplicação realmente exigir.

ssh2 → OFF, salvo se algum cliente realmente precisar. A extensão permite shell remoto, ssh2_exec(), SCP/SFTP e até túneis SSH.

sockets → OFF, salvo necessidade específica de sockets de baixo nível/WebSockets/daemons. Ela permite que PHP funcione como cliente e servidor de sockets.

xdebug → Xdebug é uma extensão para PHP que auxilia na depuração e no desenvolvimento. Então nenhum pouco interessante para produção!

mcrypt → é obsoleto e não mantido, foi removido do PHP core e deve ser substituído por OpenSSL ou Sodium.

@DerexScript

DerexScript commented Aug 15, 2026

Copy link
Copy Markdown
Author

/usr/local/cwpsrv/htdocs/resources/conf/el8/php-fpm_selector/external_modules/8.5/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.5/opcache.sh

#!/bin/sh
set -eu

cd /usr/local/src

PHP_PREFIX=/opt/alt/php-fpm85/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.5 não encontrado"
    exit 1
fi

EXT_DIR=$("$PHP_CONFIG" --extension-dir)

if ! "$PHP" -n -r 'exit(extension_loaded("Zend OPcache") ? 0 : 1);'; then
    echo "ERRO: OPcache não foi incorporado ao PHP 8.5"
    exit 1
fi

if [ ! -f "$EXT_DIR/mbstring.so" ]; then
    echo "ERRO: $EXT_DIR/mbstring.so não encontrado"
    exit 1
fi

install -d -m 0755 "$INI_DIR"

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

{
    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
    if [ ! -f "$EXT_DIR/$MODULE.so" ]; then
        echo "ERRO: $EXT_DIR/$MODULE.so não encontrado"
        exit 1
    fi

    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.5/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.5/sourceguardian.sh

#!/bin/sh
set -eu

cd /usr/local/src

PHP_PREFIX=/opt/alt/php-fpm85/usr
INI_DIR="$PHP_PREFIX/php/php.d"
DEST_DIR=/usr/local/sourceguardian
LOADER_NAME=ixed.8.5.lin

WORK_DIR=$(mktemp -d /usr/local/src/php85-sourceguardian.XXXXXX)

cleanup()
{
    if [ -n "${WORK_DIR:-}" ] && [ -d "$WORK_DIR" ]; then
        rm -rf -- "$WORK_DIR"
    fi
}

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.5 não encontrado"
    exit 1
fi

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

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

echo "SourceGuardian PHP 8.5 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.5/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.5/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.5/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.5/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