Está farto de ver mensagens de erro como “PHP Warning: get_browser(): browscap ini directive not set” sempre que tenta usar a função get_browser()
no PHP? A função não reconhece corretamente os browsers modernos e cada tentativa de ativação no php.ini
resulta num pesadelo de warnings e fatal errors? Esta solução pode salvar o seu servidor e transformar o caos em controlo absoluto!
Erro Fatal à Vista? Veja Como Resolver Já!
Se ao tentar usar get_browser()
surge algo como:
PHP Warning: get_browser(): browscap ini directive not set in /ipfail.org/public_html/...
PHP Warning: Cannot open 'extra/browscap.ini' for reading in Unknown on line 0
PHP Fatal error: Unable to start standard module in Unknown on line 0
… então o seu sistema está a implorar por um browscap.ini actualizado – ou por uma instalação correta que NUNCA foi feita!
Passo-a-Passo Definitivo Para Ubuntu / Debian – Totalmente Testado!
1) Localize o PHP Instalado no Seu Sistema
Normalmente, o PHP vive em /etc/php/
, com a versão funcional em algo como /etc/php/7.4/
. Confirme com:
php -version
php -a
phpinfo();
Com isto, verá tudo: versão, caminho do php.ini
, ficheiros .ini
carregados e mais. Exemplo real:
PHP Version => 7.4.13
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
2) Instale a Versão CORRETA do browscap.ini
Entre no modo turbo com a instalação do browscap.ini
atualizado — essencial para que get_browser()
funcione sem falhas.
sudo wget http://browscap.org/stream?q=PHP_BrowsCapINI
sudo mv 'stream?q=PHP_BrowsCapINI' /etc/php/7.4/mods-available/browscap.ini
💡 Dica de ouro: use apenas a versão especial para PHP do site oficial browscap.org
.
3) Ative o browscap.ini no ficheiro php.ini
Edite o php.ini
da sua instalação FPM (ou CLI, conforme o seu ambiente):
sudo nano /etc/php/7.4/fpm/php.ini
Procure por [browscap]
e substitua a linha:
;browscap = extra/browscap.ini
browscap = /etc/php/7.4/mods-available/browscap.ini
Guarde e feche. Agora, reinicie os serviços para aplicar as alterações:
Para PHP:
sudo service php7.4-fpm restart
Para Apache:
sudo apache2ctl restart
Para Nginx:
sudo nginx -s reload
Resultado? Navegadores detetados com precisão milimétrica, sem mais erros, sem dores de cabeça. A função get_browser()
vai finalmente funcionar como sempre deveria!