Eu executo um script PHP e recebo este erro:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' - / usr / local / lib / php / extensions /no-debug-non-zts-20090626/ixed.5.2.lin: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório em Desconhecido na linha 0
O que isso significa?
php
dynamic-library
Popolo
fonte
fonte
Se você estiver no Linux, poderá encontrar todos os arquivos de configuração carregados digitando no shell:
ATUALIZAÇÃO: conforme mencionado nos comentários, isso pode ser ainda mais preciso:
fonte
php -i | grep ini
deve funcionar bem também (não há necessidade de imprimir o phpinfo quando você tiver um argumento de comando para isso)phpinfo()
não listei nenhum arquivo ini problemático.php -i | grep ini
como sugerido por YorickH funcionou para mim. Isso listará as bibliotecas carregadas para a CLI e, como se viu, o arquivo ini que causou o aviso estava no diretório CLI no meu caso.php --ini
listar todos os arquivos iniSe você apenas deseja que o erro desapareça e não precisa da extensão, comente a linha
php.ini
. Mas se você realmente deseja corrigir o problema, aqui estão algumas informações adicionais.Existem várias causas para isso com base no módulo exato, mas também existem algumas diretrizes gerais.
phpinfo()
e procureextension_dir
naCore
seção. É aqui que seus módulos devem estar localizados.Instalação em * nix (PEAR)
Instalação de extensões no Windows
fonte
perl install <module>
eu tenhoCan't open perl script "install": File or Directory not found
docker-php-ext-install <package>
phpStom com XAMPP
TL; DR Exceto para verificar se os arquivos existem, você pode precisar adicionar a letra da unidade a alguns registros em seu arquivo php.ini
De repente, comecei a ter problemas ao usar o phpStorm 7 para depurar php com xampp e xdebug. Ao tentar definir o intellij interperter como xampps php recebi muitos avisos como o da pergunta, por exemplo:
Por alguma razão, tive que adicionar a letra da minha unidade aos registros de extension_dir e browscap no arquivo php.ini:
para
fonte
php -r "echo php_ini_loaded_file();"
Irá mostrar no CLI o arquivo ini atual carregado, procure lá por Sua extensão, o caminho para ele está incorreto.
fonte
Carregando .dll no Linux
Encontrei esta mensagem de aviso enquanto tentava instalar uma extensão php através do arquivo php.ini ;
até eu descobrir que você não pode carregar extensões .dll no Linux,
mas você tem que comentar as extensões que deseja importar
;extension= ... .dll
e instalá-lo corretamente viasudo apt-get install php-...
observação :
...
é o nome da extensão que você deseja ativar.fonte
sudo apt install php-pgsql
uma versão específica do phpsudo apt install php7.1-pgsql
(mude 7.1 para sua versão php)Observe que você também pode obter este erro se sua biblioteca PHP não tiver a permissão de abertura de diretório "outro". No meu caso particular, notei isso ao usar
php -l
a verificação de sintaxe de um script em meu editor de texto. Isso significava que, como minha conta se chamava "volomike", essa conta não tinha permissão para executar as bibliotecas nas quais ophp
comando dependia.Por exemplo, no Ubuntu 14.04, instalei o PHP5 automaticamente no caminho
/usr/lib/php5/20121212+lfs
. No entanto, como estava trabalhando em C ++ na construção de alguns objetos compartilhados, baguncei as permissões de diretório e baguncei as coisas de forma que contas não raiz não tivessem as permissões de execução de diretório (diretório aberto) para visualizar/usr/lib/php5/20121212+lfs
. Então, digitei o seguinte comando para corrigir esse problema:sudo chmod o+x /usr/lib/php5/20121212+lfs
.Agora, quando faço
php -l example.php
como um usuário não root, nunca mais me ocorre esse problema de "Não habilitado para carregar a biblioteca dinâmica".fonte
Eu tive o mesmo problema no XAMPP para Windows quando tento instalar o composer. Eu fiz
php -v
e erro de lançamento de php:Demorei um pouco até perceber que preciso configurar meu XAMPP. Então eu corro
setup_xampp.bat
e o php volta a funcionar como um encanto.fonte
Eu tive o mesmo problema no XAMPP para Windows10 quando tento instalar o composer.
Então siga estes passos
fonte
Eu tive esse erro em vários módulos quando estava executando diferentes versões do PHP lado a lado no meu servidor. Para resolver isso, precisei instalar os pacotes que não consegui encontrar para aquela versão específica do PHP. Então, por exemplo, se eu vi: -
Eu instalaria a biblioteca para a versão PHP especificamente: -
E então reinicie o Apache. Consertou para mim. Você pode verificar sua versão assim: -
fonte
A partir de
Windows 10 XAMPP
agora instaleiLAMPP (XAMPP)
no Ubuntu.Windows XAMPP
tinha muito menos para configurar em comparação com o MAC (iOS), mas agora com o Linux Ubuntu tive um pouco mais, pois há mais coisas acontecendo no Linux (uma coisa boa).Eu confundi e ativei
mysqli.dll
(e mysql.dll: apagar "#" em/etc/php/7.2/cli/php.ini
Comecei a receber a
PHP Warning: PHP Startup: Unable to load dynamic library
mensagem relacionada adll
. Comenteimysql(and i).dll
no mesmo arquivo, mas a mensagem não foi embora até que comentei "" em/opt/lampp/etc/php.ini
.Looks como XAMPP lê
php.ini
arquivo/etc/php/7.2/cli
e faz a modificação naphp.ini
de/opt/lampp/etc
. (; extension = php_pdo_mysql.dll após ";" reiniciar o Apache e nenhuma mensagem mais.fonte
No meu caso, recebi este erro porque baixei uma versão thread-safe da dll (infixada com
-ts-
), mas minha instalação php do php era não-thread-safe (infixada com-nts-
). Baixar a versão correta da dll, que corresponde exatamente à minha versão de instalação do php, corrigiu o problema.fonte
thread-safety
habilitado / desabilitado. Teve o mesmo erro ao contrário, baixei nts quando configurado para ts.Eu encontrei um erro semelhante. O erro que cometi foi usar o nome do "controlador" como "Páginas" em vez de "páginas" no meu url.
fonte
No Windows, pode ser um caminho errado em "Variáveis de ambiente do sistema". O "caminho" para o diretório php.exe deve ser o correto.
fonte
Procure a extensão exata para a sua versão do PHP aqui
fonte
O que eu fiz foi;
1 - Primeiro descubro qual versão do PHP estou usando através da função phpinfo ()
2 - A partir daí você encontrará a localização do seu arquivo de configuração (php.ini)
3 - Abra esse arquivo
4 - Comente a linha semelhante à imagem abaixo
fonte
'C: /PHP/5.2.13/ext \ php_mcrypt1.dll'
Eu diria que há algum erro de digitação em seu php.ini (o 1 extra). Talvez você esteja carregando um php.ini diferente do esperado (consulte a saída do php.ini para ter certeza).
Além disso, certifique-se de que php_mcrypt.dll e PHP:
Foram vinculados à mesma biblioteca de tempo de execução VC (normalmente msvcrt.dll para VC6 ou msvcrt90.dll para VC9) - use, por exemplo, o dependency walker para isso. Ambos são compilações de depuração ou ambas as compilações de lançamento Ambos têm ZTS habilitado ou ZTS desabilitado Para bibliotecas que dependem outras bibliotecas (DLLs), certifique-se de que estejam disponíveis (por exemplo, no mesmo diretório da extensão). O PHP deve fornecer erros de significado se alguma das três primeiras condições acima não for satisfeita, mas eu as escrevi mesmo assim porque não tenho certeza para PHP 5.2.
fonte
Tive um problema semelhante e abaixo estão alguns dos avisos / erros.
Se você verificar os avisos, verá que ele está procurando por extensões php no
C:\php\ext\
então, baixei o php para oC:\
diretório e isso resolveu os problemas.fonte