"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como ativar/desativar funções nativas do PHP – Tutorial php.ini

Como ativar/desativar funções nativas do PHP – Tutorial php.ini

Publicado em 2024-11-02
Navegar:745

Neste artigo, quero fornecer o procedimento passo a passo para ativar ou desativar funções nativas do php editando a diretiva “disable_functions” no arquivo php.ini.

Às vezes, a configuração padrão do PHP em seu servidor precisa ser personalizada para acomodar a compatibilidade do seu sistema com o ambiente de produção.

Por que este tutorial

Sou o autor do Inspector.dev, o pacote de monitoramento em tempo real para Laravel e Symfony. Este pacote usa funções nativas pro_open e proc_close php para realizar a transferência de dados do seu servidor para a API do Inspector de forma assíncrona.

Ele também pode ser configurado para usar as funções CURL nativas do PHP que estão habilitadas por padrão, mas neste caso ele enviará os dados de monitoramento para o Inspector de forma síncrona como outros pacotes fazem como Sentry, Bugsnag, etc. significa que seu aplicativo pode ficar um pouco lento porque o mecanismo php precisa esperar antes de encerrar a conexão com o cliente.

Recentemente, alguns desenvolvedores me contataram porque as funções proc_open e proc_close foram desativadas em sua configuração php, então eles precisam desbloqueá-las para aproveitar as vantagens do envio assíncrono de dados.

É muito raro, mas decidi escrever este tutorial como um recurso de suporte para este caso de uso.

Qual é o arquivo php.ini

O arquivo php.ini é O arquivo de configuração do PHP. O arquivo contém uma lista de pares chave/valor chamados "diretivas". As diretivas são agrupadas em seções, embora sejam principalmente para fins organizacionais.

Quando o PHP é iniciado, ele lê este arquivo e configura estruturas de dados internas para armazenar a configuração. Durante a execução, o PHP refere-se a essas estruturas de dados internas para determinar como ele deve se comportar em muitas áreas principais, como: tratamento e registro de erros, limites de recursos (memória, tempo de execução), uploads de arquivos, conexões de banco de dados e muito mais.

Para quem também está se perguntando: o PHP pode funcionar mesmo se não houver um arquivo php.ini, ele simplesmente aplicará os valores padrão a todas as diretivas.

Para quem não conhece, aqui está um exemplo de arquivo php.ini:

https://github.com/php/php-src/blob/master/php.ini-production

Habilitar/desabilitar funções em php.ini

Editando o arquivo php.ini podemos desativar funções nativas do PHP que você não poderá chamar dentro do seu código PHP.

Às vezes, esse recurso é usado para restringir o uso de algumas funções em ambientes de hospedagem compartilhada, pois o uso incorreto delas pode causar problemas de segurança para outros usuários. Funções como exec() geralmente são desabilitadas, mas às vezes os provedores de servidores são muito conservadores e podem desabilitar funções necessárias nas tarefas diárias de programação.

Localize o arquivo php.ini

Execute o comando abaixo no terminal da sua máquina para obter a localização atual do arquivo (funciona tanto para Win quanto para Unix):

php --ini

Locais comuns: /etc/php.ini, /etc/php/8.x/php.ini (substitua x pelo número da versão da sua instalação)

Para editar arquivos no servidor prefiro usar o editor vim que deve estar disponível em qualquer máquina Unix.

// Use the file path from the command above
sudo vim /etc/php.ini

Role para baixo até a diretiva "disable_functions". Deve estar na primeira metade do arquivo e conter uma lista de funções separadas por vírgula.

disable_functions=exec,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Edite o arquivo php.ini

  • Pressione a letra "i" no teclado para entrar no modo INSERT no vim.
  • Remova as funções proc_open e proc_close da lista.
  • Ao terminar de editar o arquivo, pressione a tecla ESC. Isso tira você do modo INSERT e “– INSERT –” desaparece do canto inferior esquerdo do seu terminal.
  • Para salvar o arquivo, digite “:wq” , que é a instrução de escrever e sair.

Reinicie o mecanismo PHP

Para carregar as novas configurações você precisa reiniciar o PHP. A instrução abaixo deve funcionar na maioria dos servidores. Eventualmente, você pode pesquisar no Google por um sistema operacional específico.

// Change the version of the PHP with what is in use in your machine
sudo systemctl restart php8.2-fpm.service

Para mais artigos técnicos você pode me seguir no Linkedin ou X.

Monitore seu aplicativo PHP gratuitamente

Inspector é uma ferramenta de monitoramento de execução de código projetada especificamente para desenvolvedores de software. Você não precisa instalar nada no nível do servidor, apenas instale o pacote Laravel ou Symfony e você está pronto para começar.

Se você está procurando monitoramento HTTP, insights de consulta de banco de dados e a capacidade de encaminhar alertas e notificações para seu ambiente de mensagens preferido, experimente o Inspector gratuitamente. Registre sua conta.

Ou saiba mais no site: https://inspector.dev

How to enable/disable PHP native functions – php.ini Tutorial

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/inspector/how-to-enabledisable-php-native-functions-phpini-tutorial-kpg?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3