Guia: Como Habilitar a Função shell_exec no DirectAdmin

há 1 semana 37

Método Recomendado: CustomBuild do DirectAdmin

O método a seguir utiliza o CustomBuild do DirectAdmin para garantir que suas configurações personalizadas não sejam sobrescritas durante atualizações do PHP.

Passo 1: Acessar o Servidor via SSH

Conecte-se ao seu servidor como um usuário com privilégios de root (ou use sudo).

Passo 2: Criar o Arquivo de Configuração Personalizado

O DirectAdmin permite a personalização da diretiva disable_functions através de um arquivo específico. Primeiro, navegue até o diretório do CustomBuild:

Bash

cd /usr/local/directadmin/custombuild

Crie o diretório custom se ele ainda não existir:

Bash

mkdir -p custom

Agora, crie o arquivo php_disable_functions dentro do diretório custom. Este arquivo conterá a lista de funções que você deseja manter desabilitadas. Para habilitar shell_exec, basta omiti-lo da lista.

Com base na sua configuração atual, o comando a seguir irá recriar a lista de funções desabilitadas, exceto shell_exec:

Bash

echo "exec,system,passthru,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname" > custom/php_disable_functions

Atenção: O comando acima mantém as outras funções de execução potencialmente perigosas desabilitadas, o que é uma boa prática de segurança. Se desejar habilitar todas as funções (não recomendado), você pode criar o arquivo vazio com o comando: echo "" > custom/php_disable_functions.

Passo 3: Reconstruir as Configurações do PHP

Após criar o arquivo de configuração, execute o secure_php para aplicar as alterações em todas as versões do PHP instaladas:
./build secure_php
Este comando irá ler o seu arquivo custom/php_disable_functions e reescrever os arquivos php.ini do seu servidor com a nova lista de funções desabilitadas.

Passo 4: Verificar a Alteração

Para confirmar que shell_exec foi habilitado, você pode verificar a diretiva disable_functions nos arquivos php.ini do seu servidor. O comando a seguir mostrará a linha correspondente para cada versão do PHP:
grep disable_functions /usr/local/php*/lib/php.ini
Você também pode recarregar a página phpinfo.php que você forneceu anteriormente e verificar se shell_exec não está mais listado na diretiva disable_functions.

Passo 5: Reiniciar o PHP-FPM (se necessário)

Em alguns casos, pode ser necessário reiniciar o serviço PHP-FPM para que as alterações entrem em vigor imediatamente. Para a sua versão do PHP (8.4), o comando seria:
systemctl restart php-fpm84

Referências