1. Base de Conhecimento
  2. Hospedagem

Extensões do PHP e funções bloqueadas (exec, shell_exec, mail)

Nesta página

    Muitos sistemas pedem uma extensão do PHP (imagick, gd, intl, zip, soap, ionCube, redis) ou uma função como exec. As extensões você ativa sozinho no painel. Algumas funções, porém, ficam desativadas por segurança em todos os planos de hospedagem e revenda.

    Ativar uma extensão

    cPanel

    1. Abra Selecionar versão do PHP (PHP Selector).
    2. Confira se a versão em uso é a que o site usa.
    3. Na aba Extensões (Extensions), marque a extensão e salve.

    As extensões do seletor valem para os domínios que estão em inherit no MultiPHP Manager. Veja "Como mudar a versão do PHP no cPanel, DirectAdmin e Plesk".

    DirectAdmin

    1. Abra PHP Selector.
    2. Marque a extensão na versão em uso e salve.

    Plesk

    1. Em Sites e Domínios, abra o domínio, clique em PHP e confira o manipulador do PHP (handler). O PHP Selector só funciona com um manipulador FastCGI, CGI ou LSPHP servido pelo Apache, como o Aplicativo FastCGI servido por Apache. Se precisar trocar, escolha o manipulador e salve.
    2. Abra o PHP Selector do domínio.
    3. Escolha a versão do PHP que o site usa (diferente de native) e aplique.
    4. Marque as extensões e salve.
    5. Para ajustar opções como memory_limit, abra a área de opções do próprio PHP Selector (PHP Settings ou Opções), altere os valores e salve.

    Dicas:

    • Cada versão do PHP tem a sua lista de extensões. Ativar na 8.4 não muda nada se o site usa a 8.1.
    • Algumas extensões não podem ficar ativas juntas, como mysqli e nd_mysqli, ou pdo_mysql e nd_pdo_mysql. O painel avisa que uma delas foi ignorada ("skipped as conflicting"). Desmarque a que conflita e salve de novo.
    • O ionCube Loader e o OPcache também são ativados ou desativados por essa lista.
    • Para confirmar, crie um info.php com <?php phpinfo();, procure a extensão e apague o arquivo depois.

    Funções desativadas por segurança

    Nos servidores de hospedagem e revenda, as funções que executam comandos do sistema ficam desativadas e não são liberadas por conta, entre elas:

    exec, shell_exec, popen, proc_open
    

    Se o sistema depende delas, ele precisa de um VPS. Antes disso, veja se há alternativa sem comandos do sistema, por exemplo a extensão imagick para gerar miniaturas de imagens.

    A função mail() também é desativada. Formulários e sistemas precisam enviar e-mail por SMTP autenticado, com uma conta de e-mail criada no painel. Veja "Meu e-mail não envia: como descobrir a causa".

    Composer e bibliotecas

    O Composer está disponível no terminal da conta para instalar bibliotecas PHP do projeto. Bibliotecas de sistema e programas como FFmpeg não são instalados na hospedagem; nesses casos é preciso um VPS.

    Em contas de revenda, se o terminal não abre ou mostra erro de jailshell, veja "Tarefas cron: como configurar no cPanel, DirectAdmin e Plesk".

    Se não resolver

    Abra um ticket com:

    • o domínio e a versão do PHP em uso;
    • o nome da extensão ou função que o sistema pede;
    • a mensagem de erro exibida pelo sistema.

    Não inclua senhas no ticket.

    Esta resposta foi útil?

    A sua avaliação nos ajuda a melhorar os artigos.

    Não resolveu? Abra um ticket

    Conte o que aconteceu e a nossa equipe ajuda você, 24 horas por dia.

    Carregando